5.26. OADP のトラブルシューティング
5.26.1. トラブルシューティング
次の方法を使用して、OADP の問題をトラブルシューティングできます。
- OpenShift CLI ツール または Velero CLI ツール を使用して、Velero カスタムリソース (CR) をデバッグします。Velero CLI ツールは、より詳細なログおよび情報を提供します。
- メモリーまたは CPU の不足により発生する Velero または Restic Pod のクラッシュは、メモリーまたは CPU の不足により Pod がクラッシュまたは再起動する を使用してデバッグします。
- アドミッション Webhook を使用する Velero バックアップの復元に関する回避策 を使用して、Velero およびアドミッション Webhook の問題をデバッグします。
- OADP インストールの問題、OADP Operator の問題、バックアップおよび復元 CR の問題、および Restic の問題 を確認します。
- 利用可能な OADP タイムアウト を使用して、エラー、再試行、または失敗を減らします。
- 
							DataProtectionTest(DPT) カスタムリソースを実行して、バックアップストレージバケットの設定を確認し、永続ボリューム要求に対する CSI スナップショットの準備状況を確認します。
- 
							must-gatherツール を使用してログと CR 情報を収集します。
- OADP モニタリング を利用してワークロードのパフォーマンスを監視および分析します。
5.26.2. Velero CLI ツール
					velero CLI ツールは次の方法で入手できます。
				
- 
							veleroCLI ツールをダウンロードする
- 
							クラスター内の Velero デプロイメント内の veleroバイナリーにアクセスする
5.26.2.1. Velero CLI ツールのダウンロード
Velero のドキュメントページの手順に従って、Velero CLI ツールをダウンロードしてインストールできます。このページには、次のダウンロード方法の手順が記載されています。
- Homebrew を使用した macOS
- GitHub
- Chocolatey を使用した Windows
前提条件
- DNS とコンテナーネットワークが有効になっている、v1.16 以降の Kubernetes クラスターにアクセスできる。
- 
								kubectlをローカルにインストールしている。
手順
- ブラウザーを開き、Velero Web サイト上の "Install the CLI" に移動します。
- macOS、GitHub、または Windows の適切な手順に従います。
- 使用している OADP および OpenShift Container Platform のバージョンに適切な Velero バージョンをダウンロードします。
5.26.2.1.1. OADP、Velero、および OpenShift Container Platform の各バージョンの関係
| OADP のバージョン | Velero のバージョン | OpenShift Container Platform バージョン | 
|---|---|---|
| 1.3.0 | {velero-1.12} | 4.12-4.15 | 
| 1.3.1 | {velero-1.12} | 4.12-4.15 | 
| 1.3.2 | {velero-1.12} | 4.12-4.15 | 
| 1.3.3 | {velero-1.12} | 4.12-4.15 | 
| 1.3.4 | {velero-1.12} | 4.12-4.15 | 
| 1.3.5 | {velero-1.12} | 4.12-4.15 | 
| 1.4.0 | {velero-1.14} | 4.14-4.18 | 
| 1.4.1 | {velero-1.14} | 4.14-4.18 | 
| 1.4.2 | {velero-1.14} | 4.14-4.18 | 
| 1.4.3 | {velero-1.14} | 4.14-4.18 | 
| 1.5.0 | {velero-1.16} | 4.19 | 
5.26.2.2. クラスター内の Velero デプロイメントで Velero バイナリーにアクセスする
shell コマンドを使用して、クラスター内の Velero デプロイメントの Velero バイナリーにアクセスできます。
前提条件
- 
								DataProtectionApplicationカスタムリソースのステータスがReconcile completeである。
手順
- 次のコマンドを使用して、必要なエイリアスを設定します。 - alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero' - $ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.2.3. OpenShift CLI ツールを使用した Velero リソースのデバッグ
						OpenShift CLI ツールを使用して Velero カスタムリソース (CR) と Velero Pod ログを確認することで、失敗したバックアップまたは復元をデバッグできます。
					
手順
- 次の - oc describeコマンドを使用して、- Backupまたは- RestoreCR に関連する警告とエラーの概要を取得します。- oc describe <velero_cr> <cr_name> - $ oc describe <velero_cr> <cr_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次の - oc logsコマンドを使用して、- VeleroPod のログを取得します。- oc logs pod/<velero> - $ oc logs pod/<velero>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次の例に示すように、 - DataProtectionApplicationリソースで Velero のログレベルを指定します。注記- このオプションは、OADP 1.0.3 以降で使用できます。 - Velero ログレベルファイルの例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 次の - logLevel値を使用できます。
- 
								trace
- 
								debug
- 
								info
- 
								warning
- 
								error
- 
								fatal
- panic- ほとんどのログには - info- logLevel値を使用します。
5.26.2.4. Velero CLI ツールを使用した Velero リソースのデバッグ
						Velero CLI ツールを使用して、Backup および Restore カスタムリソース (CR) をデバッグし、ログを取得できます。Velero CLI ツールは、OpenShift CLI ツールよりも詳細な情報を提供します。
					
手順
- oc execコマンドを使用して、Velero CLI コマンドを実行します。- oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> <command> <cr_name> - $ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> <command> <cr_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - oc execコマンドの例- oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql - $ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次の - velero --helpオプションを使用して、すべての Velero CLI コマンドをリスト表示します。- oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ --help - $ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ --help- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次の - velero logsコマンドを使用して、- Backupまたは- RestoreCR のログを取得します。- oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> logs <cr_name> - $ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> logs <cr_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - velero logsコマンドの例- oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ restore logs ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf - $ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ restore logs ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次の - velero describeコマンドを使用して、- Backupまたは- RestoreCR に関連する警告とエラーの概要を取得します。- oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> describe <cr_name> - $ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ <backup_restore_cr> describe <cr_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - velero describeコマンドの例- oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql - $ oc -n openshift-adp exec deployment/velero -c velero -- ./velero \ backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 次の種類の復元エラーと警告が、 - velero describeリクエストの出力に表示されます。
- 
								Velero: Velero 自体の操作に関連するメッセージのリスト (クラウドへの接続、バックアップファイルの読み取りなどに関連するメッセージなど)
- 
								Cluster: クラスタースコープのリソースのバックアップまたは復元に関連するメッセージのリスト
- Namespaces: namespace に保存されているリソースのバックアップまたは復元に関連するメッセージのリスト- これらのカテゴリーのいずれかで 1 つ以上のエラーが発生すると、 - Restore操作のステータスが- PartiallyFailedになり、- Completedではなくなります。警告によって完了ステータスが変化することはありません。- これらの復元エラーは、次の点を考慮してください。 
- 
								リソース固有のエラー、つまり ClusterおよびNamespacesエラーの場合、restore describe --details出力には、Velero によって復元されたすべてのリソースを含むリソースリストが含まれています。このようなエラーが発生したリソースについて、そのリソースが実際にクラスター内にあるかどうかを確認してください。
