ProxmoxVEにおける仮想マシンのバックアップ、移行先マシンへのネットワークコピー、リストアの方法を解説します。
1.proxmoxのシェルを起動
proxmoxのコンソールからシェルを起動します。
proxmoxのシェルは画面を変えるとログアウトしてしまいますので、シェル画面を変えずにコマンド操作するか、teratermでssh接続します。
2.VM番号の確認
仮想マシンのイメージファイル操作は、qmコマンドで行います。
"qm list"で仮想マシンのVMIDや動作状態などを確認することができます。
qmコマンドはproxmox専用のコマンドで、ubuntuやCentOSには存在しません。
root@falcon-proxmox:~# qm list VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID 101 ace-webserver running 2048 32.00 6775 102 ubuntu2204-softether running 2048 32.00 2055 105 aipocentos7 stopped 2048 0.00 0 107 falcon-ad1 stopped 4096 64.00 0 108 falcon-zabbix running 8192 120.00 5391 109 aipo-rockylinux running 2048 32.00 4646 121 postfix-relay-rocky running 2048 32.00 455964
バックアップする仮想マシンが動作中である場合は、仮想マシン内にログインしてシャットダウンを行います。
仮想マシンは"qm stop <VMID>"で強制終了も行えます。ただし、データが消失することがあるため自己責任でお願いします。
3.vzdumpでバックアップ作成
vzdumpコマンドでバックアップを作成します。
バックアップファイル作成には時間がかかるため、余裕を見て作業します。
VMID=107 falcon-ad1をバックアップした場合は、以下コマンドになります。
# vzdump 107 --compress zstd
dumpされたイメージファイルは、/var/lib/vz/dump/に保存されます。
# cd /var/lib/vz/dump/ # root@falcon:/var/lib/vz/dump# ls vzdump-qemu-107-2024_06_19-00_46_29.vma.zst
イメージファイルは圧縮されますが、数十Gbytesくらいになる場合がほとんどです。
proxmox内のストレージ容量を超える場合は、NFSなどをマウントして保存先を指定します。
# vzdump 107 --compress zstd --dumpdir /mnt/vz/
4.scpコマンドで移行先サーバーへdumpファイルをコピー
dumpファイルはscpコマンドで、ネットワーク経由でコピーする方法が簡単で確実です。
scpコマンドにおいて、移行先サーバー指定は "root@192.168.100.249:/var/lib/vz/dump/"のように入力します。
コピー開始前にrootパスワードが聞かれるので入力します。
# cd /var/lib/vz/dump # scp vzdump-qemu-107-2024_06_19-00_46_29.vma.zst root@192.168.100.249:/var/lib/vz/dump root@192.168.100.249's password: vzdump-qemu-107-2024_06_19-00_46_29.vma.zst 100% 9131MB 111.7MB/s 01:21
コピー作業はこれだけで済みます。
5.移行先サーバーでdumpファイルをリストアする
仮想マシンのリストアはqmrestoreコマンドで行います。
以下は移行先サーバーで"vmid=109"としてリストアした場合になります。
リストアも時間がかかるため、時間の余裕は見ておくようにします。
# cd /var/lib/vz/dump # qmrestore vzdump-qemu-107-2024_06_19-00_46_29.vma.zst 109 --storage local-lvm
仮想ホストのストレージ形式が、zfs(raid1)からlocal-lvm(non-raid)に変わる場合は、"--storage"を指定する必要があります。
ストレージ名称は/etc/pve/storage.cfgに記載されているとおりに入力します。
以下の例は仮想ホスト用ストレージ2つ積んだマシンです。
- local-lvm: ProxmoxOSが入っているストレージ(HDD500G)
- lvm2:増設したストレージ(HDD 2T)
# cat /etc/pve/storage.cfg dir: local path /var/lib/vz content backup,iso,vztmpl lvmthin: local-lvm thinpool data vgname pve content rootdir,images dir: lvm2 path /mnt/pve/lvm2 content snippets,rootdir,images,backup,vztmpl,iso is_mountpoint 1 nodes falcon-proxmox
仮想マシンのリストアができたら、仮想マシンが完成していることを確認します。
仮想マシンは「ハードウェア」でハードディスク、ネットデバイスを移行先のマシンに変更してから起動します。
起動したら、サーバーにログインし、ipアドレス等の基本設定と動作確認を行いましょう。
6.アト作業
vmdkファイルはサイズが大きいため、移行ホスト先で起動出来たら削除します。
後で消しても良いのですが、vzdumpのファイル名では中身がわからないため、結局、削除することになります。
筆者の場合、移行前のサーバーは完全移行できた時点で削除しています。
# cd /var/lib/vz/dump # rm -f vzdump* (-fはforceの意味)
Proxmoxの仮想マシンのバックアップとリストアは簡単です。
マシン間のコピーに使うscpは、仮想マシンを管理していると多用しますので、覚えておくとよいでしょう。