- 2008年2 月14日(木)
- オープンソース
こんにちは。
最後の九州男児の血を受け継いだマメ太です。
今回、とある案件にてサーバーのバックアップとリカバリを検討する機会がありました。
その際に見つけた「MondoRescue」というツールについての内容を備忘録がてら残しておきます。
前提条件・要望
- バックアップ対象のサーバーはCentOS 5.1
- バックアップする領域を個別に検討したりバックアップしたりするのではなく、システム全体を一気にバックアップしたい!
- バックアップ用の記憶媒体としてCD-RW、DVD-RWなどの光学ドライブが利用可能。
というよりは、CD(or DVD)を利用してシステムのリカバリを行いたいので光学メディアにバックアップしたい! - ディスク領域のフォーマットとしてLVMも利用する。
MondoRescueについて
MondoRescue(以下、mondo)とはLinuxなどのシステムのバックアップ&リストア作業を効率的にサポートしてくれる優れものツールです。
似たようなツールとしては「Norton Gohst」「Acronis TrueImage」「PartitionImage」などがあります。
大まかに言うとmondoには
- オープンソース(GPLライセンス)である。
- バックアップ先としてCD、DVD、テープ、HDD、NFSサーバー、USBなどが選択可能。
- isoイメージのみの生成も可能。
- 生成したCD・DVDはブータブルなリカバリ用メディアとして生成。
- システム全体の復旧のみならず、リカバリ時にパーティションの切り直しやフォーマットが行え個別なリストアが可能であるため、部分的な復旧も可能。
などの特徴があります。
今回はなぜmondoを選んだか?
無償のツールを検討していたのでNorton GhostやAcronis TrueImageはまず除外しました。
また、無償であるPartitionImageには「LVMには非対応」という制限があるので却下しました。
参考情報:
TrueImageも検討した事があったのですが、ファイルフォーマットとしてLVMを利用した場合「使用されている・されていないにかかわらずセクター単位でのバックアップになる」という制限があったので却下しました。
http://www.proton.co.jp/products/trueimage91server-linux/faq.html
mondoの準備
- CentOSは準備済みであるものとします。
- CentOS標準のパッケージ管理ツールである「yum」を利用して下記のパッケージをインストールする。
#yum install -y mkisofs
#yum install -y cdrecord
#yum install -y dvd+rw-tools - mondo関連のRPMパッケージをインストールする。
#rpm -Uvh http://mondorescue.linjection.org/ftp/rhel/5/afio-2.4.7-1.i386.rpm
#rpm -Uvh http://mondorescue.linjection.org/ftp/rhel/5/buffer-1.19-1.i386.rpm
#rpm -Uvh http://mondorescue.linjection.org/ftp/rhel/5/mondo-2.2.5-1.rhel5.i386.rpm
#rpm -Uvh http://mondorescue.linjection.org/ftp/rhel/5/mindi-2.0.0-1.rhel5.i386.rpm
#rpm -Uvh http://mondorescue.linjection.org/ftp/rhel/5/mindi-busybox-1.7.3-1.rhel5.i386.rpm
依存関係があるので「mindi-busybox」「mindi」「mondo」の順にインストールして下さい。
「afio」と「buffer」には特に順番は関係ありません。なお、CentOSのインストール構成によっては他のパッケージもインストールする必要があります。
それらはRPMインストール時に警告されます。
例)CentOSを最小構成でインストールした直後であればsyslinuxなども必要 - (必要であれば)高速アーカイバであるlzo関連のRPMパッケージをインストールする
#rpm -Uvh http://dag.wieers.com/rpm/packages/lzo/lzo-1.08-4.2.el5.rf.i386.rpm
#rpm -Uvh http://dag.wieers.com/rpm/packages/lzop/lzop-1.01-2.el5.rf.i386.rpm
事前調査
バックアップに使用する光学ドライブのSCSIアドレスを調べておきます。
#cdrecord -scanbus
#dvdrecord -scanbus
上記コマンドにより、利用する光学ドライブの「1,0,0」などのSCSIアドレスが判明します。
バックアップ
今回はCD・DVDへバックアップを行う事とします。
下記コマンドの引数の詳細についてはhttp://www.mondorescue.org/docs/mondoarchive.8.html(英文)を参照して下さい。
多少古い情報になりますが、和訳されたマニュアルが「Mondo Rescue と Mindi Linux の紹介」にあります。
- 簡単なDVDへのバックアップコマンド例
#mondoarchive -Ogr -d 1,0,0 -s 4700m -F - 簡単なCDへのバックアップコマンド例
#mondoarchive -Og -F -d /dev/hdc -c 4 -s 640m
上記コマンドを打てば、光学メディアへの書き込みまで含めてシステム全体のバックアップが行えます!
また、コマンドを打つのが面倒な方は
#mondoarchive
とだけ打てば、グラフィカル?な画面でバックアップ指示が行えます。
補足)
今回、mondoでのバックアップを行うにあたっては何度も失敗しました。
情報が少ない中でいくつか重要な内容があったので記載しておきます
- SELinuxが有効だとリストアに失敗する。
バックアップは正常に終了しますが、リストア時にLVM領域の設定時にエラーが発生します。
イロイロ考えた結果、SELinuxを「無効(disabled)」「警告(permissive)」にすれば正常にリストアできました。 - -f、-lオプションをつけた方がいい場合もある。
今回の環境では必要ありませんでしたが -f、-l オプションを付加したほうがいい環境もあるようです。
-fはマスターブートレコード(MBRが)インストールされているデバイスの指定。
-lはブートローダーの種類(GRUB、LILOなど)を指定します。 - -dオプションについて
メディアへの書き込みドライブを指定する-dオプションに関しては「1,0,0」などのSCSIアドレスでは書き込みに失敗する環境もあるようです。
その場合は「/dev/hdc」など、ドライブのデバイス名にて指定するといいようです。
リストア
今回はCD(or DVD)でのバックアップを行ったので非常に簡単です。
1.CD(or DVD)をマシンに挿入した状態でサーバーを起動する。
2.光学ドライブ+メモリだけで起動する「mindi」というディストリビューションが起動します。
起動メニューに「boot:」が表示されたら下記のコマンドを入力してEnterキーを押します。
- システム全体の復旧を簡単に行いたい場合
nuke ramdisk_blocksize=1024 - パーティションの再設定やフォーマット、リカバリ方法を指定したい場合
interactive ramdisk_blocksize=1024
最後に
なかなか情報が少ないMondoRescueなのですが、オープンソースで利用できるバックアップツールなのでとても重宝すると思います。
皆さんも活用してみてはいかがでしょうか?
- Newer: PHPで何週目かを取得するコード
- Older: PHPでバッチ処理を書いてみる
この記事へのコメント: 2件
- test 2008年6 月9日(月) 13:29
-
はじめまして
私は普段は「True Image」を使っているのですが、使いやすさという点ではどちらが使いやすいですか?
「True Image」は安いですが有償ではありますが。 - mameta 2008年6 月9日(月) 13:48
-
こんにちは。
マメ太です。
私も個人PCのバックアップでTrueImageを利用させてもらってます。
Windows、個人PC環境のバックアップという観点だと、比べようも無いくらいTrueImageが使いやすいですね。
やはりWindowsユーザーが使い慣れたGUIでバックアップ作業が簡単にできるというのはいろんな意味でメリットがあると思います。語弊があるかもしれませんが、MondoRescueは
・Linuxコマンドでの操作ができる。
(いわゆるGUI画面は存在しません)
・インストール、設定に関しては多少の知識が必要。
というのが現状なので、場合によっては導入の敷居は高くなってしまいます。ただ、今回のようにLinux系統のバックアップという観点で言うと選択肢が少なく、私が関わった今回の事例では紹介させてもらったMondoRescueが総合的にマッチしていたというのが結論です。
もし、バックアップすべきサーバー上でLVMを利用していなければ真っ先にTrueImageを検討・テストしていたと思います

