第 5 章 バックアップ/リストア
5.5 ディザスタリカバリーのための手段
ディザスタリカバリーとは、サーバーのハードウェア障害などにより、OSやミドルウェアの再インストールを余儀な くされる障害から、再インストールすることなく、バックアップ時の状態まで復旧することです。
5.5.1 バックアップ
今回の例では、dump/restoreを使用した方法を説明しますが、afioやtarなど他のバックアップツールでも同 様のバックアップ/リカバリーが可能です。
ファイルシステム構成は手動で作成する必要がありますので、/etc/fstabおよびfdisk -lコマンドの出力 を別サーバーへバックアップするかプリントアウトしておきます。
OSを含めた全てのファイル、ディレクトリをバックアップするため、シングルユーザーモードで起動します。シング ルユーザーモードで起動する方法については、1.1システムの起動を参照してください。
今回の例では以下のようなファイルシステム構成を想定しています。
/dev/sda3 / ext3
/dev/sda2 swap
/dev/sda1 /boot ext3
まず、/(ルート)ファイルシステムにマウントされている、/bootからバックアップを取得します。
今回の例では1本のテープに全てのファイルシステムをバックアップします。
テープメディアをテープドライブに挿入し、次のコマンドを実行して巻き戻します。
# /bin/mt -f /dev/nst0 rewind
dumpコマンドで/bootのバックアップを取得します。
# /sbin/dump -0uf /dev/nst0 /boot
5.5 ディザスタリカバリーのための手段 mtコマンドでテープのヘッド、ファイル位置を確認し記録します。この例ではFile numberが[3]まで利用されま した。
# /bin/mt -f /dev/nst0 status SCSI 2 tape drive:
File number=3, block number=0, partition=0.
省略
引き続き同じテープの続きに/(ルート)のバックアップを取得します。
# /sbin/dump -0uf /dev/nst0 /
/bootと同じようにmtコマンドにてテープのヘッド、ファイル位置を確認し記録します。
# /bin/mt -f /dev/nst0 status SCSI 2 tape drive:
File number=21, block number=0, partition=0.
省略
この例ではFile numberが[21]まで利用されました。
以上でバックアップは終了です。mtコマンドでテープを巻き戻して保管します。
# /bin/mt -f /dev/nst0 rewind
5.5.2 リストア
restoreツールではext3でフォーマットされたパーティションにファイルをリストアするため、事前にバックアッ プ前の容量かそれ以上のパーティションを作成し、ext3でフォーマットしておく必要があります。
ハードウェアの交換が終了した時点で、Asianux Server 3 インストールCDからレスキューモードで起動します。
レスキューモードで起動する場合はインストールCDで起動直後に以下のように入力します。
boot: linux rescue
※このときインストール時にドライバディスクを利用していた場合は、[dd]を追加して以下のように実行します。
boot: linux dd rescue
言語選択、キーボード選択、ネットワーク設定の後、パーティションを/mnt/sysimageにマウントするか確認さ れるので、[Skip]を選択します。
今回の例では以下のようなファイルシステム構成を想定しています。
/dev/sda3 / ext3
/dev/sda2 swap
/dev/sda1 /boot ext3
fdiskを利用して保存してあったfstabの通りパーティションを作成します。
# fdisk /dev/sda
パーティション作成が終了したら、extでフォーマットします。
# mkfs.ext3 /dev/sda1
# mkfs.ext3 /dev/sda3
/(ルート)からリストアするため、/mnt/sysimage以下に/(ルート)をマウントします。
# mkdir /mnt/sysimage
# mount /dev/sda3 /mnt/sysimage
ここからテープからのリストア作業に入ります。
まず、テープのヘッド位置を/(ルート)のバックアップ開始位置に移動します。
fsfの後の数字はバックアップ時のメモを参考に/bootのバックアップ終了時(/のバックアップ開始時)とし、今回 は[3]です。
# mt -f /dev/nst0 fsf 3
バックアップ開始位置に移動したら、リカバリ先のディレクトリに移動し、restoreコマンドを実行します。
5.5 ディザスタリカバリーのための手段 /(ルート)のリストアが終了した時点で/mnt/sysimage以下に/bootが作成されていますので、/bootをリス トアするパーティションをマウントします。
# mount /dev/sda1 /mnt/sysimage/boot
mtにてヘッド位置を/bootのバックアップ開始位置(先頭)にします。
# mt -f /dev/nst0 rewind
bootディレクトリに移動し、restoreでデータをリストアします。
# cd /mnt/sysimage/boot
# restore -rf /dev/nst0
この時点で、必要なデーターは全てテープからディスクへ書き出されました。
(1)リストア後のファイルシステムラベル付与(ラベルを利用していな場合は不要です。)
通常のインストールでは/etc/fstab内のデバイス名はLABELを利用しているため、新規に作成したパーティ ションでは、起動時にfstab内のLABELが利用できないためにマウントエラーが発生し、起動しません。
ラベルを設定するにはe2labelというext3パーティションにLABELを付与するためのツールを使用します。
保存してあるfstabを参考に、次のようにラベルをつけます。
# /usr/sbin/e2label /dev/sda1 /boot
(2)リストア後のGRUBのインストール
GRUBブートローダーのデータはディスクの物理位置に依存しているため、リストアしただけでは起動できない 可能性があります。
この問題に対処するため、いったん再起動し再度レスキューモードで起動します。
この際は書き込みが必要なため、レスキュー画面の確認では「続行」を選択します。
マウントされたリストア済みのパーティションにchrootします。
# /usr/sbin/chroot /mnt/sysimage
grubコマンドを利用し、MBRにデータを書き込みます。
※デバイス名などは例なので環境に合わせてください。
# /sbin/grub
grub> device (hd0) /dev/sda grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf grub> quit
exitを2回実行し、chrootとレスキューモードを抜けます。
この時点でサーバーは再起動されますので、インストールCD-ROMを抜いてサーバーが正常に起動することを 確認してください。
正常に起動され、利用できることが確認できましたらリカバリ完了となります。