Linuxをシステムバックアップ

いろいろな方法

バックアップの方法は、バックアップ先の媒体、バックアップ用ツールなどの選択から始まります。

媒体

媒体には、下記のものがあります。

テープはバックアップ媒体の定番ですが、容量に対してデバイスの価格が高すぎます。10GB程度で100,000円強(DDS-3)です。さらに別の規格のデバイスならば、100GB超を保存できますが、数百万円のコストがかかり、個人でどうにかなるレベルではありません。

光メディアは容量てきに心許ないです。そこで、ハードディスクとしました。可搬性が低いと言われますが、いざとなればポータブルハードディスクを使えばよいでしょう。昨今では100GB近いものも出ています。

ツール

バックアップツールには、下記のものがあります。

tarはファイルシステム上で、アーカイブを作成します。なので、ファイル単位で個別のバックアップを行ないたい場合に使います。

ddは、ファイルシステムを介さずに、直接デバイス上のデータを、ブロックサイズでコピーおよび変換するツールです。HDDやCD-ROMの内容をまるごとイメージ化する場合や、MBRの内容をFDにコピーする場合に、便利です。ファイルシステムを介さないため、あらゆるファイルシステムのデータを扱えます。

dd if=[入力元] of=[出力先] bs=[ブロックサイズ] count=[ブロック数]

dumpは、ファイルシステムごと、バックアップを作成します。もともとバックアップ用のツールであり、増分バックアップや差分バックアップを行なえます。ただし、ファイルシステムベースのため、dump自体が対応しているext2,ext3しか扱えません。

今回は、媒体にハードディスクを、ツールにdumpを利用します。

dumpコマンドの利用

まず、バックアップデータを置く場所を用意します。今回は、予備用のディスクを"/mnt/hdc/"にマウントしています。そのなかに、dump_backupというディレクトリを作成しました。

# cd /mnt/hdc/
# mkdir dump_backup

さっそくdumpを実行します。最初に行なうのは、フルバックアップです。バックアップ中のデータに対するアクセスを排他するため、シングルユーザーモードで行なったほうが良いです。再起動して、下記のように、起動パラメータを入力してください。

boot:linux single

あとは、dumpコマンドを発行するだけです。

# cd /mnt/hdc/dump_backup
# dump -0uf /mnt/hdc/dump_backup/backup_usr /dev/hda5

上記では、出力先に、"/mnt/hdc/dump_backup/backup_usr"というファイルを指定しています。fオプションの後ろに書きます。fオプションを指定しないと、テープデバイスがデフォルトとなります。入力元には、デバイスを指定します。上記の例では、"/usr"がマウントされている"/dev/hda5"(※うちの環境の場合)を指定します。同様に、他の必要なパーティションに対しても、dumpします。

dumpコマンドについて、説明します。

dump -nuf [出力先] [入力元]

フルバックアップ以降の差分を取りたい場合は、下記のようにします。

dump -1uf /mnt/hdc/dump_backup/backup_usr /dev/hda5

差分バックアップと増分バックアップ

いくつかのサイトを回ると、差分バックアップと増分バックアップを明確に分けず、増分バックアップで一括りにしているところがあり、混乱しました^-^;。

差分バックアップ前回のフルバックアップからの差分
増分バックアップ前回のバックアップからの増分

差分バックアップの例です。

日曜フルバックアップA
月曜差分バックアップB
火曜差分バックアップC
水曜差分バックアップD

Bは、月曜のデータとAとの変化分です。Cは、火曜のデータとAとの変化分です。Dは、水曜のデータとAとの変化分です。復旧の場合は、フルバックアップと1つの差分バックアップがあればOKです。

増分バックアップの例です。

日曜フルバックアップA
月曜増分バックアップB
火曜増分バックアップC
水曜増分バックアップD

Bは、月曜のデータとAとの変化分です。Cは、火曜のデータとBとの変化分です。Dは、水曜のデータとCとの変化分です。復旧の場合は、フルバックアップとそれまでの全ての増分バックアップが必要です。ただし、増分バックアップのサイズは、基本的に差分バックアップよりも小さくなります。

見てのとおり、月曜の時点では、差分も増分も変わりないのです。

dumpコマンドで差分バックアップを行なうためには、dumpレベル0でバックアップを行なったあと、dumpレベル1でバックアップを行なえばOKです。

dumpコマンドで増分バックアップを行なうためには、dumpレベルを前の日に対して1つずつ上げていく必要があります。dumpレベルは10個しかないので、それ以上はできません。差分バックアップと適宜組み合わせてください。

組合せ例(1)

月初0フルバックアップ
日曜1差分バックアップ
月曜2増分バックアップ
火曜3増分バックアップ
水曜4増分バックアップ
木曜5増分バックアップ
金曜6増分バックアップ
土曜7増分バックアップ

組合せ例(2)

月初0フルバックアップ
日曜3差分バックアップ
月曜4増分バックアップ
火曜5増分バックアップ
水曜3差分バックアップ
木曜4増分バックアップ
金曜5増分バックアップ
土曜6増分バックアップ

復旧のための準備

起動用のFDを作成して、必要なコマンドなどを入れておきます。

リストアします。展開先はカレントディレクトリになるので、復旧先へ移動しましょう(復旧先のパーティションやマウントは、あらかじめ行なってください)。

# cd /usr
# restore -rf /mnt/hdc/dump_backup/backup_usr

※このあたりは、まだ実践していないため、無保証不正確です。

一部データを取り出したい場合

システム全体の復旧ではなく、特定のファイルのみを取り出したい場合、restore コマンドの対話型インターフェイスを使うと、便利です。

# restore -if /backup/dumpdata
restore > ls
.... [ファイル一覧] ....
restore > add ftp  ←取り出したいファイル/ディレクトリ名
restore > extract
.....
Specify next volume # (none if no more volumes): 1 ←とりあえず 1 を入れておく
.....
restore > quit

参考ページ

参考ページ


履歴


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-02-19 (木) 10:34:02