- describeコマンドの出力に- Veleroエラーがあっても、リソース固有のエラーがない場合は、ワークロードの復元で実際に問題が発生することなく復元が完了した可能性があります。その場合は、復元後のアプリケーションを十分に検証してください。- たとえば、出力に - PodVolumeRestoreまたはノードエージェント関連のエラーが含まれている場合は、- PodVolumeRestoresと- DataDownloadsのステータスを確認します。これらのいずれも失敗しておらず、まだ実行中でもない場合は、ボリュームデータは完全に復元されている可能性があります。
5.26.3. メモリーまたは CPU の不足により Pod がクラッシュまたは再起動する
メモリーまたは CPU の不足により Velero または Restic Pod がクラッシュした場合、これらのリソースのいずれかに対して特定のリソースリクエストを設定できます。リソース要求フィールドの値は、Kubernetes リソース要件と同じ形式に従う必要があります。
					configuration.velero.podConfig.resourceAllocations または configuration.restic.podConfig.resourceAllocations を指定しない場合は、Velero または Restic Pod の次のデフォルトの resources 仕様の設定を参照してください。
				
requests: cpu: 500m memory: 128Mi
requests:
  cpu: 500m
  memory: 128Mi5.26.3.1. Velero Pod のリソースリクエストの設定
						oadp_v1alpha1_dpa.yaml ファイルの configuration.velero.podConfig.resourceAllocations 仕様フィールドを使用して、Velero Pod に対する特定のリソース要求を設定できます。
					
手順
- YAML ファイルで - cpuおよび- memoryリソース要求を設定します。- Velero ファイルの例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- リストされているresourceAllocationsは、平均使用量です。
 
5.26.3.2. Restic Pod のリソースリクエストの設定
						configuration.restic.podConfig.resourceAllocations 仕様フィールドを使用して、Restic Pod の特定のリソース要求を設定できます。
					
							OADP 1.5.0 では、configuration.restic.podConfig.resourceAllocations 仕様フィールドが Data Protection Application (DPA) から削除されます。uploaderType フィールドが Restic ではなく Kopia に設定された nodeAgent セクションを使用します。
						
手順
- YAML ファイルで - cpuおよび- memoryリソース要求を設定します。- Restic ファイルの例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- リストされているresourceAllocationsは、平均使用量です。
 
5.26.3.3. nodeAgent Pod のリソース要求の設定
						configuration.nodeAgent.podConfig.resourceAllocations 仕様フィールドを使用して、nodeAgent Pod の特定のリソース要求を設定できます。
					
							OADP 1.5.0 では、configuration.restic.podConfig.resourceAllocations 仕様フィールドが Data Protection Application (DPA) から削除されます。uploaderType フィールドが Restic ではなく Kopia に設定された nodeAgent セクションを使用します。
						
手順
- YAML ファイルで - cpuおよび- memoryリソース要求を設定します。- nodeAgent.yamlファイルの例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを実行して DPA CR を作成します。 - oc create -f nodeAgent.yaml - $ oc create -f nodeAgent.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
検証
- 次のコマンドを使用して、 - nodeAgentPod が実行されていることを確認します。- oc get pods - $ oc get pods- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- nodeAgentPod のいずれかを記述して、リソース要求を確認します。- oc describe pod node-agent-hbj9l | grep -C 5 Requests - $ oc describe pod node-agent-hbj9l | grep -C 5 Requests- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.4. アドミッション Webhook を使用する Velero バックアップの復元に関する回避策
Velero では、復元中にアドミッション Webhook の問題を解決する機能が限られています。アドミッション Webhook を使用するワークロードがある場合は、追加の Velero プラグインを使用するか、ワークロードの復元方法を変更する必要がある場合があります。
通常、アドミッション Webhook を使用するワークロードでは、最初に特定の種類のリソースを作成する必要があります。これはワークロードに子リソースがある場合に特に当てはまります。アドミッション Webhook は通常、子リソースをブロックするためです。
					たとえば、service.serving.knative.dev などの最上位オブジェクトを作成または復元すると、通常、子リソースが自動的に作成されます。最初にこれを行う場合、Velero を使用してこれらのリソースを作成および復元する必要はありません。これにより、Velero が使用する可能性のあるアドミッション Webhook によって子リソースがブロックされるという問題が回避されます。
				
						Velero プラグインは個別のプロセスとして起動されます。Velero の操作は、成功したかどうかに関係なく完了すると終了します。デバッグログの received EOF, stopping recv loop メッセージは、プラグイン操作が完了したことを示します。エラーが発生したわけではありません。
					
5.26.4.1. Knative リソースの復元
Velero を使用してアドミッション Webhook を使用する Knative リソースをバックアップすると、問題が発生する可能性があります。
						この問題は、アドミッション Webhook を使用する Knative リソースをバックアップおよび復元するときに、常に最上位レベルの Service リソースを復元することで回避できます。
					
手順
- 次のコマンドを使用して、最上位レベルの - service.serving.knavtive.dev Serviceリソースを復元します。- velero restore <restore_name> \ --from-backup=<backup_name> --include-resources \ service.serving.knavtive.dev - $ velero restore <restore_name> \ --from-backup=<backup_name> --include-resources \ service.serving.knavtive.dev- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.4.2. IBM AppConnect リソースの復元
Velero を使用してアドミッション Webhook を持つ IBM® AppConnect リソースを復元するときに問題が発生した場合は、この手順のチェックを実行できます。
手順
- 次のコマンドを入力/実行して、クラスター内に - kind: MutatingWebhookConfigurationの Mutating アドミッションプラグインがあるかどうかを確認します。- oc get mutatingwebhookconfigurations - $ oc get mutatingwebhookconfigurations- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
								各 kind: MutatingWebhookConfigurationの YAML ファイルを調べて、問題が発生しているオブジェクトの作成をブロックするルールがないことを確認します。詳細は、Kubernetes の公式ドキュメント を参照してください。
- 
								バックアップ時に使用される type: Configuration.appconnect.ibm.com/v1beta1のspec.versionが、インストールされている Operator のサポート対象であることを確認してください。
5.26.4.3. Velero プラグインのパニックエラーの回避
シークレットが欠落していると、イメージストリームのバックアップ中に Velero プラグインでパニックエラーが発生する可能性があります。
						バックアップと Backup Storage Location (BSL) が Data Protection Application (DPA) のスコープ外で管理されている場合、OADP コントローラーによって関連する oadp-<bsl_name>-<bsl_provider>-registry-secret パラメーターが作成されません。
					
						バックアップ操作中に、OpenShift Velero プラグインが imagestream バックアップでパニックになり、次のパニックエラーが発生します。
					
