Nutanix CE で Protection Domain(PD)のスナップショットから、特定の vDisk だけ取り出してみました。
今回の概要
今回は、下記のようなシンプルな PD 構成にしています。
PD には、VM(VGではない、ただの vDisk が 2つ接続されている)が1つだけ含まれています。
PD でスナップショットを作成してあります。
ただ、VM は複数 vDisk をもっていますが、 スナップショットから特定の vDisk だけストレートに元 VM に戻すことはできなそうです。
そこで、PD スナップショットのリストアで別の VM を作成して、その vDisk (の複製)を元 VM に接続してみます。
今回の実機環境
Nutanix CE は、今回も ce-2017.07.20-stable です。
Nutanix CE 上の VM は Oracle Linux で、vDisk は 2 つ接続されています。
[root@vm03 ~]# cat /etc/oracle-release Oracle Linux Server release 7.4 [root@vm03 ~]# lsscsi [0:0:0:0] cd/dvd QEMU QEMU DVD-ROM 2.3. /dev/sr0 [2:0:0:0] disk NUTANIX VDISK 0 /dev/sda [2:0:1:0] disk NUTANIX VDISK 0 /dev/sdb
今回は、/data にマウントされている /dev/sdb にあたる vDisk を、PD スナップショットから戻してみます。ちなみに今回のファイルシステムは ext4 にしてあります。
[root@vm03 ~]# df -h /data/ ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/sdb1 4.8G 20M 4.6G 1% /data [root@vm03 ~]# blkid /dev/sdb1 /dev/sdb1: UUID="949920ba-a92f-4d74-ad7d-cfb13552b466" TYPE="ext4"
この vDisk には、下記のようなテキストファイルが保存されています。
[root@vm03 ~]# cat /data/test.txt yo solo !
PD スナップショットは、下記のように作成してあります。今回は Prism ではなく ncli コマンドから作成してみました。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ ncli protection-domain create-one-time-snapshot name=pd-vm03 Action Id : 3811 Start Time : 09/26/2017 14:15:26 UTC Remote Sites : Snapshot retention (secs) : Forever Application Consistent... : false
スナップショットを Prism でも見ておきます。
pd-vm03 という PD のスナップショット(ID = 3815)が作成されていて、vm03 という VM だけが含まれています。
PD スナップショットのリストア
ncli / acli コマンドでリストアしてみます。
まず、ncli で PD スナップショットを VM としてリストアします。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ ncli protection-domain restore-snapshot name=pd-vm03 snap-id=3815 vm-names=vm0 3 vm-name-prefix=restore- Status : true
VMが作成されました。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ ncli vm list | grep restore-vm03 Name : restore-vm03
VMのリストは、acli でも確認できます。これ以降は acli を使用します。
スナップショット作成元の vm03 と、リストアで作成された restore-vm03 は別の VM になります。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ acli vm.list | grep vm03 restore-vm03 03ba960a-c94f-44cd-82bc-dd11e7df30c2 vm03 cda41f45-e434-4c90-9a00-64955484da5e
vm03 と restore-vm03 は、どちらも vDisk を2つ持っています。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ acli vm.disk_list vm03 Device bus Device index ide 0 scsi 0 scsi 1 nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ acli vm.disk_list restore-vm03 Device bus Device index ide 0 scsi 0 scsi 1
vDisk 複製&接続します。restore-vm03 の vDisk(scsi.1 なので 2番目の vDisk。ゲスト OSから見ると /dev/sdb に見えていたもの)をもとに、vm03 にディスクを追加します。vm03 には、3つ目の vDisk(scsi.2)が作成されます。
-2a0a73b3-A-CVM:192.168.1.192:~$ acli vm.disk_create vm03 clone_from_vmdisk=vm:restore-vm03:scsi.1 bus=scsi DiskCreate: pending DiskCreate: complete nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ acli vm.disk_list vm03 Device bus Device index ide 0 scsi 0 scsi 1 scsi 2
ゲスト OS でも、追加した vDisk が /dev/sdc として認識されています。
[root@vm03 ~]# lsscsi [0:0:0:0] cd/dvd QEMU QEMU DVD-ROM 2.3. /dev/sr0 [2:0:0:0] disk NUTANIX VDISK 0 /dev/sda [2:0:1:0] disk NUTANIX VDISK 0 /dev/sdb [2:0:2:0] disk NUTANIX VDISK 0 /dev/sdc
/dev/sdc1 を /mnt にマウントすると、スナップショットから戻した vDisk なので元のディスクと同様のテキストファイルが格納されています。
[root@vm03 ~]# mount /dev/sdc1 /mnt [root@vm03 ~]# df -h /data /mnt ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/sdb1 4.8G 20M 4.6G 1% /data /dev/sdc1 4.8G 20M 4.6G 1% /mnt [root@vm03 ~]# cat /mnt/test.txt yo solo !
ちなみに、今回は基本パーティション上に ext4 ファイルシステムを作成しているので複製した vDisk をそのままマウントできていますが、LVM や xfs の場合は UUID 重複となるので もと複雑な話になります。
以上。