第8章 Satellite Server および Capsule Server のバックアップ
本章では、災害発生時に Red Hat Satellite デプロイメントと関連データの継続性を確保するために必要な最小限のバックアップ手順について説明します。デプロイメントでカスタム設定を使用する場合は、バックアップおよび災害復旧ポリシーを策定する際にカスタム設定をどのように扱うかについて考慮する必要があります。
8.1. Satellite のバックアップ
Satellite Server または Capsule Server のバックアップは、Satellite または Capsule の復元またはデバッグに使用できるアーカイブされたデータベースと設定ファイルの集まりです。satellite-maintain backup
ユーティリティーを使用して、バックアップを作成します。
バックアップの種類
次の種類のバックアップを作成できます。
完全
Satellite または Capsule の完全なバックアップ。
増分
前回のバックアップ以降の変更のバックアップ。
Pulp コンテンツなし
Pulp データベースコンテンツを含まない部分バックアップ。
バックアップの方法
バックアップの実行には、次の方法を使用できます。
オフライン
オフラインで Satellite または Capsule のバックアップを作成します。
オンライン
オンラインで Satellite または Capsule のバックアップを作成します。
スナップショット
論理ボリュームマネージャー (LVM) のスナップショットからバックアップを作成します。Satellite または Capsule は、スナップショットの作成中はオフラインです。
バックアップの方法と種類の詳細は、「バックアップの方法と種類」を参照してください。
satellite-maintain backup
ユーティリティーを使用すると、指定したディレクトリーにのサブディレクトリーに、タイムスタンプ付きでバックアップが作成されます。--preserve-directory
オプションを使用して、サブディレクトリーに別の名前を指定できます。--preserve-directory
オプションを使用すると、バックアップの失敗時には、サブディレクトリーは消去されません。
Satellite または Capsule がリモートデータベースを使用するように設定されている場合には、オフラインまたはスナップショットバックアップの実行時に、このユーティリティーでデータベースダンプが実行されます。
バックアップの考慮事項
- バックアップは定期的に作成してください。cron ジョブを使用した定期的バックアップのスケジュール設定の詳細は、「オフラインバックアップのスケジュール設定のスクリプト例」を参照してください。
- バックアップの安全性を確保するには、別のシステム上の別のストレージにバックアップを作成します。
-
バックアップには、
/root/ssl-build
ディレクトリーの機密情報が含まれます。たとえば、ホスト名、SSH キー、要求ファイル、SSL 証明書が含まれる場合があります。バックアップを暗号化するか、安全な場所に移動し、破損のリスクやホストへの不正アクセスを最小限に抑えます。
8.2. 完全バックアップ
Satellite または Capsule Server の完全バックアップには、Satellite または Capsule のインスタンスの復元に必要なすべてのデータベースと設定ファイルが含まれます。
バックアップのコンテンツ
完全バックアップには、以下のファイルが含まれます。
- 圧縮された設定ファイル
- 圧縮された MongoDB ファイル
- 圧縮された PostgreSQL データベースファイル
- Pulp ディレクトリーファイル
- Satellite 環境の詳細を含む設定ファイル
ストレージ要件
完全バックアップでは、ファイルのコピー後に圧縮されるので、(コピーしたファイルと圧縮ファイルの) 両方を保持する十分なストレージが必要です。さらに、アーカイブと圧縮時に作成されるメタデータファイル用に、追加のスペースが必要です。
Satellite または Capsule の完全バックアップでは、以下を合計した値のストレージ量が必要です。
- Satellite データベースおよび設定ファイルのサイズ
- 圧縮された Satellite データベースおよび設定ファイルのサイズ
- 圧縮前および圧縮後のデータベースおよび設定ファイルのサイズの合計の 20%
8.2.1. 完全バックアップサイズの見積もり
バックアップサイズを見積もるには、データベースと設定ファイルで使用する容量の合計を検索します。この結果を使用して、バックアップサイズを計算します。
手順
du
コマンドを使用して、データベースおよび設定ファイルのサイズを検索します。# du -csh /var/lib/mongodb /var/lib/pgsql/data /var/lib/pulp /var/lib/qpidd /var/lib/tftpboot /etc /root/ssl-build /var/www/html/pub /opt/puppetlabs
例:
# du -csh /var/lib/mongodb /var/lib/pgsql/data /var/lib/pulp /var/lib/qpidd /var/lib/tftpboot /etc /root/ssl-build /var/www/html/pub /opt/puppetlabs 480G /var/lib/mongodb 100G /var/lib/pgsql/data 100G /var/lib/pulp 886M /var/lib/qpidd 16M /var/lib/tftpboot 37M /etc 900K /root/ssl-build 100K /var/www/html/pub 2M /opt/puppetlabs 681G total
この例では、ファイルのサイズは 681 GB です。
上記の結果を使用して、圧縮データの保存に必要な容量を計算します。
圧縮データのサイズを見積もる方法の詳細は、「バックアップデータ圧縮率」を参照してください。
この例では、バックアップの圧縮データに 180 GB が必要です。
必要な追加の空き容量を計算します。
必要な追加容量は、圧縮後および圧縮前のファイルの合計の 20% であるため、この例で必要な追加容量は 178 GB です。
上記の結果の合計を計算します。
この例では、次のようになります。
Uncompressed size = 861 GB Compressed size = 180 GB Additional free space required = 172 GB Sum = 1033 GB
この例では、バックアップの見積もりサイズは 1033 GB です。
8.2.2. 完全バックアップのオフライン実行
オフライン方法を使用して完全バックアップを実行します。バックアッププロセスが完了するまでの所要時間は長く、Satellite はこのバックアップ処理中は使用できません。
前提条件
- バックアップ場所には、バックアップを保存するのに十分な空きディスク領域がある。詳細については、「完全バックアップサイズの見積もり」 を参照してください。
-
postgres
ユーザーに、バックアップディレクトリーへの書き込み権限が割り当てられている。
手順
satellite-maintain backup
スクリプトを実行します。# satellite-maintain backup offline /var/backup_directory
バックアップを開始するようにプロンプトが表示されたら、y を入力します。
Do you want to proceed?, [y(yes), q(quit)] y
バックアッププロセスの完了までに長時間かかります。
リンク
-
追加の
satellite-maintain backup
ユーティリティーオプションのリストについては、「バックアップユーティリティーの追加オプション」を参照してください。
8.2.3. 完全バックアップのオンライン実行
問題をデバッグし、トラブルシューティングを行うには、オンライン方法を使用して、完全バックアップを実行します。Satellite はバックアップ処理中でも使用できます。
バックアップを成功させるには、バックアップが完了するまで次の操作を実行しないでください。
- コンテンツビューの公開、追加、または削除
- コンテンツビューバージョンのプロモート
- 同期プランの追加、変更、または削除
- リポジトリーの追加、削除、または同期
バックアッププロセスの完了までに長時間かかります。
前提条件
- バックアップ場所には、バックアップを保存するのに十分な空きディスク領域がある。詳細については、「完全バックアップサイズの見積もり」 を参照してください。
-
postgres
ユーザーに、バックアップディレクトリーへの書き込み権限が割り当てられている。
手順
satellite-maintain backup
スクリプトを実行します。# satellite-maintain backup online /var/backup_directory
バックアップを開始するようにプロンプトが表示されたら、y を入力します。
Do you want to proceed?, [y(yes), q(quit)] y
バックアッププロセスの完了までに長時間かかります。
リンク
-
追加の
satellite-maintain backup
ユーティリティーオプションのリストについては、「バックアップユーティリティーの追加オプション」を参照してください。
8.3. 増分バックアップ
増分バックアップには、前回実行したバックアップ以降に、データベースと設定ファイルに加えられた変更が含まれます。
最初の増分バックアップは完全バックアップをベースとし、その後の増分バックアップは前回のバックアップをベースとします。増分バックアップを使用して Satellite を復元するには、すべての増分バックアップと最初の完全バックアップが必要です。
8.3.1. 増分バックアップのオフライン実行
オフライン方法を使用して、増分バックアップを実行します。Satellite は、バックアップ処理中は使用できません。
前提条件
- 増分バックアップのベースとして使用する前回のバックアップが利用可能であること。
-
postgres
ユーザーに、バックアップディレクトリーへの書き込み権限が割り当てられている。
手順
satellite-maintain backup
スクリプトを実行します。# satellite-maintain backup offline --incremental /var/backup_dir/previous_backup_dir /var/backup_dir
previous_backup_dir を、増分バックアップのベースとして使用する前回のバックアップの名前に置き換えます。
バックアップを開始するようにプロンプトが表示されたら、y を入力します。
Do you want to proceed?, [y(yes), q(quit)] y
リンク
-
追加の
satellite-maintain backup
ユーティリティーオプションのリストについては、「バックアップユーティリティーの追加オプション」を参照してください。
8.3.2. 増分バックアップのオンライン実行
問題をデバッグし、トラブルシューティングを行うには、オンライン方法を使用して、増分バックアップを実行します。Satellite は、バックアップ処理中でも使用できます。
バックアップを成功させるには、バックアップが完了するまで次の操作を実行しないでください。
- コンテンツビューの公開、追加、または削除
- コンテンツビューバージョンのプロモート
- 同期プランの追加、変更、または削除
- リポジトリーの追加、削除、または同期
前提条件
- 増分バックアップのベースとして使用する前回のバックアップが利用可能であること。
-
postgres
ユーザーに、バックアップディレクトリーへの書き込み権限が割り当てられている。
手順
satellite-maintain backup
スクリプトを実行します。# satellite-maintain backup online --incremental /var/backup_dir/previous_backup_dir /var/backup_dir
previous_backup_dir を、増分バックアップのベースとして使用する前回のバックアップの名前に置き換えます。
バックアップを開始するようにプロンプトが表示されたら、y を入力します。
Do you want to proceed?, [y(yes), q(quit)] y
リンク
-
追加の
satellite-maintain backup
ユーティリティーオプションのリストについては、「バックアップユーティリティーの追加オプション」を参照してください。
8.4. Pulp コンテンツを含まないバックアップ
Pulp コンテンツを含まないバックアップでは、Satellite または Capsule Server のリポジトリー情報が除外されます。Pulp データベースに含まれるリポジトリー情報のバックアップは、Satellite バックアッププロセスで最も時間のかかる部分です。--skip-pulp-content
オプションを使用して、Pulp データベースのバックアップをスキップできます。このオプションを使用すると、/var/lib/pulp
ディレクトリーのバックアップが除外されます。
Pulp コンテンツを含まないバックアップから復元することはできません。
8.4.1. Pulp コンテンツを含まないバックアップのオフライン実行
問題をデバッグし、トラブルシューティングを行うには、オフライン方法を使用して、Pulp コンテンツを含まないバックアップを実行します。Satellite は、バックアップ処理中は使用できません。
手順
satellite-maintain backup
スクリプトを実行します。# satellite-maintain backup offline --skip-pulp-content /var/backup_directory
バックアップを開始するようにプロンプトが表示されたら、y を入力します。
Do you want to proceed?, [y(yes), q(quit)] y
rsync
や共有ストレージなどの方法を使用して、/var/lib/pulp
の内容をコピーできます。
リンク
-
追加の
satellite-maintain backup
ユーティリティーオプションのリストについては、「バックアップユーティリティーの追加オプション」を参照してください。
8.4.2. Pulp コンテンツを含まないバックアップのオンライン実行
問題をデバッグしてトラブルシューティングするには、オンライン方法を使用して、Pulp コンテンツを含まないバックアップを作成します。Satellite は、バックアップ処理中でも使用できます。
手順
satellite-maintain backup
スクリプトを実行します。# satellite-maintain backup online --skip-pulp-content /var/backup_directory
バックアップを開始するようにプロンプトが表示されたら、y を入力します。
Do you want to proceed?, [y(yes), q(quit)] y
rsync
や共有ストレージなどの方法を使用して、/var/lib/pulp
の内容をコピーできます。
リンク
-
追加の
satellite-maintain backup
ユーティリティーオプションのリストについては、「バックアップユーティリティーの追加オプション」を参照してください。
8.5. スナップショットのバックアップ
スナップショットのバックアップ方法は、Pulp、MongoDB、および PostgreSQL データベースの論理ボリュームマネージャー (LVM) のスナップショットを作成して、別の論理ボリューム (LV) にマウントします。
satellite-maintain backup
ユーティリティーは、Satellite サービスがアクティブな時にスナップショットを作成し、バックアップに影響のあるサービスのみを停止します。Satellite または Capsule は、スナップショットを作成する場合のみ使用できません。バックアップが成功すると、すべてのサービスが再起動され、LVM スナップショットは削除されます。スナップショットのバックアップは、オフラインでの完全バックアップよりも所要時間が短く、Satellite または Capsule のダウンタイムが短縮されます。
8.5.1. スナップショットバックアップの実行
スナップショットの方法を使用してバックアップを実行します。Satellite は、LVM スナップショットを作成する場合には使用できません。
前提条件
システムで、以下のディレクトリーに対して LVM が使用されていること。
-
/var/lib/pulp/
-
/var/lib/mongodb/
-
/var/lib/pgsql/
-
- 関連ボリュームグループ (VG) の空きディスクスペースが、スナップショットのサイズの 3 倍あること。正確には、VG には新規スナップショットを受け入れるために十分な、メンバーの論理ボリューム (LV) に予約されていないスペースが必要になります。また、LV のいずれかには、バックアップディレクトリー用の十分な空きスペースが必要になります。
- ターゲットのバックアップディレクトリーが、スナップショットを作成するディレクトリー以外の LV にあること。
手順
satellite-maintain backup
スクリプトを実行します。# satellite-maintain backup snapshot /var/backup_directory
バックアップを開始するようにプロンプトが表示されたら、y を入力します。
Do you want to proceed?, [y(yes), q(quit)] y
リンク
-
追加の
satellite-maintain backup
ユーティリティーオプションのリストについては、「バックアップユーティリティーの追加オプション」を参照してください。
8.6. 従来のバックアップ
Red Hat Enterprise Linux システムの従来のバックアップとリカバリーの方法を使用して、Satellite または Capsule Server をバックアップすることもできます。
従来のバックアップを実行する前に、satellite-maintain service stop
コマンドを使用して Satellite サービスを停止し、完了後に satellite-maintain service start
コマンドを使用してサービスを再起動します。
詳細は、『Red Hat Enterprise Linux 7 システム管理者のガイド』の「システムバックアップおよびリカバリー」セクションを参照してください。
8.7. バックアップデータ圧縮率
次の表は、Satellite データベースのデータ圧縮率を示しています。
データ型 | ディレクトリー | 比率 | 圧縮結果の例 |
---|---|---|---|
MongoDB データベースファイル |
|
85 - 90 % |
480 GB |
PostgreSQL データベースファイル |
|
80 - 85% |
100 GB |
Pulp RPM ファイル |
|
(非圧縮) |
100 GB |
設定ファイル |
|
85% |
942 MB |
8.8. バックアップユーティリティーの追加オプション
次の表で、satellite-maintain backup
ユーティリティーで提供される追加オプションについてまとめています。
オプション |
用途 |
例 |
|
確認プロンプトをスキップ。 |
|
|
バックアップのラベル付きのステップをスキップ。ステップラベルのリストを表示するには、 |
|
|
バックアップにカスタム名を指定。 |
|
8.9. オフラインバックアップのスケジュール設定のスクリプト例
完全バックアップとその後の日次増分バックアップの設定
以下のスクリプトでは、日曜日に完全バックアップを実行した後に、増分バックアップを毎日実行します。バックアップが実行されるたびに、新しいサブディレクトリーが作成されます。このスクリプトでは、日次の cron ジョブが必要になります。
satellite-maintain backup
スクリプトでは、PATH
に /sbin
と /usr/sbin
のディレクトリーを指定する必要があります。
#!/bin/bash -e PATH=/sbin:/bin:/usr/sbin:/usr/bin DESTINATION=/var/backup_directory if [[ $(date +%w) == 0 ]]; then satellite-maintain backup offline --assumeyes $DESTINATION else LAST=$(ls -td -- $DESTINATION/*/ | head -n 1) satellite-maintain backup offline --assumeyes --incremental "$LAST" $DESTINATION fi exit 0
8.10. バックアップの方法と種類
次の表では、Satellite バックアップの種類と方法についてまとめています。
バックアップ | 種類 | 方法 | コマンド |
---|---|---|---|
復元 |
完全、増分 |
オフライン |
|
- |
スナップショット |
| |
デバッグ |
Pulp コンテンツなし |
オフライン |
|
完全、増分、Pulp コンテンツなし |
オンライン |
|