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