第27章 ReaR (Relax-and-Recover)
ソフトウェアやハードウェア障害でシステムが破損した場合、システム管理者は新たなハードウェア環境上で完全に機能する状態にシステムを復元するために以下の 3 つのタスクを実行する必要があります。
- 新規ハードウェア上でレスキューシステムを起動する
- オリジナルのストレージレイアウトを複製する
- ユーザーおよびシステムファイルの復元
ほとんどのバックアップソフトウェアは、3 番目の問題しか解決しません。最初の 2 つの問題を解決できるのが、障害復旧およびシステム移行ユーティリティーである Relax-and-Recover (ReaR) です。
バックアップソフトウェアはバックアップを作成します。ReaR は レスキューシステム を作成することでこれを補完します。新しいハードウェアでレスキューシステムを起動すると、復元プロセスが開始する rear recover
コマンドを実行できます。このプロセス中に ReaR はパーティションのレイアウトとファイルシステムを複製し、バックアップソフトウェアが作成したバックアップからのユーザーおよびシステムファイルの復元を促進し、最後にブートローダーをインストールします。デフォルトでは、ReaR が作成したレスキューシステムはストレージレイアウトとブートローダーのみを復元し、実際のユーザーおよびシステムファイルは復元しません。
本章では、ReaR の使用方法を説明します。
27.1. 基本的な ReaR の使用方法
27.1.1. ReaR のインストール
root で以下のコマンドを実行して、rear パッケージをインストールします。
~]# yum install rear
27.1.2. ReaR の設定
ReaR は /etc/rear/local.conf
ファイルで設定します。以下の行を追加してレスキューシステムの設定を指定します。
OUTPUT=output format OUTPUT_URL=output location
output format を、レスキューシステムの形式に置き換えます。たとえば、ISO ディスクイメージであれば ISO
、起動可能な USB であれば USB
などにします。
output location を、配置場所に置き換えます。たとえば、ローカルのファイルシステムディレクトリーであれば
、SFTP ディレクトリーであれば sftp://backup:password@192.168.0.0/ などにします。
file:///mnt/rescue_system/
例27.1 レスキューシステムの形式および場所の設定
ReaR がレスキューシステムを ISO イメージで /mnt/rescue_system/
ディレクトリーに出力するようにするには、以下の行を /etc/rear/local.conf
ファイルに追加します。
OUTPUT=ISO OUTPUT_URL=file:///mnt/rescue_system/
オプションリストは、man ページ rear(8) の Rescue Image Configuration のセクションを参照してください。
ISO 固有の設定
例27.1「レスキューシステムの形式および場所の設定」 の設定を使用すると、2 つの場所に 2 つの同等のファイルが出力されます。
-
/var/lib/rear/output/
:rear
のデフォルトの出力ロケーション -
/mnt/rescue_system/HOSTNAME/rear-localhost.iso
:OUTPUT_URL
で指定された出力ロケーション
しかし、通常必要になるのは ISO イメージだけです。ReaR にユーザーが指定したディレクトリーに ISO イメージのみを作成させるには、以下の行を /etc/rear/local.conf
に追加します。
OUTPUT=ISO
BACKUP=NETFS
OUTPUT_URL=null
BACKUP_URL="iso:///backup"
ISO_DIR="output location"
output location を出力先に置き換えます。
27.1.3. レスキューシステムの作成
以下の例では、出力結果が詳細モードとなるレスキューシステムを作成する方法を示しています。
~]# rear -v mkrescue Relax-and-Recover 1.17.2 / Git Using log file: /var/log/rear/rear-rhel7.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-rhel7.iso (124M) Copying resulting files to file location
例27.1「レスキューシステムの形式および場所の設定」 の設定で、ReaR は上記を出力します。最後の 2 行は、レスキューシステムが正常に作成され、設定されたバックアップの場所である /mnt/rescue_system/
にコピーされたことを示しています。システムのホスト名が rhel7
であることから、バックアップの場所には rhel7/
ディレクトリーが含まれ、レスキューシステムと補助ファイルが格納されます。
~]# ls -lh /mnt/rescue_system/rhel7/ total 124M -rw-------. 1 root root 202 Jun 10 15:27 README -rw-------. 1 root root 166K Jun 10 15:27 rear.log -rw-------. 1 root root 124M Jun 10 15:27 rear-rhel7.iso -rw-------. 1 root root 274 Jun 10 15:27 VERSION
レスキューシステムを外部メディアに移動して、障害の際になくならないようにします。
27.1.4. ReaR のスケジューリング
rear パッケージが提供する /etc/cron.d/rear
crontab ファイルは、
コマンドを毎日 1:30 AM で自動的に実行して、レスキューシステムを定期的に作成するための Relax-and-Recover (ReaR)ユーティリティーをスケジュールします。このコマンドはレスキューシステムのみを作成し、データのバックアップは作成しません。データの定期的なバックアップを自分でスケジュールする必要があります。以下に例を示します。
rear
mkrescue
-
rear mkbackuponly
コマンドをスケジュールする別の crontab を追加できます。 -
また、既存の crontab を、デフォルトの /usr/sbin/rear checklayout
|| /usr/sbin/rear checklayout コマンドの代わりに
ます。rear mkbackup
コマンドを実行するように変更することもでき - 外部バックアップメソッドが使用されている場合は、外部バックアップをスケジュールできます。詳細は、ReaR で使用しているバックアップ方法によって異なります。詳細は ReaR とバックアップソフトウェアの統合 を参照してください。
デフォルトでは、rear パッケージで提供される /etc/cron.d/
crontab ファイルは非推奨になりました。これは、バックアップを実行するだけでは不十分なためです。詳細は、対応する 非推奨の機能シェルおよびコマンドラインツール を参照してください。
rear
27.1.5. システムレスキューの実行
復旧または移行を実行するには、以下の手順を行います。
- 新しいハードウェア上でレスキューシステムを起動します。たとえば、ISO イメージを DVD に書き込み、その DVD から起動します。
コンソールのインターフェイスで "Recover" オプションを選択します。
以下のプロンプトが表示されます。
図27.2 レスキューシステムのプロンプト
警告次のステップでリカバリーを開始すると、元に戻すことができなくなり、システムの物理ディスクに保存されていたものが失われます。
rear recover
コマンドを実行して復旧または移行を行います。するとレスキューシステムがパーティションレイアウトとファイルシステムを再作成します。図27.3 レスキューシステム: "rear recover" の実行
バックアップから
/mnt/local/
ディレクトリーにユーザーおよびシステムファイルを復元します。例27.2 ユーザーおよびシステムファイルの復元
この例では、バックアップファイルは、「内部バックアップメソッドの設定」 の指示どおりに作成した tar アーカイブになります。まず、アーカイブをストレージからコピーして、ファイルを
/mnt/local/
にデプロイメントし、アーカイブを削除します。~]# scp root@192.168.122.7:/srv/backup/rhel7/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/
図27.4 レスキューシステム: バックアップからのユーザーおよびシステムファイルの復元
次回の起動時に SELinux がファイルに再度ラベル付するようにします。
~]# touch /mnt/local/.autorelabel
これを実行しなかった場合、
/etc/passwd
ファイルの SELinux コンテキストが間違ったものとなり、システムにログインできなくなる可能性があります。exit
を実行してリカバリーを終了すると、ReaR がブートローダーを再インストールします。その後、ReaR はブートローダーを再インストールします。その後、システムを再起動します。図27.5 レスキューシステム: リカバリーの終了
再起動すると、SELinux がファイルシステム全体に再ラベル付けされます。これでリカバリーしたシステムにログインできるようになります。