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 ツールは次の方法で入手できます。
-
velero
CLI ツールをダウンロードする -
クラスター内の 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
またはRestore
CR に関連する警告とエラーの概要を取得します。oc describe <velero_cr> <cr_name>
$ oc describe <velero_cr> <cr_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の
oc logs
コマンドを使用して、Velero
Pod のログを取得します。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
またはRestore
CR のログを取得します。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
またはRestore
CR に関連する警告とエラーの概要を取得します。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: 128Mi
5.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
検証
次のコマンドを使用して、
nodeAgent
Pod が実行されていることを確認します。oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nodeAgent
Pod のいずれかを記述して、リソース要求を確認します。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-registry
Pod のログに次のエラーメッセージが表示されます。`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 Velero
Pod のログに次のエラーメッセージが表示されます。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 velero
CLI を使用して 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 が利用可能かどうかを確認します。
手順
次の例に示すように、
DataProtectionApplication
CR マニフェストの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 の復元のみを定義できます。
手順
次の例に示すように、
DataProtectionApplication
CR マニフェストの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 のみ。
手順
次の例に示すように、
DataProtectionApplication
CR マニフェストの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
のデフォルト値は、デフォルト設定で大規模なストレージボリュームに対応できるため、調整する必要はありません。
手順
次の例に示すように、
Backup
CR マニフェストの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 の操作が失敗する場合は、このタイムアウト設定を増やす必要がある場合があります。
手順
次の例に示すように、
Restore
CR マニフェストの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 の操作が失敗する場合は、このタイムアウト設定を増やす必要がある場合があります。
手順
次の例に示すように、
Backup
CR マニフェストの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 と同じリージョンにあるようにします。 -
新しい
Backup
CR を作成します。
5.26.8.2. Backup CR のステータスが進行中のままになる問題のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
バックアップが中断された場合に再開できず、Backup
カスタムリソース (CR) のステータスが InProgress
フェーズのままになり、完了しません。
手順
次のコマンドを実行して、
Backup
CR の詳細を取得します。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 次のコマンドを実行して、
Backup
CR を削除します。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 進行中の
Backup
CR によるオブジェクトストレージへのファイルアップロードは完了していないため、バックアップの場所をクリーンアップする必要はありません。-
新しい
Backup
CR を作成します。 次のコマンドを実行して、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
手順
次のコマンドを実行して
Backup
CR を削除します。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 -
新しい
Backup
CR を作成します。
5.26.9. Restic の問題 リンクのコピーリンクがクリップボードにコピーされました!
Restic を使用してアプリケーションをバックアップすると、次の問題が発生することがあります。
-
root_squash
リソース/パラメーターが有効な NFS データボリュームの Restic 権限エラー -
バケットを空にした後に Restic
Backup
CR を再作成できない - 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 を指定します。
-
Restic
Pod が再起動し、変更が適用されるまで待機します。
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 の現在のフェーズ。値は |
| タイムスタンプ | 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 次の例に示すように、
Secret
CR を作成します。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
-
失敗した
Backup
CR が多数ある場合は、データ収集に長い時間がかかる可能性があります。タイムアウト値を設定することでパフォーマンスを向上させることができます。 - 非セキュアな 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-monitoring
namespace の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-monitoring
namespace で次のコンポーネントが稼働していることを確認し、ユーザーワークロードモニタリングのセットアップを確認します。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-config
ConfigMap が存在することを確認します。存在する場合、この手順の残りの手順はスキップしてください。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 既存のサービスラベルと一致する
ServiceMonitor
YAML ファイルを作成し、そのファイルを3_create_oadp_service_monitor.yaml
として保存します。サービスモニターはopenshift-adp-velero-metrics-svc
サービスが存在するopenshift-adp
namespace に作成されます。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
アラートを含むPrometheusRule
YAML ファイルを作成し、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-adp
namespace に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 のメトリクスクエリー