バックアップ BLOB の欠落により PVC の Velero 復元が失敗する
search cancel

バックアップ BLOB の欠落により PVC の Velero 復元が失敗する

book

Article ID: 422072

calendar_today

Updated On:

Products

Tanzu Kubernetes Runtime VMware Tanzu Kubernetes Grid Management

Issue/Introduction

免責事項:これは英文の記事「Velero Restore Failure for PVC Due to Missing Backup Blobs」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


特定の PersistentVolumeClaim(PVC)に対する Velero のリストア操作が失敗しますが、バックアップ自体は正常に完了しています。
リストア中、Velero はバックアップロケーションからデータを読み取れないというエラーを報告します。これは通常、データパスサービスまたは kopia リストア処理の失敗として現れます。

以下のエラーを伴う Velero リストア失敗:

restore error: failed to read data from remote file unexpected content error: error getting cached content from blob <blob-ID> unable to complete GetBlob(<blob-ID>) despite multiple retries: unexpected EOF 

 

velero restore logs:

level=info msg="adding persistentvolumes /<PVC-ID> to ItemBlock" backup=velero/<backup-name> logSource="pkg/backup/backup.go:641" level=info msg="Backing up item" backup=velero/<backup-name> logSource="pkg/backup/item_backupper.go:184" name=<PVC-ID> resource=persistentvolumes level=info msg="Executing takePVSnapshot" backup=velero/<backup-name> logSource="pkg/backup/item_backupper.go:549" name=<PVC-ID> resource=persistentvolumes level=info msg="performing snapshot action for pv <PVC-ID>" backup=velero/<backup-name> logSource="internal/volumehelper/volume_policy_helper.go:95" level=info msg="Skipping snapshot of persistent volume <PVC-ID>, because it's handled by CSI plugin." backup=velero/<backup-name> logSource="pkg/backup/item_backupper.go:576" level=info msg="Skipping item because it's already been backed up." backup=velero/<backup-name> logSource="pkg/backup/item_backupper.go:179" name=<PVC-ID> resource=persistentvolumes 

 

kopia content verify を実行すると、Blob 参照の欠落が表示されます:

Listing blobs... Listed <number-of-blobs> blobs. Verifying all contents... ERROR error content <content-ID> depends on missing blob <blob-ID> ERROR error content <content-ID> depends on missing blob <blob-ID> Finished verifying <total-contents>, found <error-count> errors. ERROR encountered <error-count> errors 

kopia snapshot verify を実行すると、スナップショット検証中に欠落した Blob が確認されます:

Listing blobs... Listed <number-of-blobs> blobs. Processed <object-count> objects (<size>). ERROR error processing <snapshot-ID>: object <object-ID> is backed by missing blob <blob-ID> Finished processing <object-count> objects (<size>). ERROR encountered <error-count> errors 

Environment

Tanzu Kubernetes Grid Management 
Velero

Cause

根本原因は、オブジェクトストア内のバックアップ Blob が欠落または破損していたことと特定されました。
Velero のリストアは PVC に関連する Blob データを読み取ろうとしますが、コンテンツが欠落しているため読み取りに失敗します。
Kopia の検証(snapshot verify および content verify)により、複数のオブジェクトが欠落した Blob により保持されていたことが確認されました。
このメタデータと Blob の整合性欠如により、バックアップが成功しているように見えても、リストアが失敗する原因となります。

Resolution

データ整合性を確保し、リストア問題を解決するために、以下の手順を実施しました:

1. Velero のバックアップロケーションを変更

破損または欠落した Blob への依存を避けるため、新しいバックアップストレージロケーションを構成してください。必要に応じて以下のコマンドを修正してご利用ください:

velero install --provider aws --bucket <new-bucket-name> --secret-file <path-to-credentials> --plugins <aws-plugin-image> --backup-location-config region=<region>,s3ForcePathStyle="true",s3Url=http://<object-store-endpoint>,publicUrl=http://<object-store-endpoint> --use-node-agent --uploader-type=kopia --features=EnableCSI 

2. 新規バックアップおよびリストアの実行