Nutanix AHV 匯出虛擬機
最後更新: 2019-09-16 04:55 pm
前言
Nutanix Prism並沒有做匯出的功能,其VMDisk也是不可見的,聽說早期是應美國國防部的要求,所以需要使用aCLI並用qemu-img匯出
找出vDisk UUID
登入CVM後用aCLI查找,VM必須為關閉狀態
1 2 3 |
$ acli vm.list power_state=off VM name VM UUID Nvidia License Server e0224f1e-1ed3-4f4b-ab9e-478100c5146c ###此台為本次要匯出的虛擬機### |
用aCLI檢視VM詳細資訊找出VMDisk UUID
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
$ acli vm.get e0224f1e-1ed3-4f4b-ab9e-478100c5146c include_vmdisk_paths=1 Nvidia License Server { config { agent_vm: False allow_live_migrate: True boot { device { disk_addr { bus: "scsi" index: 0 } } } disk_list { addr { bus: "sata" index: 0 } cdrom: True device_uuid: "62772fe2-d1dc-4ff6-b6e1-0d8ac5e41dc7" empty: True naa_id: "naa.6506b8dc77cd0c62b11a39833f8b4a9c" } disk_list { addr { bus: "scsi" index: 0 } container_id: 1072 container_uuid: "08fb0789-45ea-4a1d-8039-1c9926d78f8d" device_uuid: "975aff11-d2ea-4de6-b6a7-125a87f6992b" naa_id: "naa.6506b8d407bbe66324c910ac88c5bfea" source_vmdisk_uuid: "6cc2214f-188e-4f4d-8516-f975ab3110a4" vmdisk_nfs_path: "/NXContainer/.acropolis/vmdisk/6d9eb1db-a258-445f-88e2-e275138fe880" ###我們要找的路徑### vmdisk_size: 21474836480 vmdisk_uuid: "6d9eb1db-a258-445f-88e2-e275138fe880" ###我們要找的VMDisk UUID### } hwclock_timezone: "Asia/Taipei" machine_type: "pc" memory_mb: 4096 name: "Nvidia License Server" nic_list { connected: True mac_addr: "50:6b:8d:b3:5a:9c" network_name: "default" network_type: "kNativeNetwork" network_uuid: "9b5e437f-72ec-40cc-91b1-fff4f840c547" type: "kNormalNic" uuid: "57f3936a-8860-400e-b8e7-8aaa2dd24182" vlan_mode: "kAccess" } num_cores_per_vcpu: 1 num_threads_per_core: 1 num_vcpus: 2 num_vnuma_nodes: 0 vga_console: True vm_type: "kGuestVM" } logical_timestamp: 10 state: "kOff" uuid: "e0224f1e-1ed3-4f4b-ab9e-478100c5146c" } |
匯出VMDisk
- 因為在Nutanix AHV上vDisk是被放在一個隱藏的資料夾.acropolis,故我們用qemu-img工具去做匯出
- 匯出時只會使用精簡佈建的硬碟(用多少資料匯出多少)
- 確保虛擬機是關閉的狀態
指令如下,執行完成的時間依照虛擬機檔案的大小和伺服器的IO大小
1 |
qemu-img convert -c nfs://127.0.0.1/[container]/.acropolis/vmdisk/[UUID] -O qcow2 nfs://127.0.0.1/[container]/[vmdisk].qcow2 |
實際執行結果如下,完成後並不會有任何提示
1 |
qemu-img convert -c nfs://127.0.0.1/DEMOContainer/.acropolis/vmdisk/6d9eb1db-a258-445f-88e2-e275138fe880 -O qcow2 nfs://127.0.0.1/DEMOContainer/nvidia-license-server.qcow2 |
如果轉檔太久,將命令放在背景執行 nohup COMMAND > nohup.log 2>&1 &
Windows用NFS掛載Storage Container
將客戶端加入檔案系統白名單

Win10起用NFS功能
控制台->程式集->程式與功能->開啟windows功能

Windows NFS 客戶端 NFS Export 預設是使用保留的埠(1~1024),將其關閉
1 2 |
nfsadmin client localhost config UseReservedPorts=no nfsadmin client |

連接到CVM上的NFS 服務端掛載到本地的Z槽,當掛載到UNIX-Like的NFS 服務端時windows 預設只有給anonymous 使用者讀的權限(UID=-2, GID=-2)
1 |
mount -o anon \\172.18.205.127\DEMOContainer Z: |

調整Windows 登入編輯器的nfs client參數讓anonymous 使用者有寫的權限
- 打開執行輸入regedit
- 選到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default.
- 創建一個新的 New DWORD (32-bit) Value 在 Default 資料夾內名稱為 AnonymousUid ,他將會是一個 UID=0在UNIX-Like的NFS Server共享目錄上
- 創建一個新的 New DWORD (32-bit) Value 在 Default 資料夾內名稱為 AnonymousGid ,他將會是一個 GID=0在UNIX-Like的NFS Server共享目錄上


重開機使其生效
掛載後如下圖

可以從檔案總管看到Z槽,並複製出檔案

可以在.acropolis下看到其他的VMDisk

參考
https://graspingtech.com/mount-nfs-share-windows-10/