024-02-27T10:46:50.028951744Z time="2024-02-27T10:46:50Z" level=error msg="Error backing up item" backup=openshift-adp/<backup name> error="error executing custom action (groupResource=imagestreams.image.openshift.io, namespace=<BSL Name>, name=postgres): rpc error: code = Aborted desc = plugin panicked: runtime error: index out of range with length 1, stack trace: goroutine 94…
024-02-27T10:46:50.028951744Z time="2024-02-27T10:46:50Z" level=error msg="Error backing up item"
backup=openshift-adp/<backup name> error="error executing custom action (groupResource=imagestreams.image.openshift.io,
namespace=<BSL Name>, name=postgres): rpc error: code = Aborted desc = plugin panicked:
runtime error: index out of range with length 1, stack trace: goroutine 94…Velero プラグインのパニックエラーを回避するには、次の回避策を使用します。
手順
- 次のコマンドを使用して、カスタムの BSL に適切なラベルを付けます。 - oc label backupstoragelocations.velero.io <bsl_name> app.kubernetes.io/component=bsl - $ oc label backupstoragelocations.velero.io <bsl_name> app.kubernetes.io/component=bsl- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- BSL にラベルを付けた後、DPA がリコンサイルされるまで待ちます。 注記- DPA 自体に軽微な変更を加えることで、強制的に調整を行うことができます。 
検証
- DPA がリコンサイルされたら、次のコマンドを入力して、パラメーターが作成され、正しいレジストリーデータがそこに入力されていることを確認します。 - oc -n openshift-adp get secret/oadp-<bsl_name>-<bsl_provider>-registry-secret -o json | jq -r '.data' - $ oc -n openshift-adp get secret/oadp-<bsl_name>-<bsl_provider>-registry-secret -o json | jq -r '.data'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.4.4. OpenShift ADP コントローラーのセグメンテーション違反の回避策
						cloudstorage と restic の両方を有効にして Data Protection Application (DPA) を設定すると、openshift-adp-controller-manager Pod がクラッシュし、クラッシュループセグメンテーション違反で Pod が失敗するまで無期限に再起動します。
					
						DPA を設定するときに、velero または cloudstorage のうちどちらか一方を定義してください。そうしないと、openshift-adp-controller-manager Pod が、次の設定によりクラッシュループセグメンテーション違反で失敗します。
					
- 
								veleroとcloudstorageを両方とも定義すると、openshift-adp-controller-managerは失敗します。
- 
								veleroとcloudstorageを両方とも定義しないと、openshift-adp-controller-managerは失敗します。
この問題の詳細は、OADP-1054 を参照してください。
5.26.5. OADP インストールの問題
Data Protection Application (DPA) をインストールするときに、無効なディレクトリーや誤った認証情報の使用すると、問題が発生することがあります。
5.26.5.1. バックアップストレージ内の無効なディレクトリーの解決
						オブジェクトストレージには、Velero ディレクトリーではないトップレベルのディレクトリーが含まれています。Velero Pod のログに次のエラーメッセージが表示されます。
					
Backup storage contains invalid top-level directories.
Backup storage contains invalid top-level directories.手順
- 
								オブジェクトストレージが Velero 専用でない場合は、DataProtectionApplicationマニフェストでspec.backupLocations.velero.objectStorage.prefixパラメーターを設定して、バケットの接頭辞を指定する必要があります。
5.26.5.2. 誤った AWS 認証情報の解決
						Secret オブジェクトの作成に使用される credentials-velero ファイルの形式が正しくない場合、次の例を含む複数のエラーが発生する可能性があります。
					
