Mondo Rescue使ってみました(その1)

おはようございます。インフラの宮下です。

最近クラウド環境でイメージ作成ばかりしていたので、たまにはオンプレミス環境で
フルバックアップも取得してみます。


目次

  1. はじめに
  2. 環境
  3. mondorescueのインストール
  4. サーバのフルバックアップ
  5. 参考サイト

1.はじめに

定常的にOSバックアップをとるという案件で無く更新作業の前にバックアップを取得する必要があり色々とバックアップツールを検討していました。商用の検証もいくつか実施したのですが、今回はオープンソースの「Mondo Rescue」というバックアップツールを使ってみたいと思います。
オープンソースを使う最大の理由は、コストと納期になりますね。計画的な案件であれば商用のバックアップツールの検討が最初になるかと思います。
「Mondo Rescue」を選択した点としましては、NFSマウント先にファイルが保管できさらにそこからレストアも可能という情報が最大の「それ魅力」です。また、メディアからレストアするのも簡単そう(実際に簡単)なのも良さげでした。

2.環境

ロケーション:物理サーバ(富士通製)
OS:Red Hat Enterprise Linux Server release 6.4

3.mondorescueのインストール

最初にmondorescueのリポジトリを追加します。

[shell]
vi /etc/yum.repos.d/mondorescue.repo
[mondorescue]
name=rhel 6 x86_64 – mondorescue Vanilla Packages
baseurl=ftp://ftp.mondorescue.org//rhel/6/x86_64
#baseurl=ftp://213.30.161.23//rhel/6/x86_64
enabled=0
gpgcheck=1
gpgkey=ftp://ftp.mondorescue.org//rhel/6/x86_64/mondorescue.pubkey
#gpgkey=ftp://213.30.161.23//rhel/6/x86_64/mondorescue.pubkey
[/shell]

準備完了と言う事でmondorescueリポジトリを使ってmondo resucue本体をインストールします。
[shell]
# yum install mondo –enablerepo=mondorescue
===================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================
Installing:
mondo x86_64 3.0.4-1.rhel6 mondorescue 1.3 M
Installing for dependencies:
afio x86_64 2.5-1.rhel6 mondorescue 81 k
buffer x86_64 1.19-4.rhel6 mondorescue 24 k
mindi x86_64 2.1.7-1.rhel6 mondorescue 331 k
mindi-busybox x86_64 1.18.5-3.rhel6 mondorescue 306 k
syslinux x86_64 4.02-4.el6 mondorescue 855 k

Transaction Summary
===================================================================================================================================
Install 6 Package(s)
[/shell]

とmondo以外にもいつくか必要なrpmもインストールされます。

バックアップをとるだけであればこれで準備は完了です。
今回はメンテナンス時間中にバックアップを取得するという無謀な要件の為、
処理時間の短縮の為に高速圧縮ツール「lzo」もインストールします。

[shell]
# rpm -ivh lzo-2.06-1.el6.rfx.x86_64.rpm
# rpm -ivh lzop-1.02-0.9.rc1.el6.x86_64.rpm
[/shell]
これで環境の準備は完了です。

4.サーバのフルバックアップ

最終的にはNFSサーバ上に出力して保存します。
とりあえずはローカルDISKに出力します。(スピード重視)

[shell]
# /usr/sbin/mondoarchive -Oi -L -s 4700m -d /backup -E /backup -S /tmp -T /tmp -p hostname_date +%Y%m%d
[/shell]

それぞれのオプションは、

 -O…バックアップの実行
 -i…ISOイメージで出力する
 -L…bzip2では無くlzoで圧縮する
 -s…ISOの最大サイズ(4700mはDVD用です)
 -d…ISOの出力先
 -E…バックアップ対象除外パス
   ※複数のパスを除外したい時は、「-E ‘/backup|/backup2’」のように記載する。
 -S…一時ディレクトリのパス
 -T…tmpディレクトリのパス
 -p…ISOファイルの名前指定

/backup領域は元々何も無い領域なので、バックアップ対象外としてそこにデータを出力する事にしています。
これで実行すると下記のようなメッセージが出力されてバックアップが進んでいきます。

[shell]
Initializing…
See /var/log/mondoarchive.log for details of backup run.
Checking sanity of your Linux distribution
Done.
BusyBox’s sources are available from http://www.busybox.net
Making catalog of files to be backed up
—evalcall—1— Making catalog of /
—evalcall—2— TASK: [**………………] 6% done; 0:15 to go
—evalcall—E—
—evalcall—1— Making catalog of /
—evalcall—2— TASK: [***……………..] 15% done; 0:11 to go
—evalcall—E—
省略)
—evalcall—1— Running mkisofs to make ISO #1
—evalcall—2— TASK: [******************..] 90% done; 0:00 to go
—evalcall—E—
Call to mkisofs to make ISO (ISO #1) …OK
Done.
Done.
Backup and/or verify ran to completion. Everything appears to be fine.
/var/cache/mindi/mondorescue.iso, a boot/utility CD, is available if you want it
Data archived OK.
Mondoarchive ran OK.
See /var/log/mondoarchive.log for details of backup run.
Execution run ended; result=0
Type ‘less /var/log/mondoarchive.log’ to see the output log
[/shell]

少し待つとISOファイルが指定したパスに作成されます。

ちなみにbzip2とlzoの処理結果の比較ですが、

時間は、約4分の1に短縮されました。しかしファイルサイズは、1.5倍ほどおおきくなりました。
lzoでも4.7GBに収まるなら断然lzoを選択した方が良いです。

レストアについては次回にします。

5.参考site

公式サイト
Mondo Rescue の使いかた
Mondo Rescueでお手軽バックアップ
Mondo Rescueを使ってシステムイメージを作成する

おすすめ記事