
みなさん、こんにちは。SB C&Sの金井です。
本記事では「基礎から学ぶ!HVM 環境構築」シリーズの第4回「共有ストレージの構築」を解説します。HVM 環境での共有ストレージの構築について学習しましょう。
目次
1. はじめに
2. HVM のストレージ
2.1 データストア
2.2 ファイル共有
3. HVMでの IPストレージ接続の冗長化
3.1 iSCSI ストレージ接続の冗長化(Device Mapper Multipath について)
3.2 NFS ストレージ接続の冗長化
4. iSCSIによる共有データストアの追加
4.1 ホストでのmultipath-tools設定確認
4.2 HVM Manager でのiSCSI接続
4.3 GFS2 データストアの作成
5. NFSによるファイル共有の追加
6. まとめ
1. はじめに
HVM による仮想化基盤では、HVM クラスター作成後に iSCSI と NFS による共有ストレージを接続します。

2. HVM のストレージ
HVM で仮想マシンを作成するためには、HVM クラスターにデータストアを用意する必要があります。また、仮想マシン作成時に使用する ISO イメージや標準機能として提供されているバックアップ機能でもストレージを使用します。
2.1 データストア
HVM では、データストアとして iSCSI、NFS、ローカルディスクなどが利用できます。デフォルトでは HVM ホストのローカルディスクが利用されます。
HA 機能などを利用するためには、共有ストレージを使用したデータストアが必要です。HVM で iSCSI によるデータストアを作成する場合には、GFS2(Red Hat Global File System 2)が使用されます。GFS2 は、vSphere の VMFS と同様にブロックストレージに対して複数の HVM ホストから読み書きを可能にするためのクラスターファイルシステムです。
2.2 ファイル共有
HVM で ISO イメージ・仮想ディスク イメージ・仮想マシンのバックアップを格納するストレージとして、デフォルトでは HVM Manager のローカルディスク(100GB)が使用されます。
少数の ISO イメージや仮想ディスク イメージを格納する用途であれば、容量に注意すればデフォルト設定のままでも問題ありません。ただし、バックアップ機能を使用する場合や大容量の仮想ディスク イメージを格納する場合には、十分な容量を持つ NFS または CIFS ストレージを登録する必要があります。
なお、データストアとファイル共有の両方で NFS ストレージを使用する場合は、それぞれ別の NFS ボリュームを用意する必要があります。
3. HVM での IP ストレージ接続の冗長化
3.1 iSCSI ストレージ接続の冗長化(Device Mapper Multipath について)
HVM 環境で iSCSI による共有ストレージを冗長化する場合は、NIC のチーミング(Bonding)を使用せず、複数のネットワークアダプタをそのまま使用してマルチパス接続します。そしてその管理には、Linux の標準的なマルチパス管理ソフトウェアである Device Mapper Multipath が使用されます。
vSphere のハイパーバイザーである ESXi では、複数のパスから1つのボリュームに対してアクセスした場合でも、自動的に同じボリュームに接続していると認識されます。しかし、HVM ホスト(Linux)の場合は、複数のパスから1つのボリュームに接続すると、パスごとに別のボリュームがあると認識されます。そこで、Device Mapper Multipath を使うことで複数のパスで認識したボリュームをまとめてデータの整合性を保ちます。
今回の環境の HVM ホストでは、共有ストレージの接続には、「ens192」と「ens193」の2つのネットワークアダプタを使用し、複数のパスから iSCSI ストレージに接続します。
3.2 NFS ストレージ接続の冗長化
HVM 環境で NFS ストレージ接続を冗長化する場合は、Bonding を構成します。第1回の記事でも触れましたが、Bonding は Linux 上で認識したネットワークアダプタを束ねて冗長化させる仕組みです。NFS ストレージの接続には、管理 NW で使用する「ens160」と「ens161」を束ねて「bond0」として使用します。

