2009年07月28日 Mondo RescueによるOSリカバリ

By | 2009年12月15日

システムの可用性を向上させるには、バックアップが有効です。
サーバのディスクはRAID1でミラーリングする事が多いと思いますが、
ディスクが2本とも故障した場合、再度新規に構築しなければならず数時間のダウンタイム(工数)が発生します。
複雑な構成・サーバ設定書が不完全な場合、障害前に戻すにはより苦労するかもしれません。
そこで、構築完了時にシステムのフルバックアップを取得し、何かあった場合にそれを用いてリカバリすれば
相当なダウンタイム(工数)削減になると思います。
構築以降のconfig・contentsの変更点は別途バックアップサーバから戻す(rsync等)のが現実的な気がします。

今回は、フリーのバックアップソフトウェアであるMondo Rescueを使用し、
リカバリCDを作成し実際にリカバリしたいと思います。

1.パッケージのダウンロード


Mondo Rescueに必要なパッケージは以下のサイトからダウンロードします。
Mondo Rescue Japan

2.パッケージのインストール


# rpm -vhi mindi-busybox-xxx.rpm ←リストア時に起動用カーネルで使用されるコマンドセット
# rpm -vhi mindi-xxx.rpm ← バックアップ時に使用するパッケージャコマンドセット
# rpm -vhi afio-xxx.rpm ← アーカイブパケット作成用ツール
# rpm -vhi buffer-xxx.rpm
# rpm -vhi mondo-xxx.rpm ← Mondo Rescue本体
# rpm -vhi lzo-xxx.rpm ← 圧縮ライブラリ
# rpm -vhi mkisofs-xxx.rpm ←ISOイメージ作成ツール
# rpm -vhi cdrecord-xxx.rpm ←CD作成ツール

※”—FATALERROR— Failed to generate boot+data disks”となる場合、
※mondo,mindi,mindi-busyboxのバージョンを下げる。
※mondo2.2 ⇒ 2.0 , mindi2.0 ⇒ 1.2 , mindi-busybox1.7 ⇒ 1.2

3.isoイメージ格納ディレクトリ作成


#mkdir -p /var/MondoRescue

4.isoイメージの作成


#mondoarchive -Oi -N -s 700m -d /var/MondoRescue
-Oi isoイメージを生成
-N ローカルディスクのみをバックアップ対象

-s メディアのサイズを指定。
-d バックアップイメージを保管するディレクトリを指定する

※30分程度掛かった。バックアップ対象が1.6GB時に、600MBのISOファイルが生成。
※mondoarchiveコマンドで生成されるISOイメージは自動的にバックアップ対象から除外されるため、
バックアップ先(今回は/var/MondoRescue)が空ディレクトリであれば、-Eオプションを指定する必要ない。

5.リカバリCDの作成


5.1CD-R/RW ドライブが割り当てられているSCISのデバイス番号を調べる(kernel-2.4)
#cdrecord -scanbus
5.2cdrecord でCD-Rに書き込む
#cdrecord -v speed=8 dev=0,0,0 -eject /var/MondoRescue/xxx.iso

※WindowsXPでは、ISO Recorderというアドオン・ソフトウェアを利用すると、
※isoイメージを右クリックから簡単にCDに書き込むことができる。

6.リカバリ


起動メニューの「boot:」プロンプトが表示されたら、nuke を入力。
nuke :自動的にハードディスクをフォーマットして、バックアップデータをリストアする
interactive :リストア元などを対話的に指定する
expert :コマンドモードで起動する
※600MBのISOファイルリカバリに、20分程度の時間。

■参考サイト


MondoRescueによるバックアップとリカバリ(CentOS5.1)
第1回:オープンソースMondo Rescueによるバックアップ手法
ISOイメージからのインストールCD作成(cdrecord)
P2V (Physical to Virtual) – MondoRescue編
Mondo Rescueを使い、物理マシンを仮想マシン化する方法
mondo rescueでフルバックアップする。そしてリストア。
Mondo Rescueインストール
ISOファイルをCD-Rに書き込む