2009年4月30日木曜日

仮想サーバのバックアップ(その2)

--- バックアップを実行

バックアップ用の新しいディスクにパーティションを切って、rsyncでバックアップ

# mkdir /var2
# mount /dev/sdb1 /var2
# mkdir /var2/lib/vservers -p
# vserver サーバ名 stop
# rsync -av --delete /var/lib/vservers/サーバ名 ./
...
sent 2046517748 bytes received 526147 bytes 5873870.57 bytes/sec
total size is 2044493323 speedup is 1.00

MySQL,Apche2,PHP,Bind9とかが入っていて、データ含めて約2GBを5MB/secでコピーできた。
データファイルは1GB程度あるので、アプリケーションを含むシステムが1GBグぐらい。
USBのディスクがかなり遅いが、データの更新が無ければ、2回目は10秒程度で終了した。

---IPnuts側のデータを保存

仮想サーバではなく、IPnutsでデータとして保存すべきフォルダが/varにあり/varがtmpfsにマウントされていない(ディスクにマウントされている)とブートディスクに保存されないので、-fオプションをつけてlrp_data-saveを実行してブートディスクに保存しておく。IPnutsのデータファイルのリストは/var/lib/lrpkg/*.dataファイルにかかれている。これは、ブートディスクの/dataフォルダに保存される。sslで認証局を作ったり、証明書でOpenVPNの設定を行うと保存が必要になる。また、手動でdnsmasqのtftpを設定する場合も/var/lib/dnsmasqにデータを保存する。

# lrp_data-save -f

(ただし、これは正常にシャットダウンすると必ずブートディスクに保存される。)

/etc/fstabを変更し一旦設定を保存し再起動で、現行の動作を確認

LABEL=VAR /var ext3 defaults 0 2
LABEL=HOME /home ext3 defaults 0 2
LABEL=TMP /tmp ext3 defaults 0 2
LABEL=SWAP none swap sw 0 0

LABEL=VAR2 /var2 ext3 defaults 0 2
### for recover
#LABEL=VAR2 /var ext3 defaults 0 2
#LABEL=HOME2 /home ext3 defaults 0 2
#LABEL=TMP2 /tmp ext3 defaults 0 2
#LABEL=SWAP2 none swap sw 0 0

---リカバー時の動作確認
本体が動作しているのであれば、/etc/fstabを書き直して設定保存してもいいが、本体が起動しない場合もある。この場合は、ブートディスクの/systemフォルダにfstabがあるのでこれを編集して起動する。


#LABEL=VAR /var ext3 defaults 0 2
#LABEL=HOME /home ext3 defaults 0 2
#LABEL=TMP /tmp ext3 defaults 0 2
#LABEL=SWAP none swap sw 0 0

#LABEL=VAR2 /var2 ext3 defaults 0 2
### for recover
LABEL=VAR2 /var ext3 defaults 0 2
LABEL=HOME2 /home ext3 defaults 0 2
LABEL=TMP2 /tmp ext3 defaults 0 2
LABEL=SWAP2 none swap sw 0 0


lrp_data-saveで保存されるパッケージのデータは、/varがtmpfsではない場合(ディスクにマウントされている場合)起動時にロードされないので、リカバー時には手動で
# lrp_data-load -f
を実行し再起動する必要がある。これを避けるには、/var/lib/lrpkg/*.dataの中身をみてあらかじめバックアップ先にバックアップしておけばよい。

起動後動作確認すればOK。元にもどすときは、再度ブートディスクの/system/fstabを編集して再起動する。

0 件のコメント: