(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件の返信

コメントを残す

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