自宅サーバーのProxmox VE 4.4から5.1に仮想マシンを移行する話
Posted on 2018/02/11(Sun) 17:45 in technical
さまり
我が家の自宅サーバーたちは、最近までProxmox VE 4.4で動作させていました。
今回、PRIMERGY TX1320 M2が3台揃ったので、Proxmox VE 5.1のリリースに合わせて移行しました。
多少のダウンタイムはあるものの、特段問題なく移行できたので、移行手順のメモを残しておきます。
まだの人は、前回の 自宅サーバーのProxmox VE 5.1 - 3 nodes cluster環境の構築 もあわせてご覧ください。
移行手順
今回の場合は旧ストレージ(NFS)から新ストレージ(Ceph cluster)に移行することになります。
NFSからファイルを抜き出してきて、Cephに直接ぶち込む方式でもいいのですが、VMの設定ファイルを作るのも手間なので、Backup & Restore方式を採用します。
旧環境で使用していたNFSに、新環境からもNFS接続して、一時的にBackupファイルを参照できるようにしてあるものとします。
通報
- 旧環境ホスト名: uka (元ネタ: いなり、こんこん、恋いろは。の宇迦之御魂神(うかのみたまのかみ))
- NFSマウント先: /mnt/pve/dango-01
その場合、コマンドは以下のようなもので十分です。
旧環境
root@uka:~# qm list | grep running 1003 ran running 512 8.00 3492 1049 yachiyo running 1024 40.00 3840 root@uka:~# qm shutdown 1049 root@uka:~# qm status 1049 status: stopped root@uka:~# vzdump 1049 --dumpdir /mnt/pve/dango01/dump INFO: starting new backup job: vzdump 1049 --dumpdir /mnt/pve/dango01/dump INFO: Starting Backup of VM 1049 (qemu) INFO: status = stopped INFO: update VM 1049: -lock backup INFO: backup mode: stop INFO: ionice priority: 7 INFO: snapshots found (not included into backup) INFO: creating archive '/mnt/pve/dango01/dump/vzdump-qemu-1049-2017_11_28-22_48_06.vma' INFO: starting kvm to execute backup task INFO: started backup task 'fc163681-b962-495e-b289-db94b7652f55' INFO: status: 0% (19202048/42949672960), sparse 0% (1007616), duration 3, 6/6 MB/s <中略> INFO: status: 100% (42949672960/42949672960), sparse 86% (37138993152), duration 637, 847/0 MB/s INFO: transferred 42949 MB in 637 seconds (67 MB/s) INFO: stopping kvm after backup task INFO: archive file size: 5.42GB INFO: Finished Backup of VM 1049 (00:10:42) INFO: Backup job finished successfully
通報
GUIからBuckupを取る場合は、自動的にdumpdirが指定されますが、CLIからの場合は自分で指定する必要があります。
新環境
root@pve03:~# qmrestore /mnt/pve/dango-01/dump/vzdump-qemu-1049-2017_11_28-22_48_06.vma 1049 -storage rbd_vm restore vma archive: vma extract -v -r /var/tmp/vzdumptmp24839.fifo /mnt/pve/dango-01/dump/vzdump-qemu-1049-2017_11_28-22_48_06.vma /var/tmp/vzdumptmp24839 CFG: size: 310 name: qemu-server.conf DEV: dev_id=1 size: 42949672960 devname: drive-virtio0 CTIME: Tue Nov 28 22:48:10 2017 new volume ID is 'rbd_vm:vm-1049-disk-1' map 'drive-virtio0' to 'rbd:rbd/vm-1049-disk-1:conf=/etc/pve/ceph.conf:id=admin:keyring=/etc/pve/priv/ceph/rbd_vm.keyring' (write zeros = 0) progress 1% (read 429522944 bytes, duration 9 sec) <中略> progress 100% (read 42949672960 bytes, duration 161 sec) total bytes read 42949672960, sparse bytes 37138993152 (86.5%) space reduction due to 4K zero blocks 2.32%
ここで、基本的にはそのまま起動することができるのですが、現状のBackup & Restoreには不要な設定が紛れ込んでしまうバグがあるようです。(下記unused0, unused1など)
root@pve03:~# cat /etc/pve/qemu-server/1049.conf bootdisk: virtio0 cpu: host ide2: none,media=cdrom memory: 1024 name: yachiyo net0: virtio=22:BE:D8:D5:DA:D4,bridge=vmbr1 onboot: 1 ostype: l26 smbios1: uuid=94c2c14e-e92f-4a38-ae8c-b5decd4ddd44 unused0: dango-01:1049/vm-1049-disk-1.qcow2 unused1: rbd_ct:vm-1049-disk-1 virtio0: rbd_vm:vm-1049-disk-1,size=40G
!危険!
このunusedなdisk(特に上記で言うrbd_ctの方)をGUIから削除すると、VM用のイメージの実体が同時に消える可能性があるので、注意が必要です。
なので、その辺りは手作業で消してクリーンにしてあげます。(数が多い場合はsedでも可)
root@pve03:~# cat /etc/pve/qemu-server/1049.conf bootdisk: virtio0 cpu: host ide2: none,media=cdrom memory: 1024 name: yachiyo net0: virtio=22:BE:D8:D5:DA:D4,bridge=vmbr0 onboot: 1 ostype: l26 smbios1: uuid=94c2c14e-e92f-4a38-ae8c-b5decd4ddd44 virtio0: rbd_vm:vm-1049-disk-1,size=40G
この状態で、起動すれば問題なく立ち上がってきました。
root@pve03:~# qm list | grep 1049 1049 yachiyo stopped 1024 40.00 0 root@pve03:~# qm start 1049 root@pve03:~# qm status 1049 status: running
後は、他のVMも順次移行して完了です。
余談
新規に仮想マシンを作るときに、vmdkとかのイメージをCephストレージに突っ込んで使いたい場合は、以下のスレッドを参考にすると良さそう。(キーワードくらいだけど)
https://forum.proxmox.com/threads/move-qcow2-from-nfs-to-ceph-no-sparse.20994/
確かこんなコマンドだった気がする。
qemu-img convert -f qcow2 -O raw seilx86.qcow2 /dev/stdout | rbd --image-format 2 import -k /etc/pve/priv/ceph/rdb_vm.keyring --dest-pool rdb - vm-1002-disk-1
とか
rbd import --image-format 2 -k /etc/pve/priv/ceph/rdb_vm.keyring --dest-pool rdb seilx86.raw vm-1002-disk-1
おわり。