第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 genisoimage syslinux
27.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/
など、配置する場所に置き換えます。
例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 が cron ジョブスケジューラーを使用して定期的にレスキューシステムを作成するようにするには、以下の行を /etc/crontab
ファイルに追加します。
minute hour day_of_month month day_of_week root /usr/sbin/rear mkrescue
上記のコマンドを cron 時間指定 (「cron ジョブのスケジュール設定」 を参照) に置き換えます。
例27.2 ReaR のスケジューリング
ReaR が平日の 22:00 時に毎日レスキューシステムを作成するようにするには、以下の行を /etc/crontab
に追加します。
0 22 * * 1-5 root /usr/sbin/rear mkrescue
27.1.5. システムレスキューの実行
復旧または移行を実行するには、以下の手順を行います。
- 新しいハードウェア上でレスキューシステムを起動します。たとえば、ISO イメージを DVD に書き込み、その DVD から起動します。
コンソールのインターフェースで "Recover" オプションを選択します。
以下のプロンプトが表示されます。
図27.2 レスキューシステムのプロンプト
警告次のステップでリカバリーを開始すると、元に戻すことができなくなり、システムの物理ディスクに保存されていたものが失われます。
rear recover
コマンドを実行して復元または移行を実行します。するとレスキューシステムがパーティションレイアウトとファイルシステムを再作成します。図27.3 レスキューシステム: "rear recover" の実行
バックアップから
/mnt/local/
ディレクトリーにユーザーおよびシステムファイルを復元します。例27.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
新規ストレージは、アーカイブと展開ファイルの両方を格納できるサイズである必要があります。
ファイルが復元されたことを確認します。
~]# ls /mnt/local/
図27.4 レスキューシステム: バックアップからのユーザーおよびシステムファイルの復元
次回の起動時に SELinux がファイルに再度ラベル付するようにします。
~]# touch /mnt/local/.autorelabel
これを実行しなかった場合、
/etc/passwd
ファイルの SELinux コンテキストが間違ったものとなり、システムにログインできなくなる可能性があります。exit
を実行してリカバリーを終了すると、ReaR がブートローダーを再インストールします。その後、ReaRはブートローダーを再インストールします。その後、システムを再起動します。図27.5 レスキューシステム: リカバリーの終了
再起動すると、SELinux がファイルシステム全体に再ラベル付けされます。これでリカバリーしたシステムにログインできるようになります。
27.2. ReaR をバックアップソフトウェアの統合
ReaR の主な目的はレスキューシステムを作成することですが、バックアップソフトウェアと統合することも可能です。統合は、ビルトイン、サポート対象、サポート対象外の各バックアップ方法で異なります。
27.2.1. ビルトインバックアップの場合
ReaR には、ビルトインもしくは内部のバックアップメソッドが含まれます。このメソッドは ReaR と完全に統合されており、以下の利点があります。
-
rear mkbackup
コマンドを 1 つ使用して、レスキューシステムと完全システムバックアップを作成できます。 - レスキューシステムが自動でバックアップからファイルを復元します。
このため、ReaR はレスキューシステムと完全システムバックアップの両方の作成プロセスを処理できます。
27.2.1.1. 内部バックアップメソッドの設定
ReaR が内部バックアップメソッドを使用するようにするには、以下の行を /etc/rear/local.conf
に追加します。
BACKUP=NETFS
BACKUP_URL=backup location
これらの行によって、ReaR が tar
コマンドを使用して完全システムバックアップのあるアーカイブを作成するようになります。backup location を、man ページの rear(8) の 「Backup Software Integration」セクションにあるいずれかのオプションで置き換えます。バックアップの場所に十分な空き領域があるようにしてください。
例27.4 tar バックアップの追加
「基本的な ReaR の使用方法」 にある例を拡大して、ReaR が tar 完全システムバックアップを /srv/backup/
ディレクトリーに出力するようにします。
OUTPUT=ISO OUTPUT_URL=file:///mnt/rescue_system/ BACKUP=NETFS BACKUP_URL=file:///srv/backup/
内部バックアップメソッドでは、さらなる設定が可能です。
新規バックアップの作成時にこれまでのバックアップアーカイブを維持しておくようにするには、以下の行を追加します。
NETFS_KEEP_OLD_BACKUP_COPY=y
デフォルトでは、ReaR は実行時に毎回、完全バックアップを作成します。変更分のみをバックアップする増分にするには、以下の行を追加します。
BACKUP_TYPE=incremental
これにより、
NETFS_KEEP_OLD_BACKUP_COPY
が自動的にy
に設定されます。増分バックアップに加えて、完全バックアップを定期的に実行するには、以下の行を追加します。
FULLBACKUPDAY="Day"
"Day" を "Mon"、"Tue"、"Wed"、"Thu"、"Fri"、"Sat"、"Sun" のいずれかに置き換えます。「金」、「土」、「日」。
ReaR は、レスキューシステムとバックアップの両方を ISO イメージに含めることもできます。これを行うには、
BACKUP_URL
ディレクティブをiso:///backup/
に設定します。BACKUP_URL=iso:///backup/
これはレスキューシステムがリカバリー中にバックアップをフェッチする必要がないことから、完全システムバックアップの一番簡単なメソッドになります。ただし、ストレージに十分なスペースが必要になります。また、単発の ISO バックアップは増分とすることができません。
例27.5 単一 ISO のレスキューシステムおよびバックアップの設定
以下の設定では、単一の ISO イメージとしてレスキューシステムとバックアップファイルが
/srv/backup/
ディレクトリーに作成されます。OUTPUT=ISO OUTPUT_URL=file:///srv/backup/ BACKUP=NETFS BACKUP_URL=iso:///backup/
注記このシナリオでは、ISO イメージが大きくなる可能性があります。そのため、Red Hat は ISO イメージを 1 つだけ作成することを推奨しています。詳細は「ISO 固有の設定」を参照してください。
tar
の代わりにrsync
を使用するには、以下の行を追加します。BACKUP_PROG=rsync
増分バックアップは
tar
使用時にのみサポートされることに注意してください。
27.2.1.2. 内部バックアップメソッドを使用したバックアップの作成
BACKUP=NETFS
を設定すると、ReaR は、レスキューシステムまたはバックアップのいずれか、もしくはその両方を作成できます。
レスキューシステムのみ を作成するには、以下のコマンドを実行します。
rear mkrescue
バックアップのみ を作成するには、以下のコマンドを実行します。
rear mkbackuponly
レスキューシステムとバックアップ を作成するには、以下のコマンドを実行します。
rear mkbackup
ReaR によるバックアップの作成は、NETFS メソッドの使用時のみ可能となります。ReaR は他のバックアップメソッドを開始することはできません。
復元時には、BACKUP=NETFS
設定で作成したレスキューシステムは、rear recover
の実行前にバックアップが存在することを前提としています。このため、レスキューシステムが起動したら、BACKUP_URL
で指定したディレクトリーにバックアップファイルをコピーします (単一 ISO イメージ使用時を除く)。その後、rear recover
のみ実行します。
不要なレスキューシステムを再作成しないためには、最後にレスキューシステムが作成されてからストレージレイアウトが変更されたかどうかを確認します。以下のコマンドを実行します。
~]# rear checklayout ~]# echo $?
ゼロ以外のステータスは、ディスクレイアウトに変更があったことを示します。また、ReaR 設定が変更した場合でも、ゼロ以外のステータスが返されます。
rear checklayout
コマンドはレスキューシステムがその時点で出力の場所にあるかどうかを確認せず、存在しない場合でも 0 を返す可能性があります。このため、レスキューシステムが利用可能であることを保証するのではなく、最後にレスキューシステムが作成されてからレイアウトに変更がないことのみが保証されます。
例27.6 rear checklayout の使用
レイアウトに変更があった場合にのみレスキューシステムを作成するようにするには、以下のコマンドを使用します。
~]# rear checklayout || rear mkrescue
27.2.2. サポート対象のバックアップメソッド
NETFS 内部バックアップメソッドのほかに、ReaR はいくつかの外部バックアップメソッドもサポートしています。この場合、レスキューシステムはバックアップから自動的にファイルを復元しますが、ReaR を使ってバックアップの作成を開始することはできません。
サポート対象の外部バックアップメソッドの一覧および設定オプションは、rear(8) の man ページの「Backup Software Integration」セクションを参照してください。
27.2.3. サポート対象外のバックアップメソッド
サポート対象外のバックアップメソッドでは、以下の 2 つのオプションが可能です。
- レスキューシステムでは、ユーザーに手動でファイルを復元するようプロンプトが出ます。このシナリオは「基本的な ReaR の使用方法」にあるものと同じですが、バックアップファイルの形式が tar アーカイブ以外のものである可能性があります。
-
ユーザーが提供するカスタムコマンドを ReaR が実行します。これを設定するには、
BACKUP
ディレクティブをEXTERNAL
に設定します。次に、EXTERNAL_BACKUP
およびEXTERNAL_RESTORE
ディレクティブを使用してバックアップおよびリストア中に実行するコマンドを指定します。必要に応じて、EXTERNAL_IGNORE_ERRORS
およびEXTERNAL_CHECK
ディレクティブも指定します。設定例については、/usr/share/rear/conf/default.conf
を参照してください。
27.2.4. 複数のバックアップの作成
バージョン 2.00 では、ReaR は複数のバックアップの作成をサポートしています。この機能をサポートするバックアップ手法は次のとおりです。
-
BACKUP=NETFS
(内部メソッド) -
BACKUP=BORG
(外部メソッド)
個々のバックアップは、rear
コマンドの -C
オプションで指定できます。引数は、/etc/rear/
ディレクトリーにある追加のバックアップ設定ファイルのベースネームです。特定のバックアップごとのメソッド、バックアップ先、オプションはメインの設定ファイルではなく、特定の設定ファイルで定義されています。
システムの基本リカバリーを実行するには、以下を行います。
システムの基本リカバリー
ReaR リカバリーシステムの ISO イメージと基本システムのファイルのバックアップを一緒に作成します。
~]# rear -C basic_system mkbackup
/home
ディレクトリーのファイルのバックアップを作成します。~]# rear -C home_backup mkbackuponly
指定の設定ファイルに /boot
、/root
、/usr
など、システムの基本リカバリーに必要なディレクトリーが含まれている必要があります。
rear リカバリーシェルでのシステムのリカバリー
rear リカバリーシェルでシステムをリカバリーするには、以下のコマンドのシーケンスを使用します。
~]# rear -C basic_system recover
~]# rear -C home_backup restoreonly
このページには機械翻訳が使用されている場合があります (詳細はこちら)。