2010年 03月 07日
Novell SUSE Linux + Windows XEN イメージのバックアップ
ただし、Novell の SUSE 用仮想ドライバ Virtual Machine Driver Pack (VMDP) が必要です。
-cron による自動実行-
シェルは /sbin/backup.sh で cron による自動実行で行われます。自動実行を行う root の crontab ファイルは /var/spool/cron/tabs/root です。
このファイルを編集するには
# crontab -e
コマンドで vi エディタで修正します。形式は
分 時 日 月 曜日 コマンド
です。
0 2 * * * /sbin/backup.sh
の場合、毎時 AM 2:00 にバックアップを実行します。
※ crontab -r はこのcrontabファイルを削除します。 e の隣が r で間違えやすいので、必ず root の crontab をバックアップしてから crontab -e を実行してください。
-バックアップシェルの実態-
不慣れですが、バックアップ用のシェルを作りました。バックアップシェルは次の作業を行います。
- 日時を /var/log/backup.log に書きこみます。
- for 文で変数 i に対して各 VM マシン名を代入して変数がなくなるまで処理します。
- mv により、前回のバックアップを上書きコピーします。
- xm shutdown により仮想マシンをシャットダウンします。 sleep で指定された時間待ちます。
- 時間内にシャットダウンできない場合は xm destroy で強制終了させます。
- tar -cvzf により /var/lib/xen/images 以下の仮想マシンイメージを /backup に圧縮します。
- xm create により、バックアップが終わった仮想マシンを再起動します。
- これを各仮想マシンごとに実行して、最後にタイムスタンプを書きこみます。
-サンプルスクリプト-
#! /bin/sh
# for in value "i" to vmachine name
for i in MyVM1 MyVM2 MyVM3
do
date >> /var/log/backup.log
echo ------start--------- >> /var/log/backup.log
#backup before archived backup
mv /backup/$i.tar.gz /backup/$i.tar.gz.bak >> /var/log/backup.log
# xm shutdown and sleep until shutdown complete
/usr/sbin/xm shutdown $i >> /var/log/backup.log
sleep 180 >> /var/log/backup.log
# if not shutdown then destroy
/usr/sbin/xm destroy $i >> /var/log/backup.log
# archive xen image to /backup/ --- tar.gz and reboot xen V Machine
tar -cvzf /backup/$i.tar.gz /var/lib/xen/images/$i/* >> /var/log/backup.log
/usr/sbin/xm create $i >> /var/log/backup.log
sleep 30
echo -----end------ >> /var/log/backup.log
done
date >> /var/log/backup.log
echo -----all end------ >> /var/log/backup.log
echo . >> /var/log/backup.log
ポイントは xm shutdown MyVM を実行してから、30 秒後に Windows がシャットダウンを開始するところです。ここでは sleep 180 を実行して、シャットダウンの信号を送ってから3分待ちますが、ADが動作しているサーバなど、シャットダウンに5分とか10分とかかかるような仮想マシンの場合は Sleep 時間を長めに取らなければならないところでしょうか。
また、上のシェルでは MyVMx が /var/lib/xen/images/ に代入されるので、仮想マシンのイメージディレクトリ、仮想マシン名( /etc/xen/vm ) の名前が一致している必要があります。
このサンプルでは仮想マシンイメージを tar.gz で圧縮しています。およそ10%から20%くらいまで圧縮されますが、それだけの時間がかかるということも考慮してください。
Novell SUSE Linux SLES 11 XEN Windows 仮想化 自動バックアップ
Visit My Site