2017年5月7日日曜日

/etc/libvirt を共有化

前回に続いて、今度は /etc/libvirt を gemini / cancer で共有化してみよう。

複雑なことは無いので、ザクッと。
(gemini) $ sudo vgdisplay -v vg-gfs2
(gemini) $ sudo lvcreate -n etc-libvirt -L 320M vg-gfs2
(gemini) $ sudo vgdisplay -v vg-gfs2
(gemini) $ sudo mkfs.gfs2 -t mycluster:virt-define \
-p lock_dlm \
-j 2 \
/dev/vg-gfs2/etc-libvirt
(gemini) $ sudo tunegfs2 -l /dev/vg-gfs2/etc-libvirt

(gemini) $ sudo mount /dev/vg-gfs2/etc-libvirt /mnt/libvirt
(gemini) $ df /mnt/libvirt

(gemini) $ sudo -i
(gemini) # cd /etc
(gemini) # tar cSf - libvirt | ( cd /mnt ; tar xSf - )
(gemini) # exit
(gemini) $ sudo ls -alR /etc/libvirt
(gemini) $ sudo ls -alR /mnt/libvirt
(gemini) $ ls -ld /etc/libvirt /mnt/libvirt
(gemini) $ sudo rmdir /mnt/libvirt/lost+found
(gemini) $ sudo umount /mnt/libvirt

(gemini) $ sudo systemctl stop /etc/libvirt
(gemini) $ df /etc/libvirt
(gemini) $ sudo mount /dev/vg-gfs2/etc-libvirt /etc/libvirt
(gemini) $ df /etc/libvirt

これで、leo の起動停止を確認しておく。
動作確認が終わったら、leo は停止しておこう。

(gemini) $ sudo vi /etc/fstab
--ココから
1行書き換え
/dev/mapper/vg--kvm-lv--etc--libvirt /etc/libvirt ext4 _netdev 0 0

/dev/mapper/vg--gfs2-etc--libvirt /etc/libvirt gfs2 _netdev,x-systemd.requires=dlm.service 0 0
--ココまで

(gemini) $ sudo systemctl daemon-reload
(gemini) $ sudo systemctl stop /etc/libvirt
(gemini) $ df /etc/libvirt
(gemini) $ sudo systemctl start /etc/libvirt
(gemini) $ df /etc/libvirt

ここまで来たら、gemini を再起動させ、再起動後に /etc/libvirt がマウントされていることと、leo の起動停止が出来ることを確認しておこう。
(leo は停止しておくこと)

続いて、cancer 側で同ボリュームのマウント。
(cancer) $ sudo vgdisplay -v vg-gfs2
(cancer) $ sudo lvchange -asy vg-gfs2/etc-libvirt
(cancer) $ sudo lvdisplay vg-gfs2/etc-libvirt
(cancer) $ ls -ld /etc/libvirt
(cancer) $ sudo mv /etc/libvirt /etc/libvirt.orig
(cancer) $ sudo mkdir /etc/libvirt
(cancer) $ sudo mount /dev/vg-gfs2/etc-libvirt /etc/libvirt
(cancer) $ df /etc/libvirt
(cancer) $ ls -ld /etc/libvirt

(cancer) $ sudo vi /etc/fstab
--ココから
1行追加
/dev/mapper/vg--gfs2-etc--libvirt /etc/libvirt gfs2 _netdev,x-systemd.requires=dlm.service 0 0
--ココまで

(cancer) $ sudo systemctl daemon-reload
(cancer) $ sudo systemctl stop /etc/libvirt
(cancer) $ df /etc/libvirt
(cancer) $ sudo systemctl start /etc/libvirt
(cancer) $ df /etc/libvirt

この状態で一度、virt-manager から cancer の配下を見てみよう。
っと、この状態ではどうやら leo の存在は認識できてないようだ。
libvirt-bin の reload ではどうだろう?
(cancer) $ virsh list --all
(cancer) $ sudo systemctl reload libvirt-bin
(cancer) $ virsh list --all
お、leo が出てきた。
leo のステータスはシャットオフだ。まぁ、gemini 側でも起動していないし。

とりあえず、 cancer を再起動して、もう一度マウント状態と vm の認識状態は確認しておこう。

これで、gemini / cancer 同士で /etc/libvirt を共有することが出来た。
今回はココまでにして、次回以降で leo が gemini / cancer で排他的に起動が可能なこと(同時起動は出来なくて当然)、gemini で稼働中に cancer にオンラインマイグレーション出来るか?等を確認していくことにする。

0 件のコメント:

コメントを投稿