Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第26章 Relax-and-Recover (ReaR)

ソフトウェアやハードウェア障害でシステムが破損した場合、システム管理者は新たなハードウェア環境上で完全に機能する状態にシステムを復元するために以下の 3 つのタスクを実行する必要があります。
  1. 新規ハードウェア上でレスキューシステムを起動する
  2. オリジナルのストレージレイアウトを複製する
  3. ユーザーおよびシステムファイルを復元する
ほとんどのバックアップソフトウェアは、3 番目の問題しか解決しません。最初の 2 つの問題を解決できるのが、障害復旧およびシステム移行ユーティリティーである Relax-and-Recover (ReaR) です。
バックアップソフトウェアはバックアップを作成しますが、ReaR は レスキューシステム を作成することでこれを補完します。新規ハードウェア上でレスキューシステムを起動することで、rear recover コマンドが実行できるようになります。このコマンドは、復旧プロセスを開始します。このプロセス中に ReaR はパーティションのレイアウトとファイルシステムを複製し、バックアップソフトウェアが作成したバックアップからのユーザーおよびシステムファイルの復元を促進し、最後にブートローダーをインストールします。デフォルトでは、ReaR が作成したレスキューシステムはストレージレイアウトとブートローダーのみを復元し、実際のユーザーおよびシステムファイルは復元しません。
本章では、ReaR の使用方法を説明します。

26.1. 基本的な ReaR の使用方法

26.1.1. ReaR のインストール

root で以下のコマンドを実行して、rear パッケージと依存関係をインストールします。
~]# yum install rear genisoimage syslinux

26.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:password@192.168.0.0/ などにします。

例26.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 固有の設定

例26.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 、を出力先に置き換えます。

26.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
例26.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
レスキューシステムを外部メディアに移動して、障害の際になくならないようにします。

26.1.4. ReaR のスケジューリング

ReaR が cron ジョブスケジューラーを使用して定期的にレスキューシステムを作成するようにするには、以下の行を /etc/crontab ファイルに追加します。
minute hour day_of_month month day_of_week root /usr/sbin/rear mkrescue
上記のコマンドを cron 時間指定 ( 「cron ジョブのスケジュール設定」 を参照) に置き換えます。

例26.2 ReaR のスケジューリング

ReaR が平日の 22:00 時に毎日レスキューシステムを作成するようにするには、以下の行を /etc/crontab に追加します。
0 22 * * 1-5 root /usr/sbin/rear mkrescue

26.1.5. システムレスキューの実行

復旧または移行を実行するには、以下の手順を行います。
  1. 新しいハードウェア上でレスキューシステムを起動します。たとえば、ISO イメージを DVD に書き込み、その DVD から起動します。
  2. コンソールのインターフェースで "Recover" オプションを選択します。
    レスキューシステムのメニュー

    図26.1 レスキューシステムのメニュー

  3. 以下のプロンプトが表示されます。
    レスキューシステムのプロンプト

    図26.2 レスキューシステムのプロンプト

    警告

    次のステップでリカバリーを開始すると、元に戻すことができなくなり、システムの物理ディスクに保存されていたものが失われます。
  4. rear recover コマンドを実行して復旧または移行を行います。するとレスキューシステムがパーティションレイアウトとファイルシステムを再作成します。
    レスキューシステム: "rear recover" の実行

    図26.3 レスキューシステム: "rear recover" の実行

  5. バックアップから /mnt/local/ ディレクトリーにユーザーおよびシステムファイルを復元します。

    例26.3 ユーザーおよびシステムファイルの復元

    この例では、バックアップファイルは、「内部バックアップメソッドの設定」 にある指示どおりに作成した 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
    新規ストレージは、アーカイブと展開ファイルの両方を格納できるサイズである必要があります。
  6. ファイルが復元されたことを確認します。
    ~]# ls /mnt/local/
    レスキューシステム: バックアップからのユーザーおよびシステムファイルの復元

    図26.4 レスキューシステム: バックアップからのユーザーおよびシステムファイルの復元

  7. 次回の起動時に SELinux がファイルに再度ラベル付するようにします。
    ~]# touch /mnt/local/.autorelabel
    これを実行しなかった場合、/etc/passwd ファイルの SELinux コンテキストが間違ったものとなり、システムにログインできなくなる可能性があります。
  8. exit を実行してリカバリーを終了すると、ReaR がブートローダーを再インストールします。その後にシステムを再起動します。
    レスキューシステム: リカバリーの終了

    図26.5 レスキューシステム: リカバリーの終了

    再起動すると、SELinux がファイルシステム全体にラベル付けを再度行います。これでリカバリーしたシステムにログインできるようになります。