- oadp-aws-registryPod のログに次のエラーメッセージが表示されます。- `InvalidAccessKeyId: The AWS Access Key Id you provided does not exist in our records.` - `InvalidAccessKeyId: The AWS Access Key Id you provided does not exist in our records.`- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- VeleroPod のログに次のエラーメッセージが表示されます。- NoCredentialProviders: no valid providers in chain. - NoCredentialProviders: no valid providers in chain.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
手順
- 次の例に示すように、 - credentials-veleroファイルの形式が正しいことを確認します。- サンプル - credentials-veleroファイル- [default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY - [default]- 1 - aws_access_key_id=AKIAIOSFODNN7EXAMPLE- 2 - aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.6. OADP Operator の問題
OpenShift API for Data Protection (OADP) Operator では、解決できない問題が原因で問題が発生する可能性があります。
5.26.6.1. OADP Operator のサイレント障害の解決
						OADP Operator の S3 バケットが空である可能性があるのに、oc get po -n <oadp_operator_namespace> コマンドを実行すると、Operator のステータスとして Running が表示されます。
					
このような場合、Operator が実行中であると誤って報告されるため、サイレント障害 が発生したとみなされます。この問題は、クラウド認証情報で提供される権限が不十分な場合に発生します。
この問題を解決するには、Backup Storage Location (BSL) のリストを取得し、各 BSL のマニフェストで認証情報の問題を確認します。
手順
- OpenShift または Velero コマンドラインインターフェイス (CLI) を使用して、BSL のリストを取得します。 - OpenShift CLI ( - oc) を使用して BSL のリストを取得します。- oc get backupstoragelocations.velero.io -A - $ oc get backupstoragelocations.velero.io -A- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- veleroCLI を使用して BSL のリストを取得します。- velero backup-location get -n <oadp_operator_namespace> - $ velero backup-location get -n <oadp_operator_namespace>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 前のステップの BSL のリストを使用して、次のコマンドを実行し、各 BSL のマニフェストにエラーがないか調べます。 - oc get backupstoragelocations.velero.io -n <namespace> -o yaml - $ oc get backupstoragelocations.velero.io -n <namespace> -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 結果の例: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.7. OADP タイムアウト
タイムアウトを延長すると、複雑なプロセスやリソースを大量に消費するプロセスが途中で終了することなく正常に完了できます。この設定により、エラー、再試行、または失敗を減らすことができます。
過度に長いタイムアウトを設定しないように、論理的な方法でタイムアウト延長のバランスをとってください。過度に長いと、プロセス内の根本的な問題が隠れる可能性があります。プロセスのニーズとシステム全体のパフォーマンスに応じて適切なタイムアウト値を検討および監視してください。
次の各 OADP タイムアウトで、関連するパラメーターを実装すべき状況と手順を説明します。
5.26.7.1. Restic タイムアウトの実装
						spec.configuration.nodeAgent.timeout パラメーターは、Restic タイムアウトを定義します。デフォルト値は 1h です。
					
						次に該当する場合は、nodeAgent セクションで Restic timeout パラメーターを使用してください。
					
- PV データの使用量の合計が 500GB を超える Restic バックアップの場合。
- バックアップが次のエラーでタイムアウトになる場合: - level=error msg="Error backing up item" backup=velero/monitoring error="timed out waiting for all PodVolumeBackups to complete" - level=error msg="Error backing up item" backup=velero/monitoring error="timed out waiting for all PodVolumeBackups to complete"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
手順
- DataProtectionApplicationカスタムリソース (CR) マニフェストの- spec.configuration.nodeAgent.timeoutブロックの値を編集します。次に例を示します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.7.2. Velero リソースタイムアウトの実装
						resourceTimeout は Velero カスタムリソース定義 (CRD) の可用性、volumeSnapshot の削除、リポジトリーの可用性など、タイムアウトが発生する前に複数の Velero リソースを待機する時間を定義します。デフォルトは 10m です。
					
						resourceTimeout は次の場合に使用してください。
					
- PV データの合計使用量が 1 TB を超えるバックアップの場合。このパラメーターは、バックアップを完了としてマークする前に、Velero が Container Storage Interface (CSI) スナップショットをクリーンアップまたは削除しようとするときのタイムアウト値として使用されます。 - このクリーンアップのサブタスクが VSC のパッチ適用を試行します。このタイムアウトはそのタスクに使用できます。
 
- Restic または Kopia のファイルシステムベースのバックアップのバックアップリポジトリーを作成または準備できるようにするため。
- カスタムリソース (CR) またはバックアップからリソースを復元する前に、クラスター内で Velero CRD が利用可能かどうかを確認します。
手順
- 次の例に示すように、 - DataProtectionApplicationCR マニフェストの- spec.configuration.velero.resourceTimeoutブロックの値を編集します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.7.2.1. Velero のデフォルトアイテム操作タイムアウトの実装
							defaultItemOperationTimeout 設定は、非同期の BackupItemActions と RestoreItemActions が完了するのを、タイムアウトするまでにどのくらいの時間待機するかを定義します。デフォルト値は 1h です。
						
							以下のシナリオでは、defaultItemOperationTimeout を使用します。
						
- Data Mover 1.2.x のみ。
- 特定のバックアップまたは復元が非同期アクションの完了を待機する時間を指定します。OADP 機能のコンテキストでは、この値は、Container Storage Interface (CSI) Data Mover 機能に関連する非同期アクションに使用されます。
- 
									defaultItemOperationTimeoutが、defaultItemOperationTimeoutを使用して Data Protection Application (DPA) に定義されている場合、バックアップおよび復元操作の両方に適用されます。itemOperationTimeoutでは、以下の "Item operation timeout - restore" セクションおよび "Item operation timeout - backup" セクションで説明されているように、バックアップのみを定義するか、これらの CR の復元のみを定義できます。
手順
- 次の例に示すように、 - DataProtectionApplicationCR マニフェストの- spec.configuration.velero.defaultItemOperationTimeoutブロックの値を編集します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.7.3. Data Mover タイムアウトの実装
						timeout は、VolumeSnapshotBackup および VolumeSnapshotRestore を完了するためにユーザーが指定したタイムアウトです。デフォルト値は 10m です。
					
						次のシナリオでは、Data Mover timeout を使用します。
					
- 
								VolumeSnapshotBackups(VSB) およびVolumeSnapshotRestores(VSR) を作成する場合は、10 分後にタイムアウトします。
- 
								合計 PV データ使用量が 500GB を超える大規模環境向け。1hのタイムアウトを設定します。
- 
								VolumeSnapshotMover(VSM) プラグインを使用します。
- OADP 1.1.x のみ。
手順
- 次の例に示すように、 - DataProtectionApplicationCR マニフェストの- spec.features.dataMover.timeoutブロックの値を編集します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.7.4. CSI スナップショットタイムアウトの実装
						CSISnapshotTimeout は、タイムアウトとしてエラーを返す前に、CSI VolumeSnapshot ステータスが ReadyToUse になるまで待機する作成時の時間を指定します。デフォルト値は 10m です。
					
						以下のシナリオでは、CSISnapshotTimeout を使用します。
					
- CSI プラグイン。
- スナップショットの作成に 10 分以上かかる可能性がある非常に大規模なストレージボリュームの場合。ログにタイムアウトが見つかった場合は、このタイムアウトを調整します。
							通常、CSISnapshotTimeout のデフォルト値は、デフォルト設定で大規模なストレージボリュームに対応できるため、調整する必要はありません。
						
手順
- 次の例に示すように、 - BackupCR マニフェストの- spec.csiSnapshotTimeoutブロックの値を編集します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.7.5. アイテム操作タイムアウトの実装 - 復元
						ItemOperationTimeout 設定は、RestoreItemAction 操作を待機する時間を指定します。デフォルト値は 1h です。
					
						以下のシナリオでは、復元 ItemOperationTimeout を使用します。
					
- Data Mover 1.2.x のみ。
- 
								Data Mover の場合は、BackupStorageLocationにアップロードおよびダウンロードします。タイムアウトに達しても復元アクションが完了しない場合、失敗としてマークされます。ストレージボリュームのサイズが大きいため、タイムアウトの問題が原因で Data Mover の操作が失敗する場合は、このタイムアウト設定を増やす必要がある場合があります。
手順
- 次の例に示すように、 - RestoreCR マニフェストの- Restore.spec.itemOperationTimeoutブロックの値を編集します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.7.6. アイテム操作タイムアウトの実装 - バックアップ
						ItemOperationTimeout 設定は、非同期の BackupItemAction 操作を待機する時間を指定します。デフォルト値は 1h です。
					
						次のシナリオでは、バックアップ ItemOperationTimeout を使用します。
					
- Data Mover 1.2.x のみ。
- 
								Data Mover の場合は、BackupStorageLocationにアップロードおよびダウンロードします。タイムアウトに達してもバックアップアクションが完了しない場合は、失敗としてマークされます。ストレージボリュームのサイズが大きいため、タイムアウトの問題が原因で Data Mover の操作が失敗する場合は、このタイムアウト設定を増やす必要がある場合があります。
手順
- 次の例に示すように、 - BackupCR マニフェストの- Backup.spec.itemOperationTimeoutブロックの値を編集します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.8. バックアップおよび復元 CR の問題
					Backup および Restore カスタムリソース (CR) では、次のような一般的な問題が発生することがあります。
				
- Backup CR がボリュームを取得できない
- Backup CR のステータスが進行中のままになる
- 
							Backup CR のステータスが、PartiallyFailedフェーズ/状態などのままになる
5.26.8.1. Backup CR がボリュームを取得できない問題のトラブルシューティング
						永続ボリューム (PV) とスナップショットの場所が異なるリージョンにある場合、Backup カスタムリソース (CR) が次のエラーメッセージを表示します。
					
サンプルエラー
InvalidVolume.NotFound: The volume ‘vol-xxxx’ does not exist.
InvalidVolume.NotFound: The volume ‘vol-xxxx’ does not exist.手順
- 
								DataProtectionApplicationマニフェストのspec.snapshotLocations.velero.config.regionキーの値を編集して、スナップショットの場所が PV と同じリージョンにあるようにします。
- 
								新しい BackupCR を作成します。
5.26.8.2. Backup CR のステータスが進行中のままになる問題のトラブルシューティング
						バックアップが中断された場合に再開できず、Backup カスタムリソース (CR) のステータスが InProgress フェーズのままになり、完了しません。
					
手順
- 次のコマンドを実行して、 - BackupCR の詳細を取得します。- oc -n {namespace} exec deployment/velero -c velero -- ./velero \ backup describe <backup>- $ oc -n {namespace} exec deployment/velero -c velero -- ./velero \ backup describe <backup>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを実行して、 - BackupCR を削除します。- oc delete backups.velero.io <backup> -n openshift-adp - $ oc delete backups.velero.io <backup> -n openshift-adp- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 進行中の - BackupCR によるオブジェクトストレージへのファイルアップロードは完了していないため、バックアップの場所をクリーンアップする必要はありません。
- 
								新しい BackupCR を作成します。
- 次のコマンドを実行して、Velero バックアップの詳細を表示します。 - velero backup describe <backup_name> --details - $ velero backup describe <backup_name> --details- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.8.3. Backup CR のステータスが部分的に失敗のままになる問題のトラブルシューティング
						Restic が使用されていない Backup CR のステータスが PartiallyFailed フェーズのままで、完了しません。関連する PVC のスナップショットは作成されません。
					
						CSI スナップショットクラスに基づいて作成されたバックアップにラベルがない場合、CSI スナップショットプラグインがスナップショットの作成に失敗します。その結果、Velero Pod が次のメッセージに類似したエラーをログに記録します。
					
time="2023-02-17T16:33:13Z" level=error msg="Error backing up item" backup=openshift-adp/user1-backup-check5 error="error executing custom action (groupResource=persistentvolumeclaims, namespace=busy1, name=pvc1-user1): rpc error: code = Unknown desc = failed to get volumesnapshotclass for storageclass ocs-storagecluster-ceph-rbd: failed to get volumesnapshotclass for provisioner openshift-storage.rbd.csi.ceph.com, ensure that the desired volumesnapshot class has the velero.io/csi-volumesnapshot-class label" logSource="/remote-source/velero/app/pkg/backup/backup.go:417" name=busybox-79799557b5-vprq
time="2023-02-17T16:33:13Z" level=error msg="Error backing up item" backup=openshift-adp/user1-backup-check5 error="error executing custom action (groupResource=persistentvolumeclaims, namespace=busy1, name=pvc1-user1): rpc error: code = Unknown desc = failed to get volumesnapshotclass for storageclass ocs-storagecluster-ceph-rbd: failed to get volumesnapshotclass for provisioner openshift-storage.rbd.csi.ceph.com, ensure that the desired volumesnapshot class has the velero.io/csi-volumesnapshot-class label" logSource="/remote-source/velero/app/pkg/backup/backup.go:417" name=busybox-79799557b5-vprq手順
- 次のコマンドを実行して - BackupCR を削除します。- oc delete backups.velero.io <backup> -n openshift-adp - $ oc delete backups.velero.io <backup> -n openshift-adp- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
								必要に応じて、BackupStorageLocationリソースに保存されているデータをクリーンアップして、領域を解放します。
- 次のコマンドを実行して、 - velero.io/csi-volumesnapshot-class=trueラベルを- VolumeSnapshotClassオブジェクトに適用します。- oc label volumesnapshotclass/<snapclass_name> velero.io/csi-volumesnapshot-class=true - $ oc label volumesnapshotclass/<snapclass_name> velero.io/csi-volumesnapshot-class=true- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
								新しい BackupCR を作成します。
5.26.9. Restic の問題
Restic を使用してアプリケーションをバックアップすると、次の問題が発生することがあります。
- 
							root_squashリソース/パラメーターが有効な NFS データボリュームの Restic 権限エラー
- 
							バケットを空にした後に Restic BackupCR を再作成できない
- OpenShift Container Platform 4.14 で、Pod Security Admission (PSA) ポリシーの変更により、Restic の復元が部分的に失敗する
5.26.9.1. NFS データボリュームの Restic 権限エラーのトラブルシューティング
						NFS データボリュームで root_squash パラメーターが有効になっていて、Restic マップが nfsnobody 値に設定されており、バックアップを作成する権限がない場合は、Restic の Pod ログに次のエラーメッセージが表示されます。
					
サンプルエラー
controller=pod-volume-backup error="fork/exec/usr/bin/restic: permission denied".
controller=pod-volume-backup error="fork/exec/usr/bin/restic: permission denied".
						この問題は、Restic 用の補助グループを作成し、グループの ID を DataProtectionApplication マニフェストに追加することで解決できます。
					
手順
- 
								NFS データボリューム上に Resticの補足グループを作成します。
- 
								NFS ディレクトリーに setgidビットを設定して、グループの所有権が継承されるようにします。
- spec.configuration.nodeAgent.supplementalGroupsパラメーターとグループ ID を- DataProtectionApplicationマニフェストに追加します。次に例を示します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 補助グループ ID を指定します。
 
- 
								ResticPod が再起動し、変更が適用されるまで待機します。
5.26.9.2. バケットを空にした後に Restic Backup CR を再作成できない問題のトラブルシューティング
						Restic ディレクトリーがオブジェクトストレージから削除された場合、Velero が ResticRepository マニフェストから Restic リポジトリーを再作成または更新しません。詳細は、Velero issue 4421 を参照してください。
					
						ある namespace に Restic Backup CR を作成し、オブジェクトストレージバケットを空にしてから、同じ namespace に Backup CR を再作成すると、再作成した Backup CR が失敗します。この場合、velero Pod のログに次のエラーメッセージが表示されます。
					
サンプルエラー
stderr=Fatal: unable to open config file: Stat: The specified key does not exist.\nIs there a repository at the following location?
stderr=Fatal: unable to open config file: Stat: The specified key does not exist.\nIs there a repository at the following location?手順
- 次のコマンドを実行して、関連する Restic リポジトリーを namespace から削除します。 - oc delete resticrepository openshift-adp <name_of_the_restic_repository> - $ oc delete resticrepository openshift-adp <name_of_the_restic_repository>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 次のエラーログでは、 - mysql-persistentが問題のある Restic リポジトリーです。わかりやすくするために、リポジトリーの名前は斜体で表示されます。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.9.3. OpenShift Container Platform 4.14 で PSA ポリシーの変更により Restic 復元が部分的に失敗する問題のトラブルシューティング
OpenShift Container Platform 4.14 は、Restic 復元プロセス中に Pod の準備を妨げる可能性のある Pod Security Admission (PSA) ポリシーを適用します。
						Pod の作成時に SecurityContextConstraints (SCC) リソースが見つからず、Pod 上の PSA ポリシーが必要な標準を満たすように設定されていないと、Pod の許可は拒否されます。
					
この問題は、Velero のリソース復元順序が原因で発生します。
サンプルエラー
手順
- DPA カスタムリソース (CR) で、Velero サーバーの - restore-resource-prioritiesフィールドを確認または設定して、- securitycontextconstraintsがリソースのリストの- podsの前に順番にリストされていることを確認します。- oc get dpa -o yaml - $ oc get dpa -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - DPA CR の例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 既存のリストアリソース優先順位リストがある場合は、その既存のリストを完全なリストと組み合わせてください。
 
- デプロイメントの警告が発生しないように、Fixing PodSecurity Admission warnings for deployments で説明されているように、アプリケーション Pod のセキュリティー標準が調整されていることを確認します。アプリケーションがセキュリティー標準に準拠していない場合は、SCC に関係なくエラーが発生する可能性があります。
この解決策は一時的なものであり、これに対処するために継続的な議論が進行中です。
5.26.10. OADP データ保護テスト
					DataProtectionTest (DPT) は、OADP 設定を検証するためのフレームワークを提供するカスタムリソース (CR) です。DPT CR は次のパラメーターの情報をチェックし、報告します。
				
- オブジェクトストレージへのバックアップのアップロードパフォーマンス。
- 永続ボリューム要求に対する CSI スナップショットの準備状況。
- 暗号化やバージョン管理などのストレージバケットの設定。
DPT CR のこの情報を使用することで、データ保護環境が適切に設定され、指定された設定に従って動作していることを確認できます。
5.26.10.1. OADP DataProtectionTest CR 仕様フィールド
						DataProtectionTest (DPT) カスタムリソース (CR) で次の仕様フィールドを設定できます。
					
| フィールド | 型 | 説明 | 
|---|---|---|
| 
										 | string | 
										 | 
| 
										 | object | 
										 | 
| 
										 | object | オブジェクトストレージへのアップロード速度テストを実行するための設定。 | 
| 
										 | list | スナップショットを取得し、スナップショットの準備状態を確認するための永続ボリューム要求のリスト。 | 
| 
										 | boolean | 
										ステータスが  | 
| 
										 | boolean | 
										 | 
5.26.10.2. OADP DataProtectionTest CR ステータスフィールド
						次のステータスフィールドを使用して、DataProtectionTest (DPT) カスタムリソース (CR) のステータスを確認できます。
					
| フィールド | 型 | 説明 | 
|---|---|---|
| 
										 | string | 
										DPT CR の現在のフェーズ。値は  | 
| 
										 | timestamp | DPT CR が最後に実行されたときのタイムスタンプ。 | 
| 
										 | object | アップロード速度テストの結果。 | 
| 
										 | object | ストレージバケットの暗号化とバージョン管理に関する情報。 | 
| 
										 | list | 各永続ボリューム要求のスナップショットテストの結果。 | 
| 
										 | string | 
										スナップショットの合格/不合格をまとめた結果たとえば、 | 
| 
										 | string | AWS S3 互換のストレージバケットベンダー。たとえば、AWS、MinIO、Ceph などです。 | 
| 
										 | string | DPT CR が失敗した場合のエラーメッセージ。 | 
5.26.10.3. DataProtectionTest カスタムリソースの使用
						DataProtectionTest (DPT) カスタムリソース (CR) を設定し、DPT CR を実行して、Container Storage Initiative (CSI) スナップショットの準備状況とストレージバケットへのデータアップロードパフォーマンスを確認できます。
					
前提条件
- 
								cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにログインしている。
- 
								OpenShift CLI (oc) がインストールされている。
- OADP Operator がインストールされている。
- 
								DataProtectionApplication(DPA) CR が作成されている。
- バックアップを保存するバックアップ保存場所 (BSL) を設定した。
- 別の namespace で実行されている永続ボリューム要求 (PVC) を持つアプリケーションがある。
手順
- 例に示すように、DPT CR のマニフェストファイルを作成します。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを実行して DPT CR を作成します。 - oc create -f <dpt_file_name> - $ oc create -f <dpt_file_name>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- DPT マニフェストのファイル名を指定します。
 
検証
- 次のコマンドを実行して、DPT CR のフェーズが - Completeであることを確認します。- oc get dpt dpt-sample - $ oc get dpt dpt-sample- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例は次のとおりです。 - NAME PHASE LASTTESTED UPLOADSPEED(MBPS) ENCRYPTION VERSIONING SNAPSHOTS AGE dpt-sample Complete 17m 546 AES256 Enabled 2/2 passed 17m - NAME PHASE LASTTESTED UPLOADSPEED(MBPS) ENCRYPTION VERSIONING SNAPSHOTS AGE dpt-sample Complete 17m 546 AES256 Enabled 2/2 passed 17m- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを実行して、CSI スナップショットが準備され、データアップロードテストが成功したことを確認します。 - oc get dpt dpt-sample -o yaml - $ oc get dpt dpt-sample -o yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例は次のとおりです。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.10.4. バックアップ保存場所の仕様を設定してデータ保護テストを実行する
						BSL 名の代わりにバックアップストレージ場所 (BSL) の仕様を指定して、DataProtectionTest (DPT) カスタムリソース (CR) を設定できます。次に、DPT CR を実行して、Container Storage Initiative (CSI) スナップショットの準備状況と、ストレージバケットへのデータアップロードパフォーマンスを確認します。
					
前提条件
- 
								cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにログインしている。
- 
								OpenShift CLI (oc) がインストールされている。
- OADP Operator がインストールされている。
- 
								DataProtectionApplication(DPA) CR が作成されている。
- バックアップを保存するためのバケットが設定されている。
- 
								バケットストレージにアクセスするための Secretオブジェクトが作成されている。
- 別の namespace で実行されている永続ボリューム要求 (PVC) を持つアプリケーションがある。
手順
- 例に示すように、DPT CR のマニフェストファイルを作成します。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- クラウドプロバイダーなどの詳細を指定して、BSL 仕様を設定します。
- 2
- バケット名を指定します。この例では、バケット名はsample-bucketです。
- 3
- クラウドプロバイダーのリージョンを指定します。
- 4
- ストレージバケットのクラウド認証情報を指定します。
- 5
- (オプション)fileSizeとtimeoutフィールドを指定して、uploadSpeedTestConfigオブジェクトを設定します。
- 6
- csiVolumeSnapshotTestConfigsオブジェクトを設定します。
- 7
- DPT CR 実行中に TLS 証明書の検証をスキップするには、trueに設定します。
 
- 次のコマンドを実行して DPT CR を作成します。 - oc create -f <dpt_file_name> - $ oc create -f <dpt_file_name>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- DPT マニフェストのファイル名を指定します。
 
検証
- 次のコマンドを実行して、DPT CR のフェーズが - Completeであることを確認します。- oc get dpt dpt-sample - $ oc get dpt dpt-sample- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例は次のとおりです。 - NAME PHASE LASTTESTED UPLOADSPEED(MBPS) ENCRYPTION VERSIONING SNAPSHOTS AGE dpt-sample Complete 17m 546 AES256 Enabled 2/2 passed 17m - NAME PHASE LASTTESTED UPLOADSPEED(MBPS) ENCRYPTION VERSIONING SNAPSHOTS AGE dpt-sample Complete 17m 546 AES256 Enabled 2/2 passed 17m- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.10.5. Azure オブジェクトストレージでデータ保護テストを実行する
						Azure オブジェクトストレージで OADP を使用している場合は、シークレットオブジェクトの一部として Azure STORAGE_ACCOUNT_ID を指定する必要があります。Azure クラスターで DataProtectionTest (DPT) カスタムリソース (CR) を実行するには、次の手順に従います。
					
前提条件
- 
								cluster-adminロールを持つユーザーとして Azure クラスターにログインしている。
- 
								OpenShift CLI (oc) がインストールされている。
- OADP Operator がインストールされている。
- バックアップを保存するためのバケットが設定されている。
- 別の namespace で実行されている永続ボリューム要求 (PVC) を持つアプリケーションがある。
手順
- DPT 実行の失敗を回避するには、Azure - storageAccountオブジェクトに- Storage Blob Data Contributorロールを追加します。以下のコマンドを実行します。- az role assignment create \ --assignee "$AZURE_CLIENT_ID" \ --role "Storage Blob Data Contributor" \ --scope "/subscriptions/$AZURE_SUBSCRIPTION_ID/resourceGroups/$AZURE_RESOURCE_GROUP/providers/Microsoft.Storage/storageAccounts/$AZURE_STORAGE_ACCOUNT_ID" - $ az role assignment create \ --assignee "$AZURE_CLIENT_ID" \ --role "Storage Blob Data Contributor" \ --scope "/subscriptions/$AZURE_SUBSCRIPTION_ID/resourceGroups/$AZURE_RESOURCE_GROUP/providers/Microsoft.Storage/storageAccounts/$AZURE_STORAGE_ACCOUNT_ID"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ターミナルで、Azure パラメーターをエクスポートし、次の例に示すようにパラメーターを含むシークレット認証情報ファイルを作成します。 - Azure で DPT CR を実行するには、シークレット認証情報ファイルで - STORAGE_ACCOUNT_IDパラメーターを指定する必要があります。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次の例に示すように、 - SecretCR を作成します。- oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=<credentials_file_path> - $ oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=<credentials_file_path>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次の例に示す設定を使用して、 - DataProtectionApplication(DPA) CR を作成します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- Secretオブジェクトの名前を指定します。この例では、名前は- cloud-credentials-azureです。
 
- 次の例に示すように、バックアップストレージの場所 (BSL) の名前、 - VolumeSnapshotClassオブジェクト、および永続ボリューム要求の詳細を指定して、DPT CR を作成します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- DPT CR を実行して、スナップショットの準備状況を確認します。
5.26.10.6. DataProtectionTest カスタムリソースのトラブルシューティング
						次の表を使用して、DataProtectionTest (DPT) カスタムリソース (CR) を実行するときに発生する一般的な問題をトラブルシューティングします。
					
| エラー | 理由 | 解決方法 | 
|---|---|---|
| 
										DPT が  | バケットの認証情報またはバケットへのアクセス失敗 | 
										 | 
| アップロードテストに失敗した | 
										不正な  | 
										 | 
| スナップショットテストが失敗する | CSI スナップショットコントローラーの設定が正しくありません | 
										 | 
| バケットの暗号化またはバージョン管理が設定されていない | クラウドプロバイダーの制限 | すべてのオブジェクトストレージプロバイダーがこれらのフィールドを一貫して公開するわけではありません。 | 
5.26.11. must-gather ツールの使用
					must-gather ツールを使用して、OADP カスタムリソースのログおよび情報を収集できます。must-gather データはすべてのカスタマーケースに添付する必要があります。
				
					must-gather ツールはコンテナーであり、常に実行される訳ではありません。このツールは、must-gather コマンドを実行して起動した後、数分間のみ動作します。
				
5.26.11.1. must-gather ツールの使用
						以下のオプションを指定して must-gather ツールを実行できます。オプションを使用するには、該当するオプションに対応するフラグを must-gather コマンドに追加します。
					
- デフォルト設定
- 
									この設定は、OADP Operator がインストールされているすべての namespace の Pod ログ、OADP、および Veleroカスタムリソース (CR) 情報を収集します。
- Timeout
- 
									失敗した BackupCR が多数ある場合は、データ収集に長い時間がかかる可能性があります。タイムアウト値を設定することでパフォーマンスを向上させることができます。
- 非セキュアな TLS 接続
- 
									カスタム CA 証明書を使用する場合は、非セキュアな TLS 接続とともに must-gatherツールを使用します。
						must-gather ツールは、収集した情報で Markdown 出力ファイルを生成します。Markdown ファイルはクラスターディレクトリーにあります。
					
						サポートされるフラグの詳細は、次の例に示すように、must-gather ツールで help フラグを使用します。
					
oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather -h
$ oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather -h前提条件
- 
								cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにログインしている。
- 
								OpenShift CLI (oc) がインストールされている。
手順
- 
								must-gatherデータを保存するディレクトリーに移動します。
- 次のデータ収集オプションのいずれかに対して、 - oc adm must-gatherコマンドを実行します。- must-gatherツールのデフォルト設定を使用するには、以下のコマンドを実行します。- oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 - $ oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- must-gatherツールで timeout フラグを使用するには、以下のコマンドを実行します。- oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather --request-timeout 1m - $ oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather --request-timeout 1m- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- この例では、タイムアウトは 1 分です。
 
- must-gatherツールで非セキュアな TLS 接続フラグを使用するには、以下のコマンドを実行します。- oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather --skip-tls - $ oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather --skip-tls- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 非セキュアな TLS 接続と timeout フラグの組み合わせを - must-gatherツールで使用するには、以下のコマンドを実行します。- oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather --request-timeout 15s --skip-tls - $ oc adm must-gather --image=registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather --request-timeout 15s --skip-tls- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- この例では、タイムアウトは 15 秒です。デフォルトでは、--skip-tlsフラグの値はfalseです。安全でない TLS 接続を許可するには、値をtrueに設定します。
 
 
検証
- 
								Markdown 出力ファイルが次の場所に生成されていることを確認します: must-gather.local.89…054550/registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5-sha256-0…84/clusters/a4…86/oadp-must-gather-summary.md
- Markdown プレビューワーでファイルを開き、Markdown ファイルで - must-gatherデータを確認します。出力例は、以下のイメージを参照してください。この出力ファイルを Red Hat カスタマーポータル で作成したサポートケースにアップロードできます。- 図5.2 must-gather ツールのマークダウン出力の例 
5.26.12. OADP モニタリング
OpenShift Container Platform モニタリングスタックを使用すると、ユーザーと管理者は次のタスクを効果的に実行できます。
- クラスターを監視および管理する
- ユーザーアプリケーションのワークロードパフォーマンスを分析する
- クラスター上で実行されているサービスを監視する
- イベントが発生した場合にアラートを受信する
5.26.12.1. OADP モニタリングの設定
OADP Operator は、OpenShift のモニタリングスタックによって提供される OpenShift ユーザーワークロードモニタリングを利用して、Velero サービスエンドポイントからメトリクスを取得します。モニタリングスタックを使用すると、ユーザー定義のアラートルールを作成したり、OpenShift メトリクスのクエリーフロントエンドを使用してメトリクスを照会したりできます。
ユーザーワークロードモニタリングを有効にすると、Grafana などの Prometheus 互換のサードパーティー UI を設定して使用し、Velero メトリクスを視覚化することができます。
						メトリクスを監視するには、ユーザー定義プロジェクトの監視を有効にし、openshift-adp namespace に存在するすでに有効な OADP サービスエンドポイントからそのプロジェクトのメトリクスを取得するための ServiceMonitor リソースを作成する必要があります。
					
Prometheus メトリクスに対する OADP サポートはベストエフォートで提供されており、完全にはサポートされていません。
モニタリングスタックの設定の詳細は、ユーザーワークロードモニタリングの設定 を参照してください。
前提条件
- 
								cluster-adminパーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。
- クラスター監視 config map が作成されました。
手順
- 次のコマンドを使用して、 - openshift-monitoringnamespace の- cluster-monitoring-config- ConfigMapオブジェクトを編集します。- oc edit configmap cluster-monitoring-config -n openshift-monitoring - $ oc edit configmap cluster-monitoring-config -n openshift-monitoring- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを使用して、 - dataセクションの- config.yamlフィールドで- enableUserWorkloadオプションを追加または有効にします。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- このオプションを追加するか、trueに設定します
 
- しばらく待ってから、 - openshift-user-workload-monitoringnamespace で次のコンポーネントが稼働していることを確認し、ユーザーワークロードモニタリングのセットアップを確認します。- oc get pods -n openshift-user-workload-monitoring - $ oc get pods -n openshift-user-workload-monitoring- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- openshift-user-workload-monitoringに- user-workload-monitoring-configConfigMap が存在することを確認します。存在する場合、この手順の残りの手順はスキップしてください。- oc get configmap user-workload-monitoring-config -n openshift-user-workload-monitoring - $ oc get configmap user-workload-monitoring-config -n openshift-user-workload-monitoring- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Error from server (NotFound): configmaps "user-workload-monitoring-config" not found - Error from server (NotFound): configmaps "user-workload-monitoring-config" not found- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ユーザーワークロードモニタリングの - user-workload-monitoring-config- ConfigMapオブジェクトを作成し、- 2_configure_user_workload_monitoring.yamlファイル名に保存します。- 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを使用して、 - 2_configure_user_workload_monitoring.yamlファイルを適用します。- oc apply -f 2_configure_user_workload_monitoring.yaml - $ oc apply -f 2_configure_user_workload_monitoring.yaml configmap/user-workload-monitoring-config created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
5.26.12.2. OADP サービスモニターの作成
						OADP は openshift-adp-velero-metrics-svc サービスを提供します。このサービスは Data Protection Application (DPA) の設定時に作成されます。ユーザーワークロードモニタリングのサービスモニターは、この定義されたサービスを参照する必要があります。サービスの詳細を取得するには、次の手順を実行します。
					
手順
- openshift-adp-velero-metrics-svcサービスが存在することを確認します。このサービスには、- ServiceMonitorオブジェクトのセレクターとして使用される- app.kubernetes.io/name=veleroラベルが含まれているはずです。- oc get svc -n openshift-adp -l app.kubernetes.io/name=velero - $ oc get svc -n openshift-adp -l app.kubernetes.io/name=velero- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE openshift-adp-velero-metrics-svc ClusterIP 172.30.38.244 <none> 8085/TCP 1h - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE openshift-adp-velero-metrics-svc ClusterIP 172.30.38.244 <none> 8085/TCP 1h- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 既存のサービスラベルと一致する - ServiceMonitorYAML ファイルを作成し、そのファイルを- 3_create_oadp_service_monitor.yamlとして保存します。サービスモニターは- openshift-adp-velero-metrics-svcサービスが存在する- openshift-adpnamespace に作成されます。- ServiceMonitorオブジェクトの例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 3_create_oadp_service_monitor.yamlファイルを適用します。- oc apply -f 3_create_oadp_service_monitor.yaml - $ oc apply -f 3_create_oadp_service_monitor.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - servicemonitor.monitoring.coreos.com/oadp-service-monitor created - servicemonitor.monitoring.coreos.com/oadp-service-monitor created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
検証
- OpenShift Container Platform Web コンソールの Administrator パースペクティブを使用して、新しいサービスモニターが Up 状態であることを確認します。サービスモニターが Up 状態になるまで数分間待ちます。 - 
										Observe Targets ページに移動します。 
- 
										Filter が選択されていないこと、または User ソースが選択されていることを確認し、Text検索フィールドにopenshift-adpと入力します。
- サービスモニターの Status のステータスが Up であることを確認します。 - 図5.3 OADP のメトリクスターゲット 
 
- 
										Observe 
5.26.12.3. アラートルールの作成
OpenShift Container Platform モニタリングスタックは、アラートルールを使用して設定されたアラートを受信します。OADP プロジェクトのアラートルールを作成するには、ユーザーワークロードモニタリングで収集されたメトリクスの 1 つを使用します。
手順
- サンプルの - OADPBackupFailingアラートを含む- PrometheusRuleYAML ファイルを作成し、- 4_create_oadp_alert_rule.yamlとして保存します。- OADPBackupFailingアラートのサンプル- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - このサンプルでは、アラートは次の条件で表示されます。 - 過去 2 時間において、失敗した新規バックアップの数が 0 よりも多く、その状態が少なくとも 5 分間持続した場合。
- 
										失敗が最初に検知されてから 5 分未満の場合、アラートは Pending状態になり、その後Firing状態に変わります。
 
- 4_create_oadp_alert_rule.yamlファイルを適用して、- openshift-adpnamespace に- PrometheusRuleオブジェクトを作成します。- oc apply -f 4_create_oadp_alert_rule.yaml - $ oc apply -f 4_create_oadp_alert_rule.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - prometheusrule.monitoring.coreos.com/sample-oadp-alert created - prometheusrule.monitoring.coreos.com/sample-oadp-alert created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
検証
- アラートがトリガーされた後は、次の方法でアラートを表示できます。 - Developer パースペクティブで、Observe メニューを選択します。
- Observe - Alerting メニューの下の Administrator パースペクティブで、Filter ボックスの User を選択します。それ以外の場合、デフォルトでは Platform アラートのみが表示されます。 - 図5.4 OADP のバックアップ失敗アラート 
 
5.26.12.4. 利用可能なメトリクスのリスト
						OADP によって提供される Velero メトリクスとその Types のリストは、次の表を参照してください。
					
| メトリクス名 | 説明 | 型 | 
|---|---|---|
| 
										 | バックアップのサイズ (バイト単位) | ゲージ | 
| 
										 | 既存のバックアップの現在の数 | ゲージ | 
| 
										 | 試行されたバックアップの合計数 | Counter | 
| 
										 | 成功したバックアップの合計数 | Counter | 
| 
										 | 部分的に失敗したバックアップの合計数 | Counter | 
| 
										 | 失敗したバックアップの合計数 | Counter | 
| 
										 | 検証に失敗したバックアップの合計数 | Counter | 
| 
										 | バックアップの完了にかかる時間 (秒単位) | ヒストグラム | 
| 
										 | 
										メトリクス  | Counter | 
| 
										 | 
										メトリクス  | Counter | 
| 
										 | 
										メトリクス  | Counter | 
| 
										 | 試行されたバックアップ削除の合計数 | Counter | 
| 
										 | 成功したバックアップ削除の合計数 | Counter | 
| 
										 | 失敗したバックアップ削除の合計数 | Counter | 
| 
										 | 最後にバックアップが正常に実行された時刻、秒単位の Unix タイムスタンプ | ゲージ | 
| 
										 | バックアップされたアイテムの総数 | ゲージ | 
| 
										 | バックアップ中に発生したエラーの合計数 | ゲージ | 
| 
										 | 警告されたバックアップの総数 | Counter | 
| 
										 | バックアップの最終ステータス。値 1 は成功、0 は失敗です。 | ゲージ | 
| 
										 | 現在の既存のリストアの数 | ゲージ | 
| 
										 | 試行された復元の合計数 | Counter | 
| 
										 | 検証に失敗したリストアの失敗の合計数 | Counter | 
| 
										 | 成功した復元の合計数 | Counter | 
| 
										 | 部分的に失敗したリストアの合計数 | Counter | 
| 
										 | 失敗したリストアの合計数 | Counter | 
| 
										 | 試行されたボリュームスナップショットの総数 | Counter | 
| 
										 | 成功したボリュームスナップショットの総数 | Counter | 
| 
										 | 失敗したボリュームスナップショットの総数 | Counter | 
| 
										 | CSI が試行したボリュームスナップショットの合計数 | Counter | 
| 
										 | CSI が成功したボリュームスナップショットの総数 | Counter | 
| 
										 | CSI で失敗したボリュームスナップショットの総数 | Counter | 
5.26.12.5. Observe UI を使用したメトリクスの表示
						OpenShift Container Platform Web コンソールでは、Administrator または Developer パースペクティブからメトリクスを表示できます。これには、openshift-adp プロジェクトへのアクセス権が必要です。
					
手順
- Observe - Metrics ページに移動します。 - Developer パースペクティブを使用している場合は、次の手順に従います。 - Custom query を選択するか、Show PromQL リンクをクリックします。
- クエリーを入力し、Enter をクリックします。
 
- Administrator パースペクティブを使用している場合は、テキストフィールドに式を入力し、Run Queries を選択します。 - 図5.5 OADP のメトリクスクエリー 
 
 
     
     
    