(linux) LVM2 スナップショット+バックアップ

LVM2 スナップショットのスナップショット機能を使った安全なファイルシステムバックアップの方法

スナップショット先のデータは変更されないので安全にバックアップが取得できる。
(ファイルシステムよりシステムよりのLVMの層でオリジナルデータと一緒に変更管理を行っているため、小容量で安全にできる)

○ 検証環境作成
# mke2fs -j /dev/testvg/testlv1
# mount /dev/testvg/testlv1 /mnt/test
# echo "aaaaaa" > /mnt/test/aaaaaa
# echo "bbbbbb" > /mnt/test/bbbbbb

○ lvスナップショット
※mysqlなどのデータベースならここでロックをかける。「FLUSH TABLES WITH READ LOCK;」
# lvcreate -s -L 32M -n snaptestlv /dev/testvg/testlv1
Logical volume "snaptestlv" created

※mysqlなどのデータベースならここでロックを解除。「UNLOCK TABLES;」

○ スナップショット取得検証
オリジナルデータの変更
# echo "cccccc" > /mnt/test/cccccc
# echo "bbbaaa" > /mnt/test/bbbbbb

○ スナップショットのデータの確認
# mkdir /mnt/snaptest
# mount /dev/testvg/snaptestlv /mnt/snaptest
# ls /mnt/snaptest
aaaaa bbbbbb lost+found
# cat /mnt/snaptest/bbbbbb
bbbbbb
# cat /proc/mounts
/dev/testvg/testlv1 /mnt/test ext3 rw 0 0
/dev/testvg/snaptestlv /mnt/snaptest ext3 rw 0 0
# umount /mnt/snaptest
# lvm lvdisplay testvg
--- Logical volume ---
LV Name /dev/testvg/snaptestlv
VG Name testvg
LV UUID yoJjdE-LVJE-LHN1-zrBu-u8bB-ra3R-ijQn0Z
LV Write Access read/write
LV snapshot status active destination for /dev/testvg/testlv1
LV Status available
# open 0
LV Size 32.00 MB
Current LE 8
COW-table size 32.00 MB
COW-table LE 8
Allocated to snapshot 0.29% ←スナップショット先lvの使用率 オリジナルデータを変更するほど増加
Snapshot chunk size 8.00 KB
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:5

○ スナップショット先のファイルシステムバックアップ
# dump 0f /tmp/testlv.dmp /dev/testvg/snaptestlv
# lvm lvremove /dev/testvg/snaptestlv

※スナップショット先のlvを消さないと、いつまでもlvの古いデータコピーを続ける

○ バックアップデータの検証
# rm /mnt/test/*
# cd /mnt/test
# restore rf /tmp/testlv.dmp
# ls
aaaaaa bbbbbb lost+found restoresymtable
# cat /mnt/test/bbbbbb
bbbbbb

わからなければ以下の本を参考にしてもいいかも(キーワード検索なので的外れの場合もあります)
わからなければ以下の本を参考にしてもいいかも(機械検索なので的外れの場合もあります)

(linux) LVM2 スナップショット+バックアップ” への1件のコメント

  1. ピンバック: MySQL:LVMスナップショット | gozonji.jp

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です