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

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

リカバリDVDを作成できる「mkcdrec」

Mondo Rescue以外にも、リカバリDVDを作成するオープンソースとして、mkcdrecやRelax and Recover(通称ReaR)などがあります。

Mondo Rescueの場合は、mondoarchiveコマンドのオプションによって、その挙動を変えることができました。一方、mkcdrecの場合は、設定ファイルのパラメータを適切に設定することによって、リカバリDVDの作成や出力先ディレクトリの指定ができます。

mkcdrecは、以下のURLから入手可能です。mkcdrecを稼働させるためには、ash RPMパッケージも必要です。

mkcdrecのtarball入手先
http://sourceforge.jp/projects/sfnet_mkcdrec/downloads/mkcdrec/v0.9.9/mkCDrec_v0.9.9.tar.gz/
ash RPMパッケージ
ftp://fr2.rpmfind.net/linux/sourceforge/m/project/mk/mkcdrec/mkcdrec/v1.0/ash-0.3.8-20.el5.rf.x86_64.rpm

上記のash RPMパッケージを、rpmコマンドを使ってインストールします。今回は、mkcdrecをtarコマンドにより/root/に展開します。

# rpm -vhi ash-0.3.8-20.el5.rf.x86_64.rpm
# tar xzvf mkcdrec_v0.9.9.tar.gz -C /root/

以下では、Red Hat Enterprise Linux 5.x環境における、mkcdrecの構築・操作手法を説明します。まず、mkcdrecのtarballを展開した/root/mkcdrec/配下にある設定ファイルConfig.shを開きます。

# cd /root/mkcdrec
# cp Config.sh Config.sh.org
# vi Config.sh

このファイルに定義されている変数のいくつかを、適切に設定する必要があります。以下では、管理者が知っておくべき最低限のパラメータの設定例を挙げます。

まずは、バックアップ対象サーバーの、OSのアーキテクチャを指定します。

BOOTARCH=x86_64

リカバリDVDのisoイメージの元となる、バックアップ・データのtar.gzファイルの出力先を指定します。

ISOFS_DIR=/var/tmp/backup

リカバリDVDのisoイメージを出力するディレクトリを指定します。

CDREC_ISO_DIR=/var/tmp/isodir

リカバリDVDに含めないディレクトリやファイルを指定します。NFSマウント先やDVD-ROMメディアなどがマウントされていないかどうかを事前に確認してから設定を行うのがよいでしょう。

EXCLUDE_LIST="/tmp/*
/var/tmp/*
/mnt/*
/proc/*
/home/*
/media/*
/work/*
"

/home以下には、一般ユーザーのディレクトリがあります。/homeのサイズは非常に大きくなるため、リカバリDVDには含めず、別途テープによるバックアップ運用を行うこともあります。/homeや/workなどの巨大なユーザー・データをEXCLUDE_LISTに含め、別途用意した外部ストレージなどにD2Dでバックアップを行う、といった方法も合わせて検討してください。

次に、1つのisoイメージのファイル・サイズを指定します。デフォルトでは670000(=670Mバイト)に設定されているので、これをDVDメディアの容量に変更します。isoイメージのファイル・サイズは、MAXCDSIZEパラメータで調整します。

MAXCDSIZE=4350000

「HP OpenView Data Protector」を利用していない場合は、DP_RESTOREを”n”に設定します。

DP_RESTORE=”n”

initrd-fsのサイズとして、INITRDSIZEを指定します。mkcdrecのバックアップ対象サーバーで設定すべきサイズは、以下のコマンドで確認します。

# grep CONFIG_BLK_DEV_RAM_SIZE /boot/config-`uname -r`
CONFIG_BLK_DEV_RAM_SIZE=16384

コマンドで確認した結果が16384になっている場合は、Config.shファイルに、以下のように記述します。

INITRDSIZE=16384

Config.shファイルの編集を終えたら、mkcdrecが正常に稼働できるかどうかテストします。makeコマンドに引数testを付与して実行します。

# cd /root/mkcdrec
# make test

mkcdrecが正常に動作するためには、mkisofsがインストールされている必要があります。事前にmkisofsがインストールされているかどうかを確認してください。

# which mkisofs
/usr/bin/mkisofs

mkcdrecによるリカバリDVDの作成

いよいよ、mkcdrecを使って、リカバリDVDのisoイメージを生成します。isoイメージの生成は、makeコマンドに引数CD-ROMを付与して実行します。すると、以下のような画面になり、バックアップが行われます。

# cd /root/mkcdrec/
# make CD-ROM

図13: mkcdrecによるバックアップの様子。パーティションごとにtar.gz形式で/var/tmp/backup以下に保管される様子が分かる。最終的には、tar.gz形式のファイルは削除され、リカバリDVD用のisoイメージが生成される

図13: mkcdrecによるバックアップの様子。パーティションごとにtar.gz形式で/var/tmp/backup以下に保管される様子が分かる。最終的には、tar.gz形式のファイルは削除され、リカバリDVD用のisoイメージが生成される

Config.shファイルで指定したEXCLUDE_LIST以外のディレクトリは、すべてバックアップされます。tar.gz形式(tar格納アーカイブをgzip圧縮)になり、/var/tmp/backupの下に保存されます。すべてのファイルのアーカイブが終了すると、isoイメージが/var/tmp/isodirディレクトリの下に保存されているはずです。isoイメージが生成されると、/var/tmp/backupの下のtar.gz形式のファイルは削除されます。isoイメージは、以下のような名前で保存されます。

CDrec-12.05.2010_1
CDrec-12.05.2010_2
CDrec-12.05.2010_3

上記のように、isoイメージが複数ある場合、その枚数分のDVD-Rメディアが必要になります。ファイル名は、CDrec-の後に作成年月日が付き、アンダーバーの後に枚数のカウントが付きます。このファイルは、ファイル名の拡張子(suffix)が付加されていません。DVD-Rライティング・ソフトによっては、適切な拡張子がついていないisoイメージを扱えない場合があるため、拡張子として.isoを付加しておきます。

# mv CDrec-12.05.2010_1 CDrec-12.05.2010_1.iso
# mv CDrec-12.05.2010_2 CDrec-12.05.2010_2.iso
# mv CDrec-12.05.2010_3 CDrec-12.05.2010_3.iso

作成したisoイメージは、Mondo Rescueの場合と同様、growisofsコマンドなどを使ってDVD-Rメディアに書き込みます。

mkcdrecで作成したリカバリDVDによるリストア

mkcdrecによって作成したリカバリDVDを使い、サーバーをブートさせます。Mondo Rescueの場合と同様に、RAIDコントローラの論理ボリュームを事前に作成しておき、リカバリDVDを使ってDVDブートします。

リカバリDVDでブートすると、下図のような画面が表示されるので、キーボードから2を入力してEnterキーを押します。

図14: mkcdrecにより作成したリカバリDVDからのブートの様子。リカバリを行う場合は、2を選択する

図14: mkcdrecにより作成したリカバリDVDからのブートの様子。リカバリを行う場合は、2を選択する

しばらくするとmkcdrecのリカバリのためのシェル・プロンプトが表示されます。プロンプトが表示されたら、リカバリDVDによるリストアを行います。リカバリを行うには、mkcdrecがメモリー上に作成した/etc/recovery/start-restore.shスクリプトを実行します。

# cd /etc/restore
# ./start-restore.sh

これで、mkcdrecによるリカバリが開始されます。リカバリが終了したら、rebootコマンドによりサーバーを再起動させ、正常に内蔵ディスクからブートできるかを確認します。

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター 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メルマガ会員のサービス内容を見る

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