Acropolis Image Service の vDisk / ISO イメージは、Nutanix クラスタをまたいで共有することができません。そこで Async DR でのスナップショットのレプリケーションを利用して、Image Service で管理しているすべての vDisk / ISO イメージを、別の Nutanix CE クラスタへコピーしてみました。
今回の構成
コピー元 / コピー先の Nutanix CE バージョンは、どちらも ce-2017.07.20-stable を使用しています。
コピー元クラスタ
- クラスタ名は ntnx-n01
- 作業で接続している CVM の IP アドレスは 192.168.1.192
- 移行先クラスタへの Remote Site 設定ずみ。(Remote Site 名は ntnx-gb)
- Remote Site でストレージコンテナのマッピングは設定ずみ。
コピー元クラスタでの Rmote Site 設定状態
ncli> remote-site list Name : ntnx-gb Uuid : 00055acd-9602-2ed5-7dba-408d5cfb036e Capabilities : disaster_recovery Replication Bandwidth : - SSH Tunnel Enabled : false Remote Address(es) : 192.168.1.230:2020 Vstore Map : st-container-01:st-ctr-01 Proxy Enabled : false Compression : on Bandwidth Policy : disabled Health Status : Status : relationship established
コピー先クラスタ
- クラスタ名は ntnx-gb
- CVM の IP アドレスは 192.168.1.232
- クラスタ VIP は 192.168.1.230
手順
ここからは、コピー元 / コピー先 それぞれの CVM に、nutanix ユーザで ssh でログインして作業します。
コピー元 Nutanix クラスタ
Image Service のイメージの一覧を取得しておきます。このイメージをすべてコピー対象にします。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ acli image.list > all_images.txt nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ cat all_images.txt Image name Image type Image UUID OracleLinux-R7-U4.iso kIsoImage f42e6b78-dad6-4580-8f19-f5f0eecdfb38 db12cR2-otn kDiskImage d75eb3a2-1194-409a-9c50-20b7b1fe5c05 img-db02-disk1 kDiskImage 850a494a-57a3-460e-9322-58548bf4f294 img-db02-disk2 kDiskImage 76c173b9-dfc4-4a22-94b8-a51ada4a0b60 img-jbox kDiskImage 7e0e1924-5e51-421f-ab6d-4ae63b12ef40 ol7-db12cR2-disk0 kDiskImage 85000722-8d78-4aa8-b871-5894597da997 ol7-db12cR2-disk1 kDiskImage 213cfdc3-afd0-4806-b2d0-01e73c869009 ol7-template kDiskImage 94113ac1-b47b-4755-b758-0c80b412874b ol74-base kDiskImage 94046285-7424-4bb3-aceb-b54ccde5c8f4
イメージをコピー先クラスタに運ぶための VM を作成しておきます。今回は、はこぶねではこぶねということです。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ acli vm.create hakobune01 hakobune01: complete
作成した VM に、コピーするイメージを vDisk として追加します。
- ISO を CD-ROM 接続にしてしまうとすぐ上限(4つくらい)になってしまうので、ここでは ISO イメージも Typeを vDisk として追加します。
- コピー先でのイメージ登録をわかりやすくするため、さきに取得した一覧ファイル all_images.txt を使用しています。
- Warning などがでますが、ここでは気にしません。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ cat all_images.txt | tail -n +2 | awk '{print $1}' | while read IMG; do acli vm.disk_create hakobune01 clone_from_image=$IMG; done stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width DiskCreate: pending DiskCreate: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width DiskCreate: pending DiskCreate: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width DiskCreate: pending DiskCreate: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width DiskCreate: pending DiskCreate: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width DiskCreate: pending DiskCreate: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width DiskCreate: pending DiskCreate: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width DiskCreate: pending DiskCreate: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width DiskCreate: pending DiskCreate: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width DiskCreate: pending DiskCreate: complete
コマンドラインが見にくいですが、実行したコマンドラインの意味あいは下記のような感じです。
今回のイメージは 9つです。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ acli vm.disk_list hakobune01 Device bus Device index scsi 0 scsi 1 scsi 2 scsi 3 scsi 4 scsi 5 scsi 6 scsi 7 scsi 8
スナップショットを作成するための Protection Domain(PD)を作成します。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ ncli protection-domain create name=pd-hakobune01 Protection Domain : pd-hakobune01 Active : true Marked For Removal : false Remote Sites : Schedule Count : 0 Next Snapshot Time : Virtual Machine(s) : 0 NFS Files : 0 Volume Groups : 0
PD に VM を追加します。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ ncli protection-domain protect name=pd-hakobune01 vm-names=hakobune01 Protection Domain : pd-hakobune01 Active : true Marked For Removal : false Remote Sites : Schedule Count : 0 Next Snapshot Time : Virtual Machine(s) : 1 VM Id : 486eee04-b2d7-4b18-ba59-e4576433f478 VM Name : hakobune01 Consistency Group : hakobune01 Application Consistent... : false Power state on recovery : Power state at time of snapshot NFS Files : 0 Volume Groups : 0
コピー先の Remote Site に PD スナップショットを作成します。(Async DR)
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ ncli protection-domain create-one-time-snapshot name=pd-hakobune01 remote-sites=ntnx-gb Action Id : 24042 Start Time : 10/12/2017 16:42:41 UTC Remote Sites : ntnx-gb Snapshot retention (secs) : Forever Application Consistent... : false
Image Service のイメージのリストも、何かしらの方法でコピー先 Nutanix クラスタの CVM にコピーしておきます。
nutanix@NTNX-2a0a73b3-A-CVM:192.168.1.192:~$ scp all_images.txt 192.168.1.230:. FIPS mode initialized Warning: Permanently added '192.168.1.230' (RSA) to the list of known hosts. Nutanix Controller VM nutanix@192.168.1.230's password: all_images.txt 100% 740 0.7KB/s 00:00
コピー先 Nutanix クラスタ
しばらく待ってから、コピー先 Nutanix クラスタで PD スナップショットが作成されているか確認します。スナップショットの ID は、レプリ元の名前を含む「ntnx-n10:24078」みたいになります。
nutanix@NTNX-2d52e41a-A-CVM:192.168.1.232:~$ ncli protection-domain list-snapshots name=pd-hakobune01 Id : ntnx-n10:24078 Uuid : 8ddc5fdc-e9be-460e-8200-c98a22dcf76a Protection Domain : pd-hakobune01 Create Time : 10/12/2017 17:24:12 UTC Expiry Time : 10/30/2085 20:38:19 UTC OOB Schedule IDs : [24074] Virtual Machine(s) : 1 VM Id : 486eee04-b2d7-4b18-ba59-e4576433f478 VM Name : hakobune01 Consistency Group : hakobune01 Application Consistent... : false VM Files : [/st-ctr-01/.acropolis/vmdisk/fe43b07a-4041-498f-affa-baf908471bbf, /st-ctr-01/.acropolis/vmdisk/50b29ca4-9008-4c69-95fd-74ca96c9b875, /st-ctr-01/.acropolis/vmdisk/81aecbf4-c468-4eb0-a47b-344192f40f22, /st-ctr-01/.acropolis/vmdisk/aa8870ea-78ea-4d03-8af9-ee6448819a45, /st-ctr-01/.acropolis/vmdisk/cd50bdbd-3443-4c60-ab4f-719a8f8a8c6b, /st-ctr-01/.acropolis/vmdisk/63d435ab-d262-428c-9fe7-07a867b2c32b, /st-ctr-01/.acropolis/vmdisk/ca26f7a7-0ff9-41cb-a211-370164ef92d7, /st-ctr-01/.acropolis/vmdisk/baa669b6-bd47-4297-ad82-eb236ea76fa5, /st-ctr-01/.acropolis/vmdisk/dad00903-0be5-40b0-a06b-07de14b4cfde] Power state on recovery : Powered Off NFS Files : 0 Volume Groups : 0 Located at Remote Site : Local Snapshot Size : 0 bytes
PD スナップショットから、VM をリストアします。ローカルでの PD スナップショットのリストアとは異なり、ここも ID 指定は「ntnx-n10:24078」といった形式になります。
nutanix@NTNX-2d52e41a-A-CVM:192.168.1.232:~$ ncli protection-domain restore-snapshot name=pd-hakobune01 snap-id=ntnx-n10:24078 Status : true
VM がリストアされました。VM 名の先頭に「Nutanix-Clone-」がつきます。
nutanix@NTNX-2d52e41a-A-CVM:192.168.1.232:~$ acli vm.list | grep hakobune01 Nutanix-Clone-hakobune01 d0fe12d4-d20e-4877-8627-b69570e6f63c nutanix@NTNX-2d52e41a-A-CVM:192.168.1.232:~$ acli vm.disk_list Nutanix-Clone-hakobune01 Device bus Device index scsi 0 scsi 1 scsi 2 scsi 3 scsi 4 scsi 5 scsi 6 scsi 7 scsi 8
コピー元で取得したイメージ一覧は、コピー先クラスタの CVM にも配置ずみです。
nutanix@NTNX-2d52e41a-A-CVM:192.168.1.232:~$ cat all_images.txt Image name Image type Image UUID OracleLinux-R7-U4.iso kIsoImage f42e6b78-dad6-4580-8f19-f5f0eecdfb38 db12cR2-otn kDiskImage d75eb3a2-1194-409a-9c50-20b7b1fe5c05 img-db02-disk1 kDiskImage 850a494a-57a3-460e-9322-58548bf4f294 img-db02-disk2 kDiskImage 76c173b9-dfc4-4a22-94b8-a51ada4a0b60 img-jbox kDiskImage 7e0e1924-5e51-421f-ab6d-4ae63b12ef40 ol7-db12cR2-disk0 kDiskImage 85000722-8d78-4aa8-b871-5894597da997 ol7-db12cR2-disk1 kDiskImage 213cfdc3-afd0-4806-b2d0-01e73c869009 ol7-template kDiskImage 94113ac1-b47b-4755-b758-0c80b412874b ol74-base kDiskImage 94046285-7424-4bb3-aceb-b54ccde5c8f4
下記のような感じで、VM に接続されている vDisk から Image Service の vDisk / ISO イメージを作成します。
下記のような感じで実行します。Warning が出てますが今回は気にしません。
nutanix@NTNX-2d52e41a-A-CVM:192.168.1.232:~$ VMNAME=Nutanix-Clone-hakobune01 nutanix@NTNX-2d52e41a-A-CVM:192.168.1.232:~$ IMAGELIST=all_images.txt nutanix@NTNX-2d52e41a-A-CVM:192.168.1.232:~$ N=0 nutanix@NTNX-2d52e41a-A-CVM:192.168.1.232:~$ tail -n +2 $IMAGELIST | while read L > do > IMG=`echo $L | awk '{print $1}'` > TYPE=`echo $L | awk '{print $2}'` > acli image.create $IMG image_type=$TYPE clone_from_vmdisk=vm:$VMNAME:scsi.$N > N=`expr $N + 1` > done stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width OracleLinux-R7-U4.iso: pending OracleLinux-R7-U4.iso: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width db12cR2-otn: pending db12cR2-otn: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width img-db02-disk1: pending img-db02-disk1: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width img-db02-disk2: pending img-db02-disk2: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width img-jbox: pending img-jbox: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width ol7-db12cR2-disk0: pending ol7-db12cR2-disk0: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width ol7-db12cR2-disk1: pending ol7-db12cR2-disk1: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width ol7-template: pending ol7-template: complete stty: standard input: Inappropriate ioctl for device Warning: Couldn't determine terminal width ol74-base: pending ol74-base: complete
Image Service に vDisk / ISO イメージが作成されました。今回は、イメージの注釈(annotation)は持ってきてません。
nutanix@NTNX-2d52e41a-A-CVM:192.168.1.232:~$ acli image.list Image name Image type Image UUID OracleLinux-R7-U4.iso kIsoImage 6b6060c0-41ad-41fb-bc48-d72ca22a5446 db12cR2-otn kDiskImage dd6cd5b6-865b-497e-9e0f-832c7c68d13c img-db02-disk1 kDiskImage 07a128c2-fc16-43cc-833c-34e487f46c37 img-db02-disk2 kDiskImage c820bd54-987b-4ccb-b68b-82fe68e1526b img-jbox kDiskImage c80d3711-c5cf-434b-81f2-d2bf3aeb16eb ol7-db12cR2-disk0 kDiskImage 6f72690f-586c-4887-a4c4-55acbbd87459 ol7-db12cR2-disk1 kDiskImage b311230b-3b1b-4bf2-aa6e-c151d9c31f89 ol7-template kDiskImage d40e6592-4c39-4ab2-8908-0dcee4725d46 ol74-base kDiskImage 33ed715a-8eee-4e3d-a486-836cbcd6e23d
イメージを作成した後は、途中で使用した VM(hakobune01)や PD などは削除してよいです。
以上。