OSSを活用したLinuxのデータ・バックアップ

2010年12月22日(水)
古賀 政純

オープンソースのバックアップ・ソフト「Mondo Rescue」

バックアップ・ソフトには、個人向けや企業向けを含め、さまざまな種類のものが存在します。オープンソースのバックアップ・ソフトも、非常に多種多様です。

今回は、OSのリカバリDVDを作成できる「Mondo Rescue」と「mkcdrec」、さらに、NFSサーバー経由のリカバリCDを簡単に作成できる「ReaR」を紹介します。

Mondo Rescueは、OSをインストールした内蔵ディスクのリカバリDVDを作成するバックアップ・ソフトです。OSを起動させた状態でディスク全体のイメージ・ファイルをiso形式で作成します。イメージ作成時には、除外したいディレクトリなどを指定することも可能です。

オープンソースとして提供されており、開発にはフランスのHewlett-Packardのエンジニアが関わっています。ただし、ベンダーの保守サポートはないので、何か不具合があってもベンダーへの問い合わせはできません。利用者の自己責任で取り扱う必要があります。

Mondo Rescueは、OSが稼働した状態でイメージを取得するので、オープンしているファイルが存在しないことが前提となります。オープンしているデータベースや編集中のファイルが存在した状態でバックアップした場合、リストア時にそれらのデータの中身が正常に戻る保証はありません。

リカバリ用のメディア(媒体)として、DVDのほかに、USBメモリーを利用することも可能です。リカバリDVD同様、リカバリUSBメモリーを作成できます。

図5: Mondo Rescueによるバックアップ・システム構成例。Mondo Rescueはコマンド・ラインから操作を行い、リカバリDVDの生成が可能である。無償提供のオープンソース・ソフトであるので、ベンダーの保守サポートはない

図5: Mondo Rescueによるバックアップ・システム構成例。Mondo Rescueはコマンド・ラインから操作を行い、リカバリDVDの生成が可能である。無償提供のオープンソース・ソフトであるので、ベンダーの保守サポートはない

Mondo RescueによるリカバリーDVDの作成

Mondo Rescueは、通常のtar形式に加えて、RPMパッケージが提供されています。

以下では、Red Hat Enterprise Linux 5用に公開されているMondo Rescueを導入・設定します。導入方法とリカバリDVDの作成、リストア方法について紹介します。Mondo Rescueは、以下のURL(公開FTPサイト)から入手できます。

Mondo Rescueの導入には、afio、buffer、mindi-busybox、mindi、mondoのRPMパッケージが必要です。以下は、2010年12月時点での最新版ですが、さらに新しいバージョンがリリースされているかもしれないので、上記のFTPサイトをチェックしてください。

Red Hat Enterprise Linux 5.xの場合

afio RPMパッケージ
ftp://ftp.mondorescue.org/rhel/5/afio-2.4.7-1.x86_64.rpm
buffer RPMパッケージ
ftp://ftp.mondorescue.org/rhel/5/buffer-1.19-1.x86_64.rpm
mindi-busybox RPMパッケージ
ftp://ftp.mondorescue.org/rhel/5/mindi-busybox-1.7.3-1.rhel5.x86_64.rpm
mindi RPMパッケージ
ftp://ftp.mondorescue.org/rhel/5/mindi-2.0.7.5-1.rhel5.x86_64.rpm
mondo RPMパッケージ
ftp://ftp.mondorescue.org/rhel/5/mondo-2.2.9.4-1.rhel5.x86_64.rpm

上記URLから入手したRPMパッケージを、バックアップ対象サーバーのRed Hat Enterprise Linux 5にインストールします。

# rpm -vhi afio-2.4.7-1.x86_64.rpm
# rpm -vhi buffer-1.19-1. x86_64.rpm
# rpm -vhi mindi-busybox-1.7.3-1.rhel5.x86_64.rpm
# rpm -vhi mindi-2.0.7.5-1.rhel5.x86_64.rpm
# rpm -vhi mondo-2.2.9.4-1.rhel5.x86_64.rpm

これで、Mondo Rescueが利用できるようになりました。バックアップの実行は、mondoarchiveコマンドで行います。以下の例は、DVD isoイメージを/data配下に作成する例です。

# mondoarchive -O -i -g -0 -s 4g -p dl380g7-mr229 -l GRUB -d /data -E /data

上記のmondoarchiveコマンドに渡すオプションの意味は、以下の通りです。

