<ディスクtoディスクでバックアップを取ろう!>

 みなさんLinuxサーバーのバックアップはどの様に行なっているのでしょう? Linuxサーバーのハードディスクが壊れた時は復旧にどの位時間を要するか考えたことはありますでしょうか? ディスクが壊れた時、誤ってファイルを消した時、バックアップを取らなかったために後悔しても遅いですよ! 形あるものはいつか必ず壊れますし、オペミスで大事なデータを消す可能性はゼロではありません。 保険と考え、バックアップは必ず取ることをお薦め致します。

1.はじめに

1.1 バックアップメディアについて

 バックアップ媒体といえば一昔前はDATやDLT等のテープメディアでした。自宅でLinuxサーバーを立てている方でテープでバックアップを取られている方もいるかと思いますが、現在、DDS3のDAT装置は約10万円前後と高価です。私見としてハードディスクにバックアップすることをお薦めします。理由は、非常に価格が安く入手できる。あと、マスターディスクのコピーとすることで、マスターが壊れた時に入れ替えるだけで復旧することが出来ます。
 尚、最近流行りのIDEのRAIDカードによるミラーリングについて、どちらかのディスクが壊れた時は有効ですが、RAIDカードが壊れた際に2本ともお亡くなりなる可能性があり、誤ってファイルを削除した時はミラーリングされた2台のディスクから内容が消えバックアップの意味合いは無いので、あまりお薦め出来ません。また、RAIDのミラーリングやRAID3,RAID5では全く同一のディスクを用意する必要があるので、もし型遅れで入手し辛くなった時は困ってしまいます。

1.2 IDEデバイスとLinuxのデバイス名の関係について

 IDEはプライマリにマスター/スレーブ、セカンダリにマスター/スレーブの最大4台のハードディスクやCD-ROM等のデバイスが接続可能です。通常はプライマリ/マスターに起動用ハードディスク、プライマリ/スレーブかセカンダリ/マスターにCD-ROM等が接続されていると思います。Linuxからこれらのデバイスは、順番に/devディレクトリ下のhda,hdb,hdc,hddという名前で認識されます。ちなみに、SCSIデバイスはsda,sdb,sdc,sdd...となります。
 まず、LinuxからIDEでどのデバイスが接続されているかを調べてみましょう。方法は/proc/ideディレクトリ下のファイルを参照します。(ここでは/procディレクトリ下のファイルやディレクトリを参照しますが、このファイルシステムはディスクではなく、メモリの内容を参照しています。これについては、またいつの機会かに説明するかも知れません。)
 【IDEデバイス環境をチェックしよう!】

2.バックアップ環境構築

 最初にバックアップメディアについて触れましたが、ここではIDEハードディスクを利用したバックアップ、復旧方法について説明します。 新たに用意するハードディスクは、既存のディスク容量と同等以上のものを用意しましょう。尚、IDEケーブルに接続する時は、マスター/スレーブのジャンパーを必ず確認してから増設しましょう!
 通常、プライマリ/マスターに既存ハードディスクが接続されていますので、ここでは、プライマリ/スレーブにバックアップディスクを増設することを前提に説明します。

2.1 新規ハードディスクの追加

 増設するディスクのジャンパーがスレーブになっていることを確認し、ハードディスクを接続します。
 もし、電源容量が100W前後でプライマリ/セカンダリに1台づつしかディスクやCD-ROMを接続できない環境では、一旦、CD-ROMを取り外し、そこにバックアップ用ディスクを接続します。この場合のディスクのジャンパーはマスターでもスレーブでも構いません。

2.2 BIOSでの確認

 PCの電源を入れBIOS画面を表示させ、接続したハードディスクが認識できているかを確認します。大容量ディスクを増設した際、古いPCではBIOS画面での認識が8.4GBになる可能性がありますが無視して結構です。認識できていればLinuxを立ち上げます。

2.3 Linuxでの確認

 Linux側で認識できているか以下の方法で確認してみましょう!
 【増設後の環境をチェックしよう!】

2.4 ファイルシステムの作成

 ファイルシステムの作成で欠かせないのが、ディスクのパーティション設定です。LinuxではDOSライクなfdiskがありますが、cfdiskが使い勝手が良いのでお薦めです。ここでは、cfdiskを利用する方法が記述されていますので、cfdiskを利用した事がない方は、是非、【cfdiskの操作説明】を事前にご覧下さい。

 2.4.1 【本番稼動用ディスクのパーティションの確認】

 2.4.2 【バックアップ用ディスクのパーティションの検討】

 2.4.3 【バックアップ用ディスクのパーティション設定】 ← 画像データが多いのでチョット重いです。。。

 2.4.4 【ファイルシステムの作成】

3.バックアップ処理

 3.1 【バックアップ用ファイルシステムのマウント】

 3.2 【ファイルシステムのバックアップ】

4.バックアップ用ディスクからの起動

 バックアップディスクでの立上げを行ないますが、肝心な事を忘れています。それは、バックアップディスクのMBR(Master Boot Recorder)へのLILOの書き込みです。バックアップディスクへのLILOの書き込みは以下の手順で行ないます。

 4.1 Linux起動フロッピーディスクの作成
  Linuxをシャットダウンする前にLinux起動フロッピーディスクを以下の手順で作成します。
  ・新規フロッピーディスクをフロッピードライブへ作成
  ・以下の様にデフォルトブートのLinuxのバージョンを指定してmkbootdiskを起動します。
   GTR# mkbootdisk 2.2.17-0vl10
   Linuxのバージョンについては、/boot/vmlinuz-のサフィックス名や/lib/modules下のディレクトリ名で確認します。

 4.2 システム停止
  フロッピーディスクは挿入したままシステムを停止後、電源を切ります。
  GTR# halt -p

 4.3 バックアップディスクをプライマリ・マスターに接続
  プライマリ・マスターに接続された本番稼動用ディスクの電源IDEケーブルを抜き、バックアップディスクのジャンパー設定をマスターに設定します。
  この時はPC本体の電源を抜いていた方がより安全です。

 4.4 フロッピーによる起動
  ・フロッピーを挿入したまま電源を投入します。
   余談ですが、Aptiva J33やT71の機種ではハードウェア構成が変わるとBIOS時のチェックに3分程度要し、最初は壊れたかと勘違いしていました。
   これで本番稼動用ディスクと同じように立ち上がれば一安心です。

 4.5 ディスクからの起動
  ・フロッピーからの立ち上がり後、liloを起動します。
   GTR# lilo
   Added new
   Added linux *
  ・フロッピーディスクを抜いて、ハードディスクから再起動します。
   GTR# reboot

5.バックアップディスク運用の考察

 バックアップディスクでシステムが立ち上がればもう恐いものなしですね。このまま本番稼動用ディスクをバックアップ用とし、バックアップディスクのまま運用することも可能ですし、2台常時稼動させ、cronにバックアップスクリプトを仕掛けて定期的にバックアップすることも可能です。当方の運用形態としては、バックアップディスクはオフラインで保管しています。理由はオンラインで接続している場合、最悪、両方のハードディスクに保存されたデータを消去する可能性があるし、電気代による運用コストが掛かる(せこい?)ためです。