4. iSCSI による共有データストアの追加
この環境では、接続先の iSCSI ターゲットもマルチパス(2コントローラ x 2ネットワークアダプタ)で構成しており、アドレスは下記の4つです。
- 172.22.16.141
- 172.22.16.142
- 172.22.17.141
- 172.22.17.142
iSCSI ストレージを、下記のように構成します。

4.1 ホストでの multipath-tools 設定確認
Linux の Device Mapper Multipath(DM-Multipath)が正しく設定されているのか確認を行います。
各 HVM ホストに SSH で接続して作業します。ここでは例として hvm-01 で実施します。
Ubuntu には、デフォルトで DM-Multipath の管理ツールである multipath-tools がインストールされています。
マルチパス デバイス名を生成する DM-Multipath の設定を、ホストで確認します。
「sudo cat /etc/multipath.conf」を実行します。
HVM Managerのクラスターに追加することで、自動的に下記のようにデフォルト値が yes から no に変更されていることが確認できます。この設定により、マルチパス接続で認識された複数の iSCSI ボリュームが、「/dev/mapper/<UUID>」として命名されます。

4.2 HVM Manager での iSCSI 接続
HVM Manager で、HVM ホストに iSCSI ボリュームを接続します。これは、HVM クラスター単位で実施します。
「インフラストラクチャ」の「クラスター」を選択し、「HVM-Cluster」を開きます。
「ストレージ」を選択し、「iSCSI」の画面上で「追加」をクリックします。

「TARGET IP」に iSCSI ターゲットのアドレスを入力して、「変更の保存」をクリックします。
TARGET IP には、iSCSI ターゲットの IP アドレスのうち1つを入力すると、HVM ホストではすべてのパスが自動的に検出・接続されます。ここでは、代表として 172.22.16.141 を入力します。

登録したストレージがブラウザ上に反映されない場合は、「アクション」から「リフレッシュ」をクリックします。

iSCSI ストレージへの4つのパスが正しく設定されているのか、HVM ホストから確認を行います。
「sudo multipath -ll」を実行すると、下記のように4つのパスが検出・接続できていることが確認できます。

そして、4つのボリュームが1つのボリュームとして束ねられていることを確認します。
「lsblk」を実行し、4つのボリューム(sdb、sdc、sdd、sde)が同じ UUID で束ねられていることを確認します。マルチパス管理ソフトウェアの機能によるため、TYPE 列に「mpath」と表示されていることがわかります。

4.3 GFS2 データストアの作成
接続された iSCSI ボリュームに、GFS2 データストアを作成します。
「ストレージ」を選択し、「データストア」の画面上で「追加」をクリックします。
以下の情報を入力し、「Save」をクリックすると、データストアの作成が開始されます。
- NAME:HVM-iSCSI
- TYPE:GFS2 Pool (Global File System 2)
- BLOCK DEVICE:/dev/mapper/<UUID>
- イメージターゲット:チェックあり

データストアの一覧に追加されたことを確認します。
※オンラインが「はい」にならない場合はブラウザを更新してください。

5. NFS によるファイル共有の追加
HVM Manager で NFS ボリュームをファイル共有として追加します。
接続先のファイル共有ストレージのアドレスは下記の1つです。
- 172.22.15.141

「インフラストラクチャ」から「ストレージ」をクリックします。
その後、「ファイル共有」をクリックします。

「追加」をクリックし、「NFSv3」をクリックします。

以下の情報を入力し、「変更の保存」をクリックします。
- 名前:HVM-NFS
- ホスト:172.22.15.141
- エクスポートフォルダ:/nfs1

「HVM-NFS」が作成されたことを確認します。

登録したファイル共有ストレージを確認します。
「インフラストラクチャ」から「ストレージ」をクリックします。その後、「ファイル共有」から「HVM-NFS」をクリックします。

6. まとめ
今回は、共有ストレージを構築するための手順をご紹介しました。次回は、仮想マシンの作成手順をご紹介します。次回の更新を楽しみにお待ちください。
HVM 構築ブログ第3回はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 技術統括部 第1技術部 2課
金井 大河 - Taiga Kanai -
