バックアップ · 1 min read · Feb 14, 2026

LVM XEN ゲストのバックアップ (LVを含む)

LVM XEN ゲストのバックアップ (LVを含む)

私の仕事では、すべてのLinuxボックス(3台を除く)はXen VMです。ファイルが変更されるリスクなしにこれらのバックアップを取る方法を探していました。パフォーマンスの理由から、すべてのボックスを論理ボリューム上で実行しています。

これらのVM内では、DomU OSがさまざまな理由で再びLVMを使用しています。これにより、バックアップを取る際にいくつかの頭痛の種が生じます。

基本的なアイデアは次のとおりです:

  1. スナップショット論理ボリュームを作成する
  2. Dom0が論理ボリュームをスナップショット論理ボリューム内で見ることを許可する(ふぅ)。
  3. 新しく発見された論理ボリュームをマウントする。
  4. バックアップを取る
  5. 整理する

いくつかの前提条件を設定しています。Dom0(ホスト)またはDomU(ゲスト)のいずれか(または両方)でボリュームグループにカスタム名を使用していると仮定しています。個人的には、常にkickstartファイルを使用してDomUを作成しているため、メインVGをXenVG00に設定しています。すべてのDomUはDom0のvg_xenというVGにありますが、これは必須ではありません。

2つ目の前提条件は、DomUイメージを保持しているボリュームグループに余分なスペースがあることです。それほど多くは必要ありません。スナップショットボリュームを使用し終わったら削除するためです。

まず、スナップショットを作成する必要があります:

[root@dom0 ~]# lvcreate -L 1G -s -n lv_snapshot /dev/vg_xen/lv_xen_snaptest
論理ボリューム "lv_snapshot" が作成されました

これにより、DomUのスナップショットボリュームlv_snapshotが作成され、Dom0 LVのlv_xen_snaptestを使用しています。これは、今後このLVのイメージを取得できるため、便利です。私はこれを災害復旧のために正確に行います(dd if=/dev/vg_xen/lv_snapshot | bzip2 | dd of=/path/to/dr_image.bz2)。最悪のシナリオでは、このイメージを新しいシステムの新しい論理ボリュームにddして、新しいXenインスタンスを実行できます。

ただし、私たちがやりたいのは、このスナップショット内のファイルにアクセスすることです。DomUがLVMを使用しているため、残念ながらこれは簡単ではありません。まず、kpartxを使用してLVデータを抽出する必要があります:

[root@dom0 ~]# kpartx -av /dev/vg_xen/lv_snapshot
lv_snapshot1を追加マップ:0 208782 線形 /dev/vg_xen/lv_snapshot 63  
lv_snapshot2を追加マップ:0 20755980 線形 /dev/vg_xen/lv_snapshot 208845

2つのLVが見つかりました。lv_snapshot1が小さいため、それがスワップファイルであり、lv_snapshot2が/ファイルシステムであることがわかります。次に、LVMにこれらのLVを認識させてアクティブにする必要があります。

[root@dom0 ~]# vgscan
すべての物理ボリュームを読み込んでいます。しばらく時間がかかる場合があります…  
メタデータタイプlvm2を使用してボリュームグループ"vg_xen"を見つけました  
メタデータタイプlvm2を使用してボリュームグループ"XenVG00?を見つけました  
メタデータタイプlvm2を使用してボリュームグループ"VolGroup00?を見つけました
[root@dom0 ~]# vgchange -ay XenVG00
ボリュームグループ"XenVG00?に2つの論理ボリュームが現在アクティブです

LVがアクティブになったので、他のディスクと同様にマウントできます。

[root@dom0 ~]# mount /dev/XenVG00/LVroot /mnt/

好きなコマンドを実行できます

[root@dom0 ~]# rsync -avhp /mnt/ /backup/xen_test/

当然、私たちは自分たちの後始末をしなければなりません:

[root@dom0 ~]# umount /mnt  
[root@dom0 ~]# vgchange -an XenVG00
ボリュームグループ"XenVG00?に0の論理ボリュームが現在アクティブです
[root@dom0 ~]# kpartx -d /dev/vg_xen/lv_snapshot  
[root@dom0 ~]# lvremove /dev/vg_xen/lv_snapshot
本当にアクティブな論理ボリューム"lv_snapshot"を削除しますか? [y/n]: y  
論理ボリューム"lv_snapshot"が正常に削除されました

ここで重要なのは、VMを一度も一時停止することなく、完全なバックアップを作成できたことです。

スナップショットボリュームのサイズがここでの難しい部分です。私は1GのスナップショットLVを使用しました。どれくらいの大きさが必要かを示すために:私のウィキのDRイメージが取得され、bzippedされ、別のボックスにSSHで送信されて保存されるまでに、スナップショットの使用率はほぼ7%に達しています。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。