-------------------------------------------
version: 9.0.1
node: 3
datastore: GFS2 x 1 ( FC接続風 )
※HVMホストは、AlmaKVM上のVMとして構築している。
※FCストレージは用意できないので、AlmaKVMにHVMホスト間で共有できる仮想DISKをひとつ用意して代わりとした。
multhpath的にはFCかiSCSIかは関係ないはず。基本的には以下の条件を満たせばマルチパスるはず。
・ちゃんとSCSIデバイスなりを認識すること(/dev/sdX)
・それらが同じもので&異なる「パス」であること
host1 host2 host3
| | |
-----------------
| vDISK |
-----------------
test-manager: 172.16.2.180
test-hvm: 172.16.2.181
test-hvm2: 172.16.2.182
test-hvm3: 172.16.2.183
guest-ubuntu: 172.16.2.184
guest-ubuntu2: 172.16.2.185
-------------------------------------------
・iSCSiでなくFC接続を想定した形でGFS2データストアの作成を試してみた
-------------------------------------------
やってみて
・FCであってもiSCSIの時と考え方は同じで「クラスタ作成してGFS2データストア作成するまでの間に」
DISK認識(/dev/sdX等)&マルチパスデバイスがある状態をつくれればOK。まあ、クラスタ作成前にその状態になっていても
いいようには思うが、そんな細かいことはどうでもいいかな。「iSCSIの時と同じ流れ」ってのがシンプルかな。
基本的にはmultipathの設定などはそのままでいいとは思うが、そこはその時使う機器のマニュアル等参照。
-------------------------------------------
参考RUL
・Morpheus VM Essentials - FCストレージダイレクト接続
https://community.hpe.com/t5/hpe-morpheus-vm-essentials/morpheus-vm-essentials-fc-storage-direct-connect/m-p/7270778/highlight/true#M2563
・ゲスト仮想マシンでのストレージコントローラーの管理
https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sect-managing_storage_controllers_in_a_guest
・仮想 SCSI コントローラーの作成
https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sect-managing_storage_controllers_in_a_guest
・仮想マシンへのストレージの接続
https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/10/html/configuring_and_managing_windows_virtual_machines/attaching-storage-to-virtual-machines
-------------------------------------------
◆構築
※HVM3ホストに対してすることは、1号機のみ記載している。同じことをするだけ。
①【AlmaKVM】テスト用全HVMホストVMをAlmaKVM上に作成
②【AlmaKVM】仮想 SCSI コントローラーの作成
# virsh dumpxml test-hvm | grep controller.*scsi
# vi /tmp/virtio-scsi-controller.xml
------------------------------------------------------
------------------------------------------------------
# virsh attach-device --config test-hvm /tmp/virtio-scsi-controller.xml
# virsh dumpxml test-hvm | grep controller.*scsi
③【AlmaKVM / HVM】テスト用環境作成(HVMインスト+初期設定+マネージャデプロイ+・・・つか、クラスタ作成までする。)
==この時点でクラスタ作成出来ていて、GFS2データストア作成はまだという状態
==次は、ストレージ側でボリュームをHVMホスト側に見えるようにすることを想定してやってみる。
④【AlmaKVM】既存ストレージプールに test-hvm-share-01.raw という名前の 50 GiB の raw ボリュームを作成
# virsh vol-create-as --pool kvm360-ssd --name test-hvm-share-01.raw --capacity 50GiB --format raw
# virsh vol-list kvm360-ssd | grep -i "test-hvm-share-01.raw"
# qemu-img info /var/lib/libvirt/nfspool/ssd/test-hvm-share-01.raw
⑤【AlmaKVM】共有DISK接続
※共有DISKアタッチ用xmlはHVMで共有DISKを設定した際のvm の xml を参考にした。
HVMホスト間で共有するので「shareable」が入っている(libvirt のドキュメントでは、キャッシュは無効にする必要ありと。)
※今回は、2つの仮想DISKが同一であることを確実に認識させたかったので、念のため「wwn」を入れて同じ値としてみた。
「serial」にしようか迷ったが、今回は「wwn」のほうがぽいかなと。。
※「target='0'」「target='1'」としてみた。違うやり方もあるはずだが、マルチパスデバイスも出来ているし、今回はその点が重要でないため気にしない。
※この時点でVMは起動しているので、アタッチする際はライブ設定、永続設定ともされるようにしている。
# vi /tmp/shared-disk-1.xml
------------------------------------------------------
5000c50015ea1234
------------------------------------------------------
# vi /tmp/shared-disk-2.xml
------------------------------------------------------
5000c50015ea1234
------------------------------------------------------
# virsh attach-device test-hvm /tmp/shared-disk-1.xml --live --config
# virsh attach-device test-hvm /tmp/shared-disk-2.xml --live --config
⑥【全HVMホスト】SCSIデバイス、マルチパス確認
# lsblk
# multipath -r
# multipath -ll
==すべて問題なし。まあ、SCSIデバイスを認識してなかっても、数分ごとに以下のように全HBAのスキャンが走るので
==ここでコマンドを手動で実行しなくても、数分待てば認識するはず。認識しなければさせればいいだけ。
==(/usr/bin/tee /sys/class/scsi_host/hostX/scan)※実際には「echo "- - -"」を←のscanに書き込んでいる。
⑦【全HVMホスト】GFS2データストア作成
-------------------------------------------
◆確認
〇:パス切り替え
# multipath -ll
# echo offline > /sys/block/sda/device/state
# multipath -ll
# echo running > /sys/block/sda/device/state
# multipath -ll
# echo offline > /sys/block/sdb/device/state
# multipath -ll
# echo running > /sys/block/sdb/device/state
# multipath -ll
〇:各ホストの hb.properties がデータストアに作成され更新されるか
〇:2VM作成する。各VMの仮想DISKの保存先をデータストアにしてVM作成できるか
〇:ライブマイグレーション
〇:HA