第34章 ReaR (Relax-and-Recover)
ソフトウェアやハードウェア障害でシステムが破損した場合、システム管理者は新たなハードウェア環境上で完全に機能する状態にシステムを復元するために以下の 3 つのタスクを実行する必要があります。
- 新規ハードウェア上でレスキューシステムを起動する
- オリジナルのストレージレイアウトを複製する
- ユーザーおよびシステムファイルの復元
ほとんどのバックアップソフトウェアは、3 番目の問題しか解決しません。最初の 2 番目の問題を解決するには、障害復旧およびシステム移行ユーティリティーである Relax-and-Recover(ReaR) を使用します。
バックアップソフトウェアはバックアップを作成します。ReaR は レスキューシステム を作成してバックアップソフトウェアを補完します。新しいハードウェアでレスキューシステムを起動すると、復元プロセスを開始する rear recover コマンドを実行できます。このプロセス中に ReaR はパーティションのレイアウトとファイルシステムを複製し、バックアップソフトウェアが作成したバックアップからのユーザーおよびシステムファイルの復元を促進し、最後にブートローダーをインストールします。デフォルトでは、ReaR が作成したレスキューシステムはストレージレイアウトとブートローダーのみを復元し、実際のユーザーおよびシステムファイルは復元しません。
本章では、ReaR の使用方法を説明します。
34.1. 基本的な ReaR の使用方法
34.1.1. ReaR のインストール
root で以下のコマンドを実行して、rear パッケージをインストールします。
~]# yum install rear
34.1.2. ReaR の設定
ReaR は
/etc/rear/local.conf
ファイルで設定します。以下の行を追加してレスキューシステムの設定を指定します。
OUTPUT=output format OUTPUT_URL=output location
output format をレスキューシステムの形式に置き換えます。たとえば、ISO ディスクイメージの場合は
ISO
、起動可能な USB であれば USB
などにします。
output location を、配置先に置き換えます。たとえば、ローカル
ファイルシステムディレクトリーの file:///mnt/rescue_system/
、SFTP ディレクトリーの場合は sftp://backup:.0.0/
などにします。
例34.1 レスキューシステムの形式および場所の設定
ReaR がレスキューシステムを ISO イメージとして
/mnt/rescue_system/
ディレクトリーに出力するように設定するには、以下の行を /etc/rear/local.conf
ファイルに追加します。
OUTPUT=ISO OUTPUT_URL=file:///mnt/rescue_system/
オプション一覧は、man ページ rear(8) の「Rescue Image Configuration」のセクションを参照してください。
34.1.3. レスキューシステムの作成
以下の例では、出力結果が詳細モードとなるレスキューシステムを作成する方法を示しています。
~]# rear -v mkrescue Relax-and-Recover 1.17.2 / Git Using log file: /var/log/rear/rear-rhel68.log mkdir: created directory `/var/lib/rear/output' Creating disk layout Creating root filesystem layout TIP: To login as root via ssh you need to set up /root/.ssh/authorized_keys or SSH_ROOT_PASSWORD in your configuration file Copying files and directories Copying binaries and libraries Copying kernel modules Creating initramfs Making ISO image Wrote ISO image: /var/lib/rear/output/rear-rhel68.iso (82M) Copying resulting files to file location
例34.1「レスキューシステムの形式および場所の設定」 の設定で、ReaR は上記を出力します。最後の 2 行は、レスキューシステムが正常に作成され、設定されたバックアップの場所である
/mnt/rescue_system/
にコピーされていることを確認します。システムのホスト名は rhel-68
であるため、バックアップの場所には、レスキューシステムと補助ファイルが含まれる rhel-68/
ディレクトリーが含まれるようになりました。
~]# ls -lh /mnt/rescue_system/rhel68/
total 82M
-rw-------. 1 root root 202 May 9 11:46 README
-rw-------. 1 root root 160K May 9 11:46 rear.log
-rw-------. 1 root root 82M May 9 11:46 rear-rhel68.iso
-rw-------. 1 root root 275 May 9 11:46 VERSION
レスキューシステムを外部メディアに移動して、障害の際になくならないようにします。
34.1.4. ReaR のスケジューリング
ReaR が cron ジョブスケジューラーを使用して定期的にレスキューシステムを作成するようにするには、以下の行を
/etc/crontab
ファイルに追加します。
minute hour day_of_month month day_of_week root /usr/sbin/rear mkrescue
上記のコマンドを cron 時間指定( 「cron ジョブの設定」で詳細に説明)に置き換えます。
例34.2 ReaR のスケジューリング
ReaR が平日の 22:00 時にレスキューシステムを作成させるには、以下の行を
/etc/crontab
ファイルに追加します。
0 22 * * 1-5 root /usr/sbin/rear mkrescue
34.1.5. システムレスキューの実行
復旧または移行を実行するには、以下の手順を行います。
- 新しいハードウェア上でレスキューシステムを起動します。たとえば、ISO イメージを DVD に書き込み、その DVD から起動します。
- コンソールのインターフェースで "Recover" オプションを選択します。
- 以下のプロンプトが表示されます。
図34.2 レスキューシステムのプロンプト
警告次のステップでリカバリーを開始すると、元に戻すことができなくなり、システムの物理ディスクに保存されていたものが失われます。 - rear recover コマンドを実行して復元または移行を実行します。するとレスキューシステムがパーティションレイアウトとファイルシステムを再作成します。
図34.3 レスキューシステム: "rear recover" の実行
- バックアップから
/mnt/local/
ディレクトリーにユーザーおよびシステムファイルを復元します。例34.3 ユーザーおよびシステムファイルの復元
この例では、バックアップファイルは 「内部バックアップメソッドの設定」 の説明に従って作成された tar アーカイブになります。まず、アーカイブをストレージからコピーし、ファイルを/mnt/local/
に展開し、アーカイブを削除します。~]# scp root@192.168.122.6:/srv/backup/rhel68/backup.tar.gz /mnt/local/ ~]# tar xf /mnt/local/backup.tar.gz -C /mnt/local/ ~]# rm -f /mnt/local/backup.tar.gz
新規ストレージは、アーカイブと展開ファイルの両方を格納できるサイズである必要があります。 - ファイルが復元されたことを確認します。
~]# ls /mnt/local/
図34.4 レスキューシステム: バックアップからのユーザーおよびシステムファイルの復元
- 次回の起動時に SELinux がファイルに再度ラベル付するようにします。
~]# touch /mnt/local/.autorelabel
そうしないと、/etc/passwd
ファイルの SELinux コンテキストが正しくない可能性があるため、システムにログインできなくなる可能性があります。 - リカバリーを完了してシステムを再起動します。
図34.5 レスキューシステム: リカバリーの終了
その後、ReaRはブートローダーを再インストールします。再起動すると、SELinux がファイルシステム全体に再ラベル付けされます。これでリカバリーしたシステムにログインできるようになります。