0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux: LVMスナップショットからフルバックアップ

0
Last updated at Posted at 2026-02-25

0. 前提知識

LVMスナップショットは論理的に「作成時点の完全なデータ」を提供するため、それをrsyncでコピーすればフルバックアップになる。

→なぜフルバックアップになるのか

  • LVMスナップショットは
    • 作成時点の全ブロックを参照できる
    • 変更前ブロックだけをCopy-On-Writeで保持
    • マウントすると“完全な1つのボリューム”として見える

1. 事前確認(構成把握)

① ディスク・LVM構成確認

lsblk

例:

sdb
 └─sdb1
    └─vg0-root
  • sdb → 物理ディスク(例:HDD)
  • vg0-root
    • vg0 → Volume Group
    • root → 論理ボリューム(lv)名
確認用コマンド
# 実際の論理ボリューム
ls /dev/vg0/root

# VG Name を確認
vgdisplay

# ↑のVGに所属する論理ボリュームを確認
lvs

② マウントポイント確認

df -h

例:

/dev/mapper/vg0-root   500G   100G  400G  /
  • / → 実際にデータが入っているディレクトリ
  • /dev/vg0/root → その実体

今回のバックアップ対象は「/」。


③ Volume Groupの空き容量確認

vgdisplay

例:

Free  PE / Size  50.00 GiB

スナップショット用に十分な空きがあることを確認する。
バックアップ元と同じボリュームグループにだけ、スナップショットを作れる。


2. スナップショット作成

lvcreate -L 50G -s -n snap_root /dev/vg0/root
lvcreate -L 50G -s -n snap_home /dev/vg0/home

意味:

  • -L 50G → 変更分保存用の容量
  • -s → snapshot作成
  • -n snap_root → スナップショット名
  • /dev/vg0/root → 元の論理ボリューム

作成確認:

lvs

下記を確認

  • LV に snap_root がある
  • Attr が swi-...(s = snapshot)
  • Origin が root
  • Data% が上がるならスナップショットサイズ見直し or 早くコピー(バックアップ)して消す

3. スナップショットをマウント

mkdir /mnt/snap/root_snap_mnt_point
mkdir /mnt/snap/home_snap_mnt_point
  • 一時的にsnapshotを参照するためのディレクトリを作る
# ext4: 
mount -o ro,noload /dev/vg0/snap_root /mnt/snap/root_snap_mnt_point
mount -o ro,noload /dev/vg0/snap_home /mnt/snap/home_snap_mnt_point
# XFS: 
mount -o ro,nouuid,norecovery /dev/vg0/snap_root /mnt/snap/root_snap_mnt_point
mount -o ro,nouuid,norecovery /dev/vg0/snap_home /mnt/snap/home_snap_mnt_point
  • -o ro → 読み取り専用でマウント(安全のため必須)
  • ファイルシステムごとの必要オプション
    • ext4は、 read-only マウントでもジャーナルリプレイで書き込みが発生し得る ので、より安全にするなら ro,noload が推奨されます(「roなのに書く」罠)。
    • XFSは、元のFSがマウント中だとスナップショットがduplicate UUIDでマウント拒否されることがあり、-o nouuid(必要に応じて norecovery)が必要になることがあります。

確認:

mount | grep snap_

4. バックアップ先確認

df -h

例:

/dev/sdc1   1T   200G   800G   /backup
  • /backup → 同VG以外に保存する。別ディスクやNFSなどのバックアップ保存先

5. rsyncでフルバックアップ

rsync -aHAX --delete /mnt/snap/root_snap_mnt_point /backup/
rsync -aHAX --delete /mnt/snap/home_snap_mnt_point /backup/

パスの意味:

  • /mnt/snap/ → スナップショットの中身(作成時点の完全な状態)
  • /backup/ → バックアップ保存ディレクトリ

重要オプション:

  • -a → パーミッション・タイムスタンプ保持
  • -H → ハードリンク保持
  • -A → ACL保持
  • -X → 拡張属性保持(SELinuxなど)
  • --delete → 削除されたファイルも同期

6. 後処理

umount /mnt/snap/root_snap_mnt_point
umount /mnt/snap/home_snap_mnt_point
lvremove /dev/vg0/snap_root
lvremove /dev/vg0/snap_home
  • スナップショットをアンマウント
  • スナップショットを削除
lvs
  • スナップショットがないことを確認

まとめ

  1. lsblk / df -h で構成確認
  2. vgdisplay で空き容量確認
  3. lvcreate -s でスナップショット作成
  4. mount -o ro で参照
  5. rsync -aHAX でフルバックアップ取得
  6. umount → lvremove
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?