差分

LVMを使ってスナップショット

107 バイト追加, 2015年7月27日 (月) 17:28
/* LVM スナップショット */
LVMを使ってスナップショットを取る方法を説明します。ここでは以下の説明をします。
 
# スナップショット用LVの作成
ここではlv_rootのスナップショットを取る方法を説明します。lv_rootは次のようになっています。
 <ttpre class="bash">
# lvscan
ACTIVE '/dev/vg_c0/lv_root' [7.74 GiB] inherit
...
LV Size 7.74 GiB
</ttpre>  
=== スナップショット用LVを作成 ===
現在のVGのFree PEを確認します。
 <ttpre class="bash">
# vgdisplay
--- Volume group ---
Free PE / Size 82 / 328.00 MiB
...
</ttpre
PE量で82、サイズで328MiBが利用可能なので、それを全て使いスナップショット用のLVを作成します。
 <ttpre class="bash">
# lvcreate -s -l +82 -n lv_root_snap /dev/vg_c0/lv_root
Logical volume "lv_root_snap" created
</ttpre
/dev/vg_c0/lv_root_snap が /dev/vg_c0/lv_root のスナップショットとなります。
その時点から、328MiB分の領域を使い切るまでは追加する(正確には領域を使い切るまで)ことが可能です。
 <ttpre class="bash">
# lvscan
ACTIVE Original '/dev/vg_c0/lv_root' [7.74 GiB] inherit
ACTIVE Snapshot '/dev/vg_c0/lv_root_snap' [328.00 MiB] inherit
</ttpre>  
=== バックアップ ===
そのような時に、スナップショットを使えば、そのスナップショットを作った時のLVの状態がダンプできます。
 <ttpre class="bash"> # dump -0 -f /backup/lv_root_snap.dump /dev/vg_c0/lv_root_snap</ttpre
ファイルシステムとしてマウントすることも可能です。この時、読み書き可能としてマウントしてしまうと領域の破壊が発生するので必ずリードオンリーでマウントして下さい。
 <ttpre class="bash"> # mkdir /mnt/lv_root_snap/
# mount -o ro /dev/vg_c0/lv_root_snap /mnt/lv_root_snap/
# df
/dev/mapper/vg_c0-lv_root_snap
7992464 2129188 5463652 29% /mnt/lv_root_snap
</ttpre>
=== LVの開放 ===
スナップショット用に作ったLVの容量を越えてしまうと、オリジナルの領域に書き込みも含め無効(inactive)になり、以降、エラーになります。
 
ですから、スナップショット作業が済んだならば、スナップショット領域を開放しておかなければなりません。
 <ttpre class="bash">
# lvremove /dev/vg_c0/lv_root_snap
Do you really want to remove active logical volume lv_root_snap? [y/n]: y<RET>
Logical volume "lv_root_snap" successfully removed
Logical volume vg_c0/lv_root contains a filesystem in use.
</ttpre>  
== 脚注 ==