第5章 バックアップおよび災害復旧
本章では、災害発生時に Red Hat Satellite デプロイメントと関連データの継続性を確保するために必要な最小限のバックアップおよび復元手順について説明します。デプロイメントでカスタム設定を使用する場合は、バックアップおよび災害復旧ポリシーを計画するときにこれらの設定を考慮する必要があります。
5.1. Satellite Server および Capsule Server のバックアップ
このセクションでは、katello-backup スクリプトを使用して、Satellite Server または Capsule Server とすべての関連データのバックアップを作成する方法を説明します。別の場所にバックアップすることが推奨されます。別のシステム上の別のストレージデバイスにバックアップすることを強く推奨します。バックアップ中に Satellite サービスが利用できないため、バックアップは待機時間( cronなどを使用して)スケジュールできます。
『Red Hat Enterprise Linux 7 System Administrator's Guide』 の System Backup and Recovery セクションで説明されている従来のバックアップ方法を使用することもできます。
注記
- スケジュールされたバックアップを計画する際には、他の管理者が同じ時間に他のタスクをスケジュールしないようにしてください。これは、管理者がさまざまな場所とタイムゾーンで作業している場合は特に重要です。
- スナップショットまたは従来のバックアップを作成するときは、すべてのサービスを停止してください( katello-backup スクリプトを使用する場合には、これは実行しないでください)。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow katello-service stop
# katello-service stop
スナップショットまたは従来のバックアップを作成したら、サービスを起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow katello-service start
# katello-service start
Red Hat Satellite 6.2 では、katello-backup スクリプトを使用してバックアップを作成し、復元します。使用方法を表示するには、以下のようにコマンドを入力します。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
katello-backup --help
# katello-backup --help
Satellite 6.2.8 から、katello-backup は、指定したバックアップディレクトリーにタイムスタンプの付いたサブディレクトリーを作成します。バックアップまたは増分バックアップから復元する場合は、katello-backup スクリプトでバックアップは上書きされないため、適切なディレクトリーまたはサブディレクトリーを選択する必要があります。このスクリプトは、必要に応じてサービスを停止および再起動します。
既知の問題
katello-backup スクリプトには、以下の既知の問題があります。
- Satellite 6.2.7 以前:
- このスクリプトでは、フルバックアップに同じディレクトリーを複数回使用することはサポートしていません。可能であれば、Satellite 6.2.8 以降に更新します。新しいバックアップが正常に完了するまで、毎回新しいディレクトリーを使用するか、以前のバックアップを安全な場所に移動します。
- 既存のディレクトリーをバックアップターゲットディレクトリーとして使用する場合、スクリプトはグループを
postgres
グループに変更します。他のプロセスもディレクトリーを使用している場合は、これにより予期しない結果が生じる可能性があります。可能であれば、Satellite 6.2.8 以降に更新します。あるいは、バックアップ用にのみ新しいディレクトリーまたはサブディレクトリーを使用します。
- Satellite 6.2.8 以前では、the
--online-backup
オプションを使用すると、Satellite サービスは停止します。可能であれば、Satellite 6.2.9 以降に更新します。また、Red Hat Bug 1432013 が解決されるまで、オンラインバックアップの作成には/tmp/
または/var/tmp/
ディレクトリーのみを使用してください。 - Satellite 6.2.9 以前では、フルバックアップが
作成
されています。これは、非同期エラータ RHBA-2017:1234 - バグ修正アドバイザリー に含まれる Red Hat Bug 1445989 で修正 されました。Satellite 6.2.9 では、エラータを適用するか、可能であれば新しいバージョンにアップグレードします。
Satellite または Capsule のバージョンの確認
Satellite 6 のバージョンを確認するには、以下のコマンドを使用します。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
yum info satellite
# yum info satellite
Red Hat Satellite 6 では、個別パッケージの更新はサポートしません。最新のマイナーバージョンに更新するには、『Red Hat Satellite 6.2 インストールガイド の Satellite Server、Capsule Server、およびコンテンツホスト の更新 を参照してください』。次 のメジャーバージョンへのアップグレードについては、Satellite Server および Capsule Server のアップグレード を参照してください。
手順5.1 Satellite Server および Capsule Server の完全バックアップの実行
この手順では、完全なオフラインバックアップを実行します。バックアップ中に Satellite サービスは利用できません。
- バックアップの場所に、以下のディレクトリーのコピーを保存するのに十分なディスク領域があることを確認します。
/etc/
/var/lib/pulp/
/var/lib/mongodb/
/var/lib/pgsql/
Satellite 6.2.7 以前では、バックアップターゲットディレクトリーは、バックアップ用にのみ作成された新しいディレクトリーまたはサブディレクトリーである必要があります。du -sh directory_name コマンドを使用して、ディレクトリーが使用する容量を確認できます。 - Satellite Server および Capsule Server の他のユーザーにすべての変更を保存するよう指示して、バックアップ中は Satellite サービスが利用できないことを警告してください。バックアップと同じ時間に他のタスクがスケジュールされていないことを確認してください。
- バックアップスクリプトを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow katello-backup backup_directory
# katello-backup backup_directory
katello-backup スクリプトは、バックアップに影響を与える可能性があるすべてのサービスを停止し、バックアップを実行してから、必要なサービスを再起動します。バックアップファイルを作成するときにターゲットディレクトリーが存在しない場合は、スクリプトにより作成されます。注記Satellite 6.2.13 以降、katello-backup スクリプトは、バックアップを続行することを確認するプロンプトを表示します。プロンプトなしでバックアップを実行するには、parameter-assumeyes
を追加します。コピーするデータのサイズが原因で、このプロセスが完了するには長い時間がかかることがあります。
手順5.2 Pulp コンテンツなしでのバックアップの実行:
この手順では、オフラインバックアップを実行しますが、Pulp ディレクトリーの内容は除外されます。このバックアップはデバッグに役立ち、Pulp データベースのバックアップに時間を費やさずに設定ファイルへのアクセスを提供することを目的としています。Pulp コンテンツを含まないディレクトリーから復元することはできません。
- バックアップの場所に、以下のディレクトリーのコピーを保存するのに十分なディスク領域があることを確認します。
/etc/
/var/lib/mongodb/
/var/lib/pgsql/
du -sh directory_name コマンドを使用して、ディレクトリーが使用する容量を確認できます。 - Satellite Server および Capsule Server の他のユーザーにすべての変更を保存するよう指示して、バックアップ中は Satellite サービスが利用できないことを警告してください。バックアップと同じ時間に他のタスクがスケジュールされていないことを確認してください。
- バックアップスクリプトを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow katello-backup --skip-pulp-content backup_directory
# katello-backup --skip-pulp-content backup_directory
katello-backup スクリプトは、バックアップに影響を与える可能性があるすべてのサービスを停止し、バックアップを実行してから、必要なサービスを再起動します。バックアップファイルを作成するときにターゲットディレクトリーが存在しない場合は、スクリプトにより作成されます。注記Satellite 6.2.13 以降、katello-backup スクリプトは、バックアップを続行することを確認するプロンプトを表示します。プロンプトなしでバックアップを実行するには、parameter-assumeyes
を追加します。
手順5.3 増分バックアップの実行:
この手順では、前回のバックアップ以降のすべての変更のオフラインバックアップを実行します。フルバックアップを参照として使用し、シーケンスの最初の増分バックアップを作成します。少なくとも最後に正常であると予想される増分バックアップの完全なシーケンスを保持し、復元元にします。
- バックアップの場所に、以下のディレクトリーにおける変更のコピーを保存するのに十分なディスク領域があることを確認します。
/etc/
/var/lib/pulp/
/var/lib/mongodb/
/var/lib/pgsql/
du -sh directory_name コマンドを使用して、ディレクトリーが使用する容量を確認できます。 - Satellite Server および Capsule Server の他のユーザーにすべての変更を保存するよう指示して、バックアップ中は Satellite サービスが利用できないことを警告してください。バックアップと同じ時間に他のタスクがスケジュールされていないことを確認してください。
- バックアップスクリプトを実行します。Pulp コンテンツがある場合:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow katello-backup backup_directory --incremental backup_directory/previous_time-stamped_subdirectory
# katello-backup backup_directory --incremental backup_directory/previous_time-stamped_subdirectory
Pulp コンテンツがない場合:Copy to Clipboard Copied! Toggle word wrap Toggle overflow katello-backup backup_directory --skip-pulp-content --incremental backup_directory/previous_time-stamped_subdirectory
# katello-backup backup_directory --skip-pulp-content --incremental backup_directory/previous_time-stamped_subdirectory
katello-backup スクリプトは、バックアップに影響を与える可能性があるすべてのサービスを停止し、バックアップを実行してから、必要なサービスを再起動します。バックアップファイルを作成するときにターゲットディレクトリーが存在しない場合は、スクリプトにより作成されます。以前のバックアップよりも古いバックアップを開始点として使用することは、増分バックアップを作成できますが、対応するにバックアップを作成する時間が長くなります。注記Satellite 6.2.13 以降、katello-backup スクリプトは、バックアップを続行することを確認するプロンプトを表示します。プロンプトなしでバックアップを実行するには、parameter-assumeyes
を追加します。
手順5.4 オンラインバックアップの実行
この手順では、Satellite Server または Capsule Server の実行中に完全バックアップを実行します。Pulp データベースに影響する手順がある場合は、Pulp 部分のバックアップ手順は変更がなくなるまで繰り返されます。Pulp データベースのバックアップは Satellite のバックアップに最も時間のかかる部分であるため、現時点で Pulp データベースを変更しないことが 強く 推奨されます。バックアップで Pulp 部分が再起動する手順が長くなります。
注記
重要
Satellite 6 は、Postgres と Mongo の 2 つのデータベースシステムを使用します。Postgres と Mongo の両方に存在するレコードがあり、同期しておく必要があります。
The
--online-backup
オプションはすべてのサービスの実行を維持します。つまり、バックアップの作成中にデータを変更できる可能性があります。バックアップ中にデータベースが変更されたかどうかを確認する基本的なチェックがあります。その場合、スクリプトは、バックアップのデータベース部分を再度開始します。このチェックは基本的なものです。バックアップスクリプトの実行中に、100% の確信でデータベースが変更されていないことを確認することはできません。また、このチェックでは、データベースに継続的に変更が行われた場合にループが繰り返されることもあります。
実稼働環境でも
--online-backup
メソッドを使用する場合は、バックアップ中に変更がないようにしてください。
- Satellite 6.2.9 以降に更新されていることを確認します。Satellite 6 のバージョンを確認するには、以下のコマンドを使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum info satellite
# yum info satellite
- バックアップの場所に、以下のディレクトリーのコピーを保存するのに十分なディスク領域があることを確認します。
/etc/
/var/lib/pulp/
/var/lib/mongodb/
/var/lib/pgsql/
du -sh directory_name コマンドを使用して、ディレクトリーが使用する容量を確認できます。 - Satellite Server および Capsule Server の他のユーザーに、すべての変更を保存するよう依頼して、バックアップ中はリポジトリーとコンテンツビューを変更しないように依頼します。リポジトリーの同期などの他のタスクが、バックアップと同じ時間にスケジュールされていないことを確認してください。
- バックアップスクリプトを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow katello-backup --online-backup /tmp/backup_directory
# katello-backup --online-backup /tmp/backup_directory
注記Satellite 6.2.13 以降、katello-backup スクリプトは、バックアップを続行することを確認するプロンプトを表示します。プロンプトなしでバックアップを実行するには、parameter-assumeyes
を追加します。
例5.1 週次の完全バックアップの後に日次増分バックアップを実行する場合
以下のサンプルスクリプトでは、日曜日に完全バックアップを実行し、その他の曜日では増分バックアップを実行します。
#!/bin/bash -e DESTINATION=/var/backup if [[ $(date +%w) == 0 ]]; then katello-backup $DESTINATION --assumeyes else LAST=$(ls -td -- $DESTINATION/*/ | head -n 1) katello-backup $DESTINATION --incremental "$LAST" --assumeyes fi exit 0
#!/bin/bash -e
DESTINATION=/var/backup
if [[ $(date +%w) == 0 ]]; then
katello-backup $DESTINATION --assumeyes
else
LAST=$(ls -td -- $DESTINATION/*/ | head -n 1)
katello-backup $DESTINATION --incremental "$LAST" --assumeyes
fi
exit 0
Satellite のバージョンが 6.2.13 以上の場合のみ、
--assumeyes
パラメーターを追加します。