オプション意味
-O(英大文字のオー)イメージ作成に必須
-iISOイメージの作成
-gGUIを表示
-0(ゼロ)無圧縮にする場合
-s1つのDVD isoイメージのファイルサイズ(4gは4GBの意味)
-p生成するDVD isoイメージのファイル名のprefix
-l(英小文字のエル)リカバリ時にマスター・ブート・レコードのインストールを行う
-dバックアップisoイメージの保管先
-Eバックアップ対象から除外したいディレクトリを指定
複数ある場合は、” ”で囲む

上記コマンド実行例では、4GBずつのisoイメージdl380g7-mr229-x.isoという名前でリカバリーDVDイメージが生成されます。生成されたDVDイメージはDVD-Rに焼き付けます。

/data/dl380g7-mr229-1.iso
/data/dl380g7-mr229-2.iso
/data/dl380g7-mr229-3.iso

図6: Mondo Rescueでのバックアップの様子。バックアップ時間はディスクの容量によって大きく左右されるので事前のテストが必要である

図6: Mondo Rescueでのバックアップの様子。バックアップが終了すると、終了した旨のメッセージが表示されるので、Enterキーを押す

図6: Mondo Rescueでのバックアップの様子。バックアップ時間はディスクの容量によって大きく左右されるので事前のテストが必要である(左)。バックアップが終了すると、終了した旨のメッセージが表示されるので、Enterキーを押す(右)(クリックで拡大)

Linuxサーバーの場合、Red Hat Enterprise Linux 5.xに標準で搭載されているgrowisofsコマンドを使えば、簡単にDVD-Rメディアへの書き込みが可能です。最近のx86サーバーにはDVD-RWドライブが搭載されている(容易に搭載できる)ので、内蔵DVD-RWドライブでDVD-Rメディアを作成することが可能です。

まず、DVD-RWドライブのデバイス名を確認します。ProLiant G7サーバーでは、主に/dev/dvdへのリンク先が/dev/hdaになります。サーバーの種類によっては、/dev/hdaではない場合もあります。/dev/dvdへのシンボリック・リンクを確認するとともに、dmesgコマンドを使ってデバイス名を確認してください。

# ls -l /dev/dvd
lrwxrwxrwx 1 root root 3 10月  1 19:30 /dev/dvd -> hda

# dmesg |grep DVD
hda: TEAC DV-W28ECWS, ATAPI CD/DVD-ROM drive
hda: ATAPI 24X DVD-ROM DVD-R CD-R/RW drive, 2000kB Cache, DMA

DVD-RWドライブにDVD-Rメディアをセットしたら、growisofsコマンドを使ってisoイメージをDVD-Rメディアに書き込みます。growisofsコマンドでは、-Zオプションを使ってDVD-RWドライブのデバイス名を指定し、ファイル名を「=」でつなぎます。下記のように実行すると、DVD-Rメディアへの書き込みが始まります。

# growisofs -Z /dev/dvd=/data/dl380g7-mr229-1.iso

Mondo Rescueで作成したリカバリDVD-Rからのリストア

作成したリカバリDVDを使って、リストアのテストを行いましょう。

リストアのテストを行うには、まず内蔵ディスクを新しいものに取り換え、内蔵のRAIDコントローラで論理ボリュームを作成しておきます。

RAIDコントローラによる論理ボリュームの作成が終わったら、作成したリカバリDVDをDVDドライブに装着して、サーバーをDVDブートします。

DVDブート後、画面には、Mondo Rescueのリストア画面が表示されます。bootプロンプトが現れるので、以下のように入力します。

boot: nuke noresize interactive

dontejectを付加することにより、リカバリ後にDVDドライブをイジェクトさせないことも可能です。

boot: nuke donteject interactive 

図7: Mondo Rescueで作成したリカバリDVDによるブートの様子。bootプロンプトにコマンドを与えることでMondo Rescueのリカバリの挙動を変更することができる

図7: Mondo Rescueで作成したリカバリDVDによるブートの様子。bootプロンプトにコマンドを与えることでMondo Rescueのリカバリの挙動を変更することができる

リカバリDVDのブート後、リカバリDVDのリストア画面が表示され、ディスクのパーティショニングとデータのリストアが行われます。

図8: Mondo Rescueで作成したリカバリDVDによるリカバリの様子。RAIDコントローラー配下の論理ボリューム/dev/hdaにパーティショニングを行っていることが分かる

図8: Mondo Rescueで作成したリカバリDVDによるリカバリの様子。RAIDコントローラー配下の論理ボリューム/dev/hdaにパーティショニングを行っていることが分かる

リストアが終了したら、サーバーを再起動させます。正常にブートし、データが復旧されていることを確認してください。

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています