前回は一通りの流れが見渡せるダイジェスト版を公開しました。今回は仮想マシンのバックアップ取得から、外付けSSDへ保存するところまでを公開します。
外付けSSDをノードのストレージとしてマウントし、そのストレージをターゲットにしてバックアップを取得すれば済むだけのことと思われる方もいるかもしれませんが、当方のようにサーバにProxmoxをインストールする際に zfs(RAID) を組んだ場合、エラーが出てしまいバックアップが取得できません。ここでは、そのときにコテコテしたことを記録として残します。
なお、ext4でインストールしたノードの場合、外付けSSDをノードのストレージとしてマウントし、そのストレージをターゲットにしてバックアップを取得できましたので、この記事のような手順を踏まなくても簡単に取得できます(この記事を読む必要はないと思います)。
1 仮想マシンのバックアップを取る
バックアップの取得方法は、下記のイラストを参考にしてください。
ここがポイント!
バックアップ先のストレージは、仮想マシンが載っているノードのlocalストレージをバックアップ先として指定します。サーバに zfs(RAID) 形式でProxmoxをインストールした場合は、この方法を試してみてください。
2 SSDをホストマシン(ノード)に接続する
ホストマシンにSSDをUSBで接続します。
ここではSSDが、デバイス /dev/sde として認識されています。
3 SSDをノードにマウントする
SSDを接続しているノードのシェルを起動し、マウント先を作成します。最後に削除することとなるので、どこでもよいと思います。ここではルート上に追加することとします。まずはルートディレクトリを確認。
# cd /
# ls
bin boot dev etc home lib lib64 media mnt opt proc root rpool run sbin srv sys tmp usr var
vmSSDという名称でディレクトリを作成。
# mkdir /vmSSD
# ls
bin boot dev etc home lib lib64 media mnt opt proc root rpool run sbin srv sys tmp usr var vmSSD
vmSSDが追加されました。ここにデバイス /dev/sde として認識されているSSDをマウントします。
# mount /dev/sde /vmSSD
マウントしようとしたらエラーが出る場合
下記のようなエラーが出た場合には、SSDのフォーマットが必要です。
mount: /vmSSD: special device /dev/sde/ does not exist (a path prefix is not a directory).
dmesg(1) may have more information after failed mount system call.
ext4形式でフォーマットをします。
# mkfs.ext4 /dev/sde
mke2fs 1.47.0 (5-Feb-2023)
Found a gpt partition table in /dev/sde
Proceed anyway? (y,N) y
Creating filesystem with 122096646 4k blocks and 30531584 inodes
Filesystem UUID: a8f8104f-350c-4f7f-a4c1-7cba89b753ec
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
フォーマット後に、再度マウントしてみると、うまくいくはずです。
4 SSDへバックアップデータをコピーする
仮想マシンのバックアップ先はlocalディスク上でした。local のディレクトリは、
/var/lib/vz
です。シェルから当該ディレクトリ内を見てみると、
# cd /var/lib/vz
# ls
dump images template
のように見えます。
dumpディレクトリ内を見てみると、
vzdump-qemu-101-2025_02_11-20_36_26.log
vzdump-qemu-101-2025_02_11-20_36_26.vma.zst
vzdump-qemu-101-2025_02_11-20_36_26.vma.zst.notes
のような感じで、バックアップした仮想マシンが保存されていることがわかります。
仮想マシンのデータをdumpディレクトリごと、SSDへコピーします。
# cp -r /var/lib/vz/dump /vmSSD
コピーが完了したら、SSDをアンマウントしてノードから取り外します。
# umount /vmSSD
次回は、SSDに保存した仮想マシンをリストアする手順を公開します。
同じノードにリストアすれば、バックアップから仮想マシンを復元することとなりますし、異なるノードにリストアすればマイグレーションすることとなります。