水曜日, 1月 31, 2007

LVM を利用したバックアップ

LVMを利用してXenのディスクをバックアップします。

LVMにはスナップショットの機能がついているので、これを利用すればファイルシステムレベルでの不整合は発生しなくなります。
DBのトランザクションなんかはまた別の話なので、そういうときはアプリケーションで用意されたバックアップを使いましょう。

まず、仮想マシンをいったん停止します。
xm pause dns1.infology.info

次にLVMのスナップショットを作成します。
lvcreate -s -L 1G /dev/xm129/dns1.infology.info-disk
-L で指定するサイズはバックアップの間にこのディスクに加えられる変更のサイズよりも大きくないといけません。このあたりは経験するしかないですね。

スナップショットの作成が済んだら、仮想マシンを動かします。
xm unpause dns1.infology.info
スナップショットの作成はとても早いので、ここまでに必要な時間は数秒です。
LVSheartbeatを使った冗長化が済んでいれば、まず問題にならない程度ですね。

バックアップを作成します。
dd if=/dev/xm129/lvol0 of=/backup/dns1.infology.info.disk
lvol0はスナップショットの名前です。
紛らわしいときは、作成時に -n オプションで自由に名前をつけることができます。

バックアップが終了したら、スナップショットを削除します。
lvremove /dev/xm129/lvol0


ちなみに復元したいときには、
dd if=/backup/dns1.infology.info.disk of=/dev/xm129/dns1.infology.info-disk
とします。

LVM (Logical Volume Manager) と Xen

LVM(Logical Volume Manager)を使います。

というのも、それまでファイルのディスクイメージでXenを使っていました。
間違って電源が落ちたときに、イメージファイルがことごとく壊れたんですね。
やはり、数ギガバイトのファイルというのは無理がありそうです。

DebianではOSのインストール時にLVMの利用を選択できます。
すべて自動で進めていって、最後にサイズだけ変更します。
そのままだとディスク全体がひとつのLV(Logical Volume)になってしまいます。

Xenの仮想マシンにディスクを割り振るのも、ツールを使うと意識せずにできます。
xen-create-image などで仮想マシンを作成すると、LVの作成もやってくれます。

LVMを使うと、ループバックデバイスの設定も必要ありません。
また、Xenのマニュアルによると、パフォーマンスもよいらしいです。
将来、ディスクサイズの変更が必要になった場合もLVMを利用していると簡単に対応できるので、まったくいいこと尽くめです。