XenServer 轉移至 Proxmox (PVE)

XenServer 轉移至 Proxmox (PVE)
本文亦可適用於 xcp-ng

準備工作

XenServer 匯出 xva

用 ssh 登入 xenserver

使用以下指令匯出 xva

xe vm-export vm={你的虛擬機器名稱} filename={匯出的檔名.xva}

( 可以用 xe vm-list 列出所有的 vm 名稱)

轉換映像檔

這個部份我是在 pve 上面做,所以先把 xva 檔丟過來或是用 nfs 之類的其他方式掛載

解壓縮 xva 檔

tar xf xen_vm.xva

解開會得到

  • 檔案 ova.xml
  • 資料夾 Ref:990 (數字不盡相同)

再用 xenmigrate.py 將資料夾 Ref:990 轉換為 raw image (以下以 vm_raw.img 為例)

注意 轉換成 raw 的時候會佔滿原本該虛擬硬碟原本分配的硬碟大小, 而非 thin 大小

python xenmigrate.py -c Ref:990 vm_raw.img

產生出的 vm_raw.img 即為 raw image

如果需 qcow2 檔案則可以用 qemu-img 轉換 (以下以輸出 vm.qcow2 為例)

 qemu-img convert -f raw -O qcow2 vm_raw.img vm.qcow2

建立虛擬機器

登入 pve web ui 建立一個虛擬機器

ex: id=101 disk=qcow2(32G)

虛擬機器不要開

ssh 進去 找到虛擬硬碟實際位置 (ex: /mnt/pve/NAS/images/101/vm-101-disk-1.qcow2)

本機儲存請找 /var/lib/vz/images/{vm-id}

把轉出來的 qcow2 覆蓋掉剛建立的 vm-101-disk-1.qcow2

mv -f vm.qcow2 /mnt/pve/NAS/images/101/vm-101-disk-1.qcow2

修改設定檔磁碟容量 /etc/pve/qemu-server/101.conf

#virtio0: RS_PVE_NFS:101/vm-101-disk-1.qcow2,size=32G
virtio0: RS_PVE_NFS:101/vm-101-disk-1.qcow2,size=250G

開機測試沒問題後,就可以把先前產生的 xva / img / ova / Ref 檔案砍一砍了

Ref:

  • https://pve.proxmox.com/wiki/Xenmigrate
  • https://github.com/derekjhyang/xenserver_to_xen