LVMのスナップショットを使ってみた
仮想化ソフトウェアのスナップショット機能はとても便利で、特定の状態にいつでも戻れると思うと検証作業も楽しいが、物理サーバーでの検証が必要な場合も多々ある。特殊な外付け装置が必要な場合や、仮想化ソフトウェア自体を含むシステムの検証などである。
ある物理サーバー(OS:RHEL 5.5 x64)を少しいじる必要に迫られたので、あまり利用したことのないLVMスナップショットを使ってみる。ただし、標準のLVMには「スナップショットの状態に戻す」機能はない。戻すには、dump等でバックアップをとり、それをrestoreする必要がある。
対象となるサーバーはRHELをデフォルトでインストールしたらしく、LVMがすでに導入されていたが、スナップショット領域を作成する容量がない。そこで、論理ボリュームを縮小することから始める。
1. インストールDVDでrescueモードで起動
2. LVMを起動
# lvm vgchange -a y
3. 整合性チェック
# fsck.ext3 -f /dev/VolGroup01/LogVol00
4. ファイルシステムのリサイズ
# resize2fs /dev/VolGroup01/LogVol00 100G
5. 論理ボリュームのリサイズ
# lvm lvresize -L 100G /dev/VolGroup01/LogVol00
6. rescueモードからexitして再起動
なるほど、今度Linuxをインストールするときは、スナップショットのための領域をあらかじめ用意しておこう。
スナップショットをとるには、
# lvcreate -s -L 10G -n LogVol00_snap /dev/VolGroup01/LogVol00
とする。
# lvdisplay /dev/VolGroup01/LogVol00_snap --- Logical volume --- LV Name /dev/VolGroup01/LogVol00_snap VG Name VolGroup01 LV UUID XXXXX LV Write Access read/write LV snapshot status active destination for /dev/VolGroup01/LogVol00 LV Status available # open 0 LV Size 100.00 GB Current LE 3200 COW-table size 10.00 GB COW-table LE 320 Allocated to snapshot 0.45% Snapshot chunk size 4.00 KB Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
これでAllocated to snapshotがあふれないことに注意しておけば、スナップショットの状態に戻れるはずだ。もちろんディスク障害が起きた場合は、全部あきらめることになるが、今回の装置に関してはOK。少し安心できたので終了!