5.2. OADP リリースノート
5.2.1. OADP 1.6 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 1.6 の新機能、解決済みの問題、既知の問題、テクノロジープレビュー機能、削除された機能、およびその他の追加事項を確認してください。
OADP に関する詳細は、OpenShift API for Data Protection (OADP) FAQ を参照してください。
5.2.1.1. OADP 1.6.2 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 1.6.2 のリリースノートには、新機能、解決済みおよび既知の問題、テクノロジープレビュー機能が記載されています。
OADP 1.6.2 では、以下の Red Hat Security アドバイザリー (RHSA) が利用可能です。
5.2.1.1.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OADP は、クラスタープロキシーリソースを使用して、信頼できる CA
ConfigMap をバックアップします。 バックアップにクラスタープロキシーリソースが含まれる場合、OADP は、その
spec.trustedCAフィールドで参照されるConfigMap をopenshift-config名前空間にも含めます。これにより、名前空間またはリソースフィルターがConfigMap を除外した場合でも、プロキシーの信頼済み証明書認証局 (CA) 設定が復元のために保持されます。- 秘密鍵で裏付けられた CA 証明書は、バックアップ保存場所を編集することなくローテーションをサポートします。
caCertRefを使用すると、Kubernetes シークレットで認証局 (CA) 証明書を参照できます。CloudStorage の設定で CA 証明書をインラインで指定すると、OADP はシークレットを作成および管理し、結果として得られるバックアップストレージの場所がその参照を使用するように設定します。DataProtectionApplication(DPA) カスタムリソースやバックアップ保存場所を編集することなく、シークレットを更新することで証明書をローテーションできます。caCertRef を直接指定すると、OADP はその参照をそのまま渡すため、秘密鍵を自分で管理できます。- OADP ネットワークポリシーは、無関係なワークロードをブロックすることなく、その設定要素を分離します。
OADPOperator は、インストールネームスペース内の OADP 管理対象ワークロードのネットワークポリシーを作成および調整します。これらのコンポーネント固有のポリシーは、Ingress と Egress を制限しつつ、設定済みのバックアップストレージ場所へのアクセスを含む、バックアップとリストアに必要なトラフィックを許可します。名前空間全体に適用されるデフォルト拒否ポリシーとは異なり、Red Hat Advanced Cluster Management のクラスターバックアップコントローラーなど、関連性のないワークロードを隔離することはありません。クラスターバックアップコントローラーは、必要なネットワークアクセスを維持できます。
5.2.1.1.2. 解決された問題 リンクのコピーリンクがクリップボードにコピーされました!
VolumeGroupSnapshot のバックアップは、スナップショットが早すぎるタイミングで削除された場合でも失敗しなくなりました。このアップデート以前は、OADP はグループのメンバー
VolumeSnapshots を処理中にVolumeGroupSnapshot(VGS) とそのバインドされたVolumeGroupSnapshotContent(VGSC) を削除していました。Container Storage Interface (CSI) スナップショットコントローラーは、OADP がバックアップを完了するためにまだ必要としていたVolumeSnapshotリソースを削除できます。その結果、ボリュームスナップショットが見つからないというエラーが発生し、バックアップが部分的に失敗する可能性があります。今回のリリースでは、OADP はバックアップが最終状態に達するまで VGS および VGSC のクリーンアップを延期します。その結果、OADP はクリーンアップ前にグループメンバーの処理を完了でき、バックアップを正常に完了できます。- バックアップの検証が失敗した後も、バックアップキューは処理を継続します。
このアップデート以前は、バックアップストレージの場所が一時的に利用できない場合など、デキューされた
バックアップがすぐに検証に失敗した場合、競合状態によって古いキュー追跡エントリーが残ってしまう可能性がありました。古いエントリーが存在すると、場所が復旧した後でも、キューが後続のバックアップを取り出すことができなくなる可能性があります。今回のアップデートにより、バックアップがバックアップリコンサイラーに表示される前にトラッカーが更新されるため、キューが永久に停止してしまうことを防ぎます。- オブジェクトタグが設定されていない場合でも、S3 互換ストレージへのバックアップが失敗しなくなりました。
このアップデート以前は、バックアップストレージの場所でオブジェクトタグが設定されていない場合、Amazon Web Services (AWS) プラグインは空の x-amz-tagging ヘッダーを送信していました。その結果、一部の S3 互換ストレージプロバイダーが
velero-backup.jsonファイルへの書き込み要求を拒否し、バックアップが失敗しました。今回のリリースでは、タグが設定されていない場合、AWS プラグインは x-amz-tagging ヘッダーを省略します。その結果、影響を受ける S3 互換ストレージプロバイダーへのバックアップは正常に完了します。CloudStorage でリージョンを指定すると、Google Cloud WIF のバックアップ場所が引き続き利用可能になります。このアップデート以前は、Google Cloud Workload Identity Federation (WIF) 用の
CloudStorageカスタムリソース (CR) でリージョンを指定すると、OADP はその値をBackupStorageLocation(BSL) 設定にもコピーしていました。Google Cloud プラグインは、この BSL 設定におけるリージョン設定をサポートしていません。その結果、無効な設定エラーが発生し、BSL が利用できなくなりました。今回のリリースでは、OADP は AWS STS プロバイダーの場合のみ BSL 設定にリージョンを追加し、その他のプロバイダーについては、リコンシリエーション時にCloudStorageをバックエンドとする BSL からサポートされていないspec.config.regionエントリーを削除します。その結果、CloudStorageCR でリージョンが指定されている場合、Google Cloud WIF BSL は引き続き利用可能です。- OADP コンテナーには、活性、準備状況、および起動プローブが含まれます。
このアップデート以前は、OADP コマンドラインインターフェイス (CLI) および仮想マシンデータ保護 (VMDP) コンテナーには、Kubernetes ヘルスプローブ (生存、準備状況、起動) が設定されていませんでした。その結果、ワークロードは、Pod、ホスト、ネットワークの問題など、一般的な障害から自動的に復旧することができなかった。今回のリリースでは、OADP Operator にデプロイされたコンテナーに対するライブネス、レディネス、およびスタートアッププローブが追加されます。その結果、ワークロードは Kubernetes のネイティブなヘルスチェックメカニズムを利用して、障害から自己復旧し、信頼性の高いアプリケーショントラフィックルーティングを確保できます。
- OADP ワークロード Pod は専用のサービスアカウントを使用します
今回のアップデート以前は、
openshift-adp名前空間内のoadp-cli-serverワークロード Pod は、ワークロード専用のサービスアカウントではなく、デフォルトのサービスアカウントを使用していました。その結果、デプロイメント検証中にアクセス制御の検証チェックが失敗した。今回のリリースにより、専用の有効なサービスアカウントがこれらのワークロード Pod に適切に割り当てられるようになりました。その結果、すべての OADP ワークロード Pod はアクセス制御検証に準拠し、クラスターのセキュリティー標準を満たしています。- OADP は、リポジトリー保守ジョブが強制終了された際にパニックを起こさなくなった。
今回のアップデート以前は、リポジトリーのメンテナンスジョブが強制終了された場合、最終メンテナンスのタイムスタンプが記録されず、メンテナンス履歴が不完全な状態になる可能性がありました。リコンシリエーション中に、OADP は欠落していたタイムスタンプを参照できず、パニック状態に陥った。その結果、OADPPod は
BackupRepositoryカスタムリソースの処理中に再起動しました。今回のリリースでは、OADP はメンテナンスタイムスタンプを使用する前に、それらが存在するかどうかを確認するようになりました。その結果、OADP はパニックを起こすことなくBackupRepository を調整します。- ラベル選択された仮想マシンバックアップは、ゲストのフリーズおよび展開フックを実行します。
このアップデート以前は、ラベルセレクターを使用して仮想マシン (VM) は含めるが、その
仮想ランチャーPod は含めないように設定したバックアップでは、バックアップ前後のフックを実行せずに、Pod が追加項目として含まれてしまう可能性がありました。その結果、virt-freezerフックはゲストファイルシステムをフリーズおよび展開せず、バックアップはアプリケーション整合性ではなくクラッシュ整合性となった。今回のリリースでは、KubeVirtプラグインがバックアップ処理中に仮想マシンとその関連リソースをグループ化するようになりました。その結果、ラベルセレクターが仮想マシンのみを選択した場合でも、設定されたゲストのフリーズおよび展開フックが実行されます。KubeVirt仮想マシンのバックアップには、参照されているNetworkAttachmentDefinitionが含まれます。今回のアップデート以前は、
KubeVirtVelero プラグインは、仮想マシンが参照するNetworkAttachmentDefinitions(NAD) をバックアップ依存関係グラフに含めていませんでした。今回のアップデートにより、プラグインはこれらの NAD を仮想マシンのバックアップおよび復元処理に含めるため、参照されているネットワークリソースが仮想マシンに含まれるようになります。- Google Cloud WIF を使用した
CloudStorageバケットの作成が成功しました 今回のアップデート以前は、Workload Identity Federation (WIF) 認証を使用している場合、
CloudStorageリソースは Google Cloud バケットが存在しないことを検出できませんでした。その結果、BucketCheckError状態が報告され、バケットは作成されませんでした。今回のリリースにより、OADP は、Google Cloud Storage クライアントから返されるラップされたエラーを含む、バケットが見つからないエラーを正しく識別できるようになりました。その結果、Operator はリコンシリエーション中にバケットを作成します。- OpenShift Virtualization を使用せずに KubeVirt DataMover プラグインを有効にすると、PVC バックアップが完了します。
このアップデート以前は、OpenShift Virtualization のないクラスターで
kubevirt-datamoverプラグインが有効になっている場合、永続ボリューム要求 (PVC) バックアップアクションは仮想マシン (VM) をリスト表示しようとしていました。KubeVirtAPI が欠落していたため、バックアップが部分的に失敗した状態で終了しました。今回のリリースでは、プラグインがkubevirt.ioAPI グループが存在するかどうかを確認し、存在しない場合は仮想マシンの所有権検索をスキップします。PVC バックアップ処理が継続され、バックアップから警告が報告されました。- ノードエージェントのデータムーバー Pod は、設定された優先度クラスを使用します。
このアップデート以前は、OADP は
spec.configuration.nodeAgent.podConfigのpriorityClassName をノードエージェントDaemonSetに適用していましたが、ノードエージェントConfigMapには含めていませんでした。その結果、ノードエージェントによって起動されたデータムーバー Pod はデフォルトの優先度を使用し、リソースが逼迫するとプリエンプトされる可能性がありました。今回のリリースでは、OADP はノードエージェントのConfigMapに設定済みの優先度クラスを含めるようになりました。その結果、ノードエージェントのデータムーバー Pod は、DataProtectionApplicationカスタムリソースで設定された優先度クラスを使用します。- ノードエージェントの再起動によって、他のノードでのデータアップロードがキャンセルされなくなりました。
今回のアップデート以前は、ノードエージェントを 1 つ再起動すると、OADP が受け入れたすべてのデータアップロードをキャンセルしてしまうという問題が発生していました。これには、他のノードエージェント Pod によって処理されたアップロードも含まれていました。その結果、バックアップが失敗したり、バックアップキューが長時間ブロックされたままになる可能性があります。今回のリリースでは、OADP はノードエージェントの再起動時に、他のノードエージェント Pod によって管理されているアップロードをキャンセルすることなく処理できるようになりました。その結果、影響を受けていないアップロードは完了し、バックアップ処理も継続できます。
- DPA アノテーションと
ConfigMap の変更により、Operator の再起動なしにリコンシリエーションがトリガーされます。 このアップデート以前は、
DataProtectionApplication(DPA) のoadp.openshift.io/unsupported-velero-server-argsまたはoadp.openshift.io/unsupported-node-agent-server-argsアノテーション、あるいはこれらのアノテーションによって参照されるConfigMapへの変更は、リコンシリエーションをトリガーしませんでした。そのため、更新されたサーバー引数は、OADPOperator が再起動されるまで適用されない場合があります。今回のリリースでは、Operator はこれらのアノテーションの変更を検出し、参照されているConfigMap を監視することで、Operator を再起動することなく DPA を調整し、更新された設定を適用します。- 管理者以外のバックアップ説明レポートは、完了した Pod ボリュームのバックアップを報告します。
このアップデート以前は、ファイルシステムのバックアップが正常に完了した場合でも、
oc oadp nonadmin backup describeコマンドを実行すると、Pod ボリュームのバックアップが含まれていないと報告されることがありました。今回のアップデートにより、コマンドは完了した Pod ボリュームのバックアップを報告するようになり、--detailsオプションではボリュームレベルの情報が表示されるようになりました。- Ceph RBD ストレージクラスで CSI
VolumeGroupSnapshotの復元が失敗しなくなりました 今回のアップデート以前は、Ceph RBD ストレージからバックアップされた
VolumeGroupSnapshot(VGS) を復元しようとすると、cannot find the group snapshot for VolumeSnapshotというエラーメッセージが表示されて失敗していました。このエラーは、Velero がバックアップ後にVolumeGroupSnapshotContentを削除し、復元時に一致するリソースが残らないことが原因で発生していました。また、復元されたVolumeSnapshotContentからVolumeSnapshotClassNameが削除されるため、Container Storage Interface (CSI) コントローラーがスナップショットを検証するために認証することができませんでした。今回のアップデートにより、Velero がバックアップ時にグループスナップショットハンドルをアノテーションとして保持し、復元時にスタブVolumeGroupSnapshotContentを再作成し、正しいVolumeSnapshotClass参照を復元するようになりました。その結果、VGS を使用した Ceph RBD の復元が正常に完了するようになりました。VGS はテクノロジープレビュー機能であることに注意してください。- ユーザーが指定した名前空間で仮想マシンファイルの復元が完了しました。
このアップデート以前は、仮想マシンファイル復元で
spec.restoreNamespaceが指定された場合、仮想マシンファイル復元コントローラーはその名前空間にファイルサーバーのサービスアカウントと特権セキュリティーコンテキスト制約 (SCC) ロールバインディングを作成しませんでした。その結果、サービスアカウントが見つからなかったため、ファイルサーバーの Pod 作成が失敗し、復元も失敗しました。今回のリリースでは、コントローラーは指定された名前空間に必要なアクセスリソースを作成し、クリーンアップ中に復元された永続ボリューム要求 (PVC) を削除する権限を持つようになりました。その結果、ファイルの復元が完了し、コントローラーはユーザーが指定した名前空間を削除することなく、リソースをクリーンアップできます。ImageStream のバックアップは、プロモーションされたイメージのソースタグが削除されると失敗します。このアップデート以前は、別の名前空間から昇格されたイメージを含む
ImageStream をバックアップする場合、OADP はソース名前空間のイメージリポジトリーを使用してイメージをコピーしていました。保持ポリシーによってソースタグが削除された場合、そのリポジトリーはもはやイメージダイジェストを提供しなくなります。その結果、不明なマニフェストエラーが発生し、バックアップが失敗しました。今回のリリースでは、OADP はバックアップ対象のImageStreamのイメージをリポジトリーからコピーするようになりました。その結果、ソースタグが削除された後でもバックアップを完了できます。- AWS S3 バケットリージョンは、
CloudStorage をバックエンドとするBackupStorageLocation設定で自動的に検出されます。 このアップデート以前は、バケットリージョンが明示的に設定されていない Amazon Web Services (AWS)S3 バックアップストレージの場所を使用すると、Kopia リポジトリーの初期化と Container Storage Interface (CSI) スナップショットのデータ移動バックアップが失敗する可能性がありました。今回のリリースでは、リージョンが明示的に設定されていない場合、OADP Operator が
CloudStorage をバックエンドとするBackupStorageLocationの AWS S3 バケットリージョンを自動的に検出し、設定します。これにより、バックアップ時のリージョン検出の失敗を防ぐことができます。この自動検出機能は、カスタムの S3 互換エンドポイントではなく、AWS S3 に適用されることに注意してください。- 組み込みデータムーバーでノードエージェントが実行されていない場合、バックアップはすぐに失敗します。
このアップデート以前は、Container Storage Interface (CSI) スナップショットデータ移動を使用したバックアップは、ノードエージェント Pod が実行されていない場合、タイムアウトするまで
WaitingForPluginOperations状態のままになることがありました。今回のアップデートにより、OADP はスナップショットデータの移動を開始する前に、実行中のノードエージェントの有無を確認し、バックアップの失敗を速やかに報告するようになりました。このチェックは、内蔵の OADP データムーバーに適用されます。
5.2.1.1.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
ImageStream のバックアップが Azure STS で失敗するOADP が Security Token Service (STS) を使用して Microsoft Azure にデプロイされている場合、
ImageStreamバックアップは、azure: DefaultAzureCredential: トークンの取得に失敗しました、などのエラーで失敗します。既知の回避策はありません。
VolumeGroupSnapshotバックアップは、ラベルがボリュームポリシーで除外されている PVC と一致する場合に失敗する可能性があります。Velero が
VolumeGroupSnapshot(VGS) を作成する際、spec.volumeGroupSnapshotLabelKeyで指定されたラベルキーを使用して、永続ボリューム要求 (PVC) を選択します。Container Storage Interface (CSI) スナップショットコントローラーは、ボリュームポリシーによってバックアップ対象から除外されている場合でも、そのラベルが付いた PVC を選択することができます。選択された PVC が非 CSI ストレージドライバーまたは異なる CSI ドライバーを使用している場合、VGS の作成が失敗し、バックアップが部分的に失敗する可能性があります。この問題を回避するには、専用の VGS ラベルを使用し、スナップショットをまとめて取得する CSI にバックアップされた PVC にのみ適用してください。
spec.volumeGroupSnapshotLabelKeyをそのラベルに設定します。これにより、VGS セレクターがボリュームポリシーによって除外された PVC に一致することを防ぎます。その結果、グループスナップショットには意図した PVC のみが含まれる。
5.2.1.1.4. テクノロジープレビュー機能 リンクのコピーリンクがクリップボードにコピーされました!
KubeVirt仮想マシンの増分 QCOW2 バックアップ (テクノロジープレビュー)OADP は、テクノロジープレビュー機能として、
KubeVirt仮想マシン (VM) 向けのストレージに依存しない QCOW2 増分バックアップを導入します。この機能は、libvirtツールを使用して増分 QCOW2 バックアップを実行することで、従来のVolumeSnapshotベースのバックアップに代わる軽量な方法を提供します。最初の完全バックアップの後、以降のバックアップでは変更されたブロックのみが取得されます。そのため、Container Storage Interface (CSI) スナップショット方式と比較して、バックアップのパフォーマンスが向上し、リソース使用量が削減されます。これにより、実行中の仮想マシンのパフォーマンスへの影響を最小限に抑えつつ、より頻繁なバックアップスケジュールが可能になります。この機能を使用するには、仮想マシンディスクで QEMU バックアップを有効にし (
CBT = true)、対象ボリュームのボリュームポリシーをvirtに設定します。
5.2.1.2. OADP 1.6.1 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 1.6.1 リリースノートには、解決された問題と既知の問題が記載されています。
OADP 1.6.1 では、次の Red Hat Security Advisory (RHSA) が利用できます。
5.2.1.2.1. 解決された問題 リンクのコピーリンクがクリップボードにコピーされました!
- OADP CLI が管理者以外の操作に対して namespace フラグを公開しなくなりました
この更新前は、マルチテナンシー境界があるため、管理者以外の操作が namespace の選択をサポートしていないにもかかわらず、OADP コマンドラインインターフェイス (CLI) は、すべての
oc oadp nonadminコマンドのヘルプ出力にグローバル--namespaceまたは-nフラグを表示していました。その結果、管理者以外のバックアップまたは復元操作中に namespace フラグを指定すると、CLI は指定された値を無視し、代わりにアクティブなoc projectコンテキストを使用し、意図しない namespace にリソースを作成する可能性がありました。この更新により、すべての
oc oadp nonadminサブコマンドから--namespaceフラグが非表示になり、ヘルプ出力に表示されなくなり、管理者以外の操作のユーザー入力が受け付けられなくなりました。その結果、管理者以外の CLI コマンドが、現在のプロジェクトコンテキスト内でのみ正しく動作するようになりました。これにより、namespace が一致しないリスクが排除されます。excludedClusterScopedResourcesのワイルドカード処理により検証が失敗しなくなりました今回のアップデート以前は、ワイルドカード (
*) がある場合、OADP Operator はNonAdminBackupカスタムリソース (CR) のexcludedClusterScopedResourcesに誤ってデフォルトリソースを追加していました。その結果、すべてのクラスタースコープのリソースを除外すると、FailedValidationエラーが発生しました。今回のアップデートにより、Operator はデフォルトリソースを追加せずにワイルドカードを正しく処理できるようになりました。その結果、ワイルドカードを使用してクラスタースコープのリソースを除外しても、検証の失敗は発生しなくなりました。- PVC のスキップを可能にするフェーズ条件の
VolumePolicyサポート この更新前は、OADP ボリュームポリシーには、ライフサイクルステータスフェーズに基づいて永続ボリューム要求 (PVC) を評価およびフィルタリングする機能がありませんでした。その結果、バックアップは、スケールダウンされたサーバーレス環境など、除外したバインドされていない PVC または保留中の PVC に対して不要な警告やエラーを引き起こす可能性があります。
この更新により、ボリュームポリシーアクションが改善され、PVC のフェーズ条件がネイティブでサポートされるようになりました。その結果、
ConfigMapオブジェクトでカスタムボリュームポリシーを定義して、バックアップ操作中に保留中またはバインドされていない PVC を自動的にスキップできます。以下に例を示します。apiVersion: v1 kind: ConfigMap metadata: name: volume-policy namespace: velero data: policy.yaml: | version: v1 volumePolicies: - conditions: pvcPhase: ["Pending", "Lost"] action: type: skip
5.2.1.2.2. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- Google Cloud で WIF 認証を使用した
CloudStorageバケットの作成が失敗する Workload Identity Federation (WIF) 認証を使用して Google Cloud 上の OpenShift クラスターで
CloudStorageを設定すると、CloudStorageリソースは Google Cloud バケットが存在しないことを検出できません。その結果、リソースはBucketCheckError条件を返し、バケットの自動作成を妨げます。この問題を回避するには、Workload Identity Federation (WIF) 認証を使用して Google Cloud 上の OpenShift クラスターで
CloudStorageを設定する際に、既存の Google Cloud バケットを使用します。これにより、コントローラーがバケットの作成をスキップし、既存のバケットをバックアップストレージとして使用するようになります。- 非管理者ユーザーによる ODF 暗号化ボリュームのバックアップが OADP で失敗する
OADP Data Mover は、暗号化された Red Hat OpenShift Data Foundation (ODF) ボリュームをバックアップする際に、
openshift-adpnamespace に一時的な永続ボリューム要求 (PVC) を作成します。その後、ceph-csi ドライバーが、シークレットを保持している元のアプリケーション namespace ではなく、openshift-adpnamespace からceph-csi-kms-tokenシークレットを取得しようとします。その結果、NonAdminBackupカスタムリソース (CR) が次のようなエラーで失敗します。openshift-adp 2h11m Warning ProvisioningFailed persistentvolumeclaim/NAMESPACE-rh-cf00000c-0000-0000-0000-22abf391t6dr failed to provision volume with StorageClass "ocs-storagecluster-ceph-rbd-encrypted": rpc error: code = InvalidArgument desc = invalid encryption kms configuration: failed fetching token from openshift-adp/ceph-csi-kms-token: secrets "ceph-csi-kms-token" not foundこの問題を回避するには、バックアップを実行する前に、
ceph-csi-kms-tokenと関連する鍵管理サービス (KMS) config map をアプリケーション namespace からopenshift-adpにコピーします。これにより、ceph-csi ドライバーが暗号化認証情報の場所を特定できるようになり、バックアップが正常に完了します。
5.2.1.3. OADP 1.6.0 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 1.6.0 の新機能と機能拡張、解決済みの問題、既知の問題、テクノロジープレビュー機能、および削除された機能を確認してください。
5.2.1.3.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- 並列バックアップ処理
OADP は並列バックアップ処理をサポートするようになりました。今回のアップデート以前は、OADP はバックアップを順次処理しており、次のバックアップを開始するには、前のバックアップを完了する必要がありました。これにより、バックアップスケジュールが多い環境や大規模なデータ保護要件がある環境では、ボトルネックが発生し、すべてのバックアップ操作を完了するのに必要な全体的な時間が増加していました。今回のリリースにより、バックアップが namespace を共有している場合を除き、複数のバックアップを並行して実行できるようになりました。その結果、キューイングによる遅延を気にすることなく、よりきめ細かく頻繁なバックアップスケジュールを設定できるようになりました。
- KubeVirt 仮想マシンのバックアップから VMFR を使用してファイルレベルで復元する
OADP に、仮想マシンファイル復元 (VMFR) 機能が導入されました。今回のリリース以前は、KubeVirt 仮想マシンのバックアップから単一のファイルを復元する場合でも、仮想マシン全体を復元する必要があり、時間とリソースを大量に消費していました。今回のリリースにより、OpenShift Container Platform 内で KubeVirt 仮想マシンバックアップから個々のファイルを選択的に復元できるようになりました。VMFR には、複数のバックアップを扱う場合に競合を防止するためのプラグインである
RestoreItemActionも含まれています。このプラグインは、復元時に PVC の名前を変更し、一意の名前を確保して競合を回避することで、VMFR のバックアップと復元の信頼性と効率性を向上させます。- OpenShift Virtualization 環境での VMDP を使用したファイルレベルのバックアップ
OADP に、仮想マシン (VM) 内で実行されるコマンドラインツールである仮想マシンデータ保護 (VMDP) 機能が導入されました。今回のアップデート以前は、OADP は仮想マシン全体のスナップショットベースのバックアップのみをサポートしていました。仮想マシン内からユーザーがファイルレベルできめ細かくデータを保護するためのオプションはありませんでした。VMDP を使用すると、クラスター管理者の介入なしに、Kopia ベースのクライアント/サーバーアーキテクチャーを使用して、個々のファイルやディレクトリーを選択的にバックアップおよび復元できます。
- OADP CLI プラグイン
OADP に、バックアップと復元を管理するための
kubectlネイティブインターフェイスを提供するkubectlコマンドラインインターフェイス (CLI) プラグインが追加されました。今回のアップデート以前は、ユーザーはバックアップ操作を実行するために Velero CLI へのエイリアスを設定していました。クラスター管理者以外のユーザーは、自身のバックアップを独自に管理する方法がなく、日常的なデータ保護タスクをクラスター管理者に依存せざるを得ない状況でした。この機能の導入により、管理者はkubectl oadpコマンドを実行して、バックアップと復元の作成、削除、およびログ取得を行えるようになりました。クラスター管理者以外のユーザーは、許可された namespace 内で、管理者以外のユーザーのバックアップを個別に作成、削除、および検査できます。- OADP must-gather による仮想マシンファイル復元 CRD の収集
この機能拡張により、oadp-must-gather ツールが、仮想マシンのファイルレベルの復元機能のために OADP 1.6 で導入された
VirtualMachineBackupsDiscoveryおよびVirtualMachineFileRestoreカスタムリソース定義 (CRD) を収集するようになりました。その結果、oc adm must-gatherコマンドを実行すると、CRD、namespace ごとの CR YAML、およびマークダウンサマリー内の専用セクションを含む、両方の新しいタイプのリソースがクラスター全体で自動的に収集されるようになりました。これにより、サポートチームと管理者は、仮想マシンファイルの復元操作を完全に把握できるようになります。ClusterRoleおよびClusterRoleBindingによるカスタム SCC のバックアップと復元OADP は、SCC の user フィールドに記載されているものだけでなく、
ClusterRoleおよびClusterRoleBindingリソースを介してServiceAccountsに関連するカスタム Security Context Constraints (SCC) のバックアップと復元をサポートするようになりました。この機能拡張により、カスタム SCC のバックアップおよび復元プロセスが SCC の user フィールドに依存しなくなったため、プロセスが簡素化されます。代わりに、このプロセスでは Pod が使用する SCC の場所と、Pod に関連付けられているサービスアカウントを使用します。これにより、OpenShift Container Platform クラスターのバックアップおよび復元プロセスの信頼性と安全性が向上しました。これは IBM Cloud Pak for Data にとって不可欠です。- バックアップ中に保留中の PVC を無視するための
VolumePolicyのサポート 今回のアップデートにより、バックアップ時にバインドされていない永続ボリューム要求 (PVC) を無視できるようになりました。この機能拡張により、特に PVC が
Pending状態にある場合に、バックアップの成功率が向上します。さらに、ボリュームポリシーアクションの機能が拡張され、バックアップ管理の制御性と柔軟性が向上します。- 新しいバージョンの Go による、コンテナー化された環境での Data Mover のパフォーマンス最適化
Go 1.25 への移行に伴い、Data Mover が
MaxParallelFileReadsのデフォルト値を、ノード上の CPU コアの総数ではなく、コンテナーの CPU 制限に対応するcgroupの CPU 帯域幅制限に設定するようになりました。今回のアップデート以前は、node-agent config map でdatamoverConfig.ParallelFilesUploadが明示的に設定されていない限り、MaxParallelFileReadsがノードの CPU 数をすべて使用していました。そのため、制約のあるコンテナー環境ではリソースの過剰使用が発生する可能性がありました。今回のアップデートにより、Data Mover の操作がコンテナーの CPU 制限を自動的に反映するようになりました。これにより、手動で設定を変更する必要なく、リソース効率と安定性が向上します。- リポジトリーメンテナンスジョブ Pod 用のカスタムラベルとアノテーション
今回のアップデート以前は、メンテナンスジョブ Pod がカスタムラベルをサポートしていませんでした。そのため、Pod ラベルに依存する namespace レベルのネットワークポリシーやファイアウォールルールを適用することが困難でした。今回のリリースにより、
DataProtectionApplicationカスタムリソースのrepositoryMaintenanceセクションを通じて、リポジトリーメンテナンスジョブ用のカスタムpodLabelsとpodAnnotationsを設定できるようになりました。- メンテナンス作業用の Prometheus ベースの監視
今回のアップデートにより、Prometheus のメトリクスを使用して、メンテナンス作業の成功と失敗をより効率的に監視できるようになりました。この機能拡張は、従来の
--keep-latest-maintenance-jobs引数を使用したジョブの成功状況の追跡方法を置き換えるものです。この新しいソリューションは、既存のアラートおよび通知ツールを活用し、バックアッププロセスのさまざまな側面を監視するための統一的なアプローチを提供します。この改善により、ジョブの失敗によるパフォーマンス低下のリスクが軽減され、メンテナンスジョブの問題に関するアラートの設定が容易になり、バックアップ管理とシステム全体の健全性が向上します。- Velero CLI で
ConfigMap検証時に表示されるエラーメッセージの改善 今回のアップデート以前は、
ConfigMapの検証失敗時に意味のあるエラーが返されなかったため、設定上の問題を診断して解決することが困難でした。今回のリリースにより、Velero のコマンドラインインターフェイス (CLI) で、バックアップリポジトリー、ノードエージェント、およびバックアップリポジトリーのメンテナンスジョブ設定に関するConfigMap検証が失敗した場合に、詳細なエラーメッセージが表示されるようになりました。その結果、実用的なエラーメッセージによって、無効なConfigMap設定を迅速に特定して修正できるようになりました。- Data Mover の expose 失敗に関する診断の改善
Data Mover の expose 診断に、CSI スナップショットのデータ移動とファイルシステムのバックアップの両方に関する、バックアップ Pod、復元 Pod、バックアップ永続ボリューム要求 (PVC)、および復元 PVC からのイベントが含まれるようになりました。今回のアップデート以前は、これらのリソースからの情報メッセージは個々のイベント内でのみ利用可能で、診断出力には含まれていませんでした。その結果、関連する各リソースのイベントを手動で調べることなく、診断から expose 失敗の全体像をより完全に直接把握できるようになりました。
VolumeSnapshotClassが CSI のバックアップと復元に不要になりましたContainer Storage Interface (CSI) のバックアップおよび復元プロセスに、
VolumeSnapshotClassリソースが含まれなくなり、不要になりました。今回のアップデート以前は、VolumeSnapshotClassは CSI バックアップに含まれており、復元時にも存在する必要があったため、不要な依存関係が生じていました。今回のアップデートにより、CSI スナップショットベースのバックアップと復元が、クラスター内にVolumeSnapshotClassがなくても正常に完了するようになりました。これにより、バックアップのリソース依存が減り、VolumeSnapshotClassが事前に設定されていない環境でも復元の信頼性が向上します。- ノードエージェント Pod 用の設定可能なキャッシュボリューム
今回のリリースにより、ノードエージェントの Data Mover および Pod ボリュームの復元操作用に、リポジトリーキャッシュの保存場所を設定可能にする機能が導入されました。今回のアップデート以前は、Kopia などのバックアップエンジンは、メタデータとスナップショットキャッシュを Pod の一時的なルートファイルシステム内に暗黙的に保存していました。これにより、負荷の高い処理や同時実行処理中に、ホストノードのディスク容量不足、
DiskPressuretaint、および予期しないノードの退避エラーが発生することがよくありました。今回のリリースにより、管理者はリポジトリーのキャッシュファイルを分離し、専用のローカルボリュームまたは動的にプロビジョニングされた永続ボリューム要求にルーティングできるようになりました。そのため、キャッシュボリュームにより、ホストノードのシステムディスクの容量不足が防止され、大規模なバックアップと復元の信頼性が向上します。
- リポジトリーのメンテナンスジョブが Velero デプロイメントから toleration を継承するようになりました
リポジトリーのメンテナンスジョブが、
DataProtectionApplication設定で定義された toleration を継承するようになりました。今回のアップデート以前は、メンテナンス Pod が Velero デプロイメントから toleration を継承していませんでした。そのため、ノードに taint が設定されているクラスターでスケジューリングの失敗が発生していました。この機能の導入により、taint が付与されたノード上でリポジトリーのメンテナンスジョブを正しくスケジュールできるようになりました。そのため、ノードの taint と toleration を使用する環境で、信頼性の高いバックアップリポジトリーのメンテナンスが実現します。- ODF クラスターで復元された PVC の空き領域を自動回収するオプトイン機能
Restoreカスタムリソースにoadp.openshift.io/reclaim-space-scheduleアノテーションを設定することで、復元された永続ボリューム要求 (PVC) の領域自動回収を有効にできます。今回のアップデート以前は、Red Hat OpenShift Data Foundation (ODF) クラスターで Data Mover による復元を実行した後、未使用のブロックデバイス領域を回収するために、rbd sparsifyを手動で実行する必要がありました。この機能の導入により、PVC 復元プラグインがスケジュールアノテーションを復元された各 PVC に伝播し、Container Storage Interface コントローラーが手動による介入なしにスパース化を処理するReclaimSpaceCronJobを自動的に作成するようになりました。このアノテーションはオプトイン機能であり、ODF 以外のクラスターには影響を与えません。- スケジュールされたバックアップのキューが長時間ブロックされた場合でも蓄積されなくなりました
長時間のバックアップ実行、Velero サーバーのダウンタイム、インフラストラクチャーの問題などにより、バックアップ処理が長期間ブロックされた場合でも、Velero のスケジュールされたバックアップが
New状態のキューに蓄積されなくなりました。今回のアップデート以前は、スケジュール内のバックアップがNewまたはInProgress状態にある場合、スケジュールコントローラーによって新しいバックアップの実行が阻止されていました。そのため、バックアップが際限なくキューに追加され、蓄積されるという問題が発生していました。この機能の導入により、空のフェーズのバックアップを含め、リコンサイルされていないバックアップがスケジューラーによって適切に処理されるようになりました。その結果、過剰な新規バックアップ実行の発生が防止され、スケジュールされたバックアップの動作の信頼性が確保されます。- クラスターオートスケーラーの動作を制御するためのアノテーションが追加されました
今回のアップデートにより、OADP 内の Velero およびノードエージェント Pod にアノテーションを追加できるようになりました。この機能拡張により、クラスターオートスケーラーの動作を制御できるようになり、オートスケーラーとの相互作用によってデータ操作が失敗するのを防ぐことができます。アノテーションを追加することで、OADP 1.5 以前のバージョンで発生していた、ノードエージェントの起動時にデータのアップロードとダウンロードがキャンセルされるという問題を軽減できます。この改善により、よりスムーズな運用とダウンタイムの削減が実現し、特定の要件に応じてアプリケーションをカスタマイズできる柔軟性が得られます。
- バックアップ操作中の namespace 選択時におけるワイルドカードのサポート
バックアップ操作中に namespace を指定する際に、ワイルドカードパターンを使用できます。今回のアップデート以前は、バックアップオブジェクト内のすべての namespace を明示的に指定し、新しい namespace が作成されるたびにそれを更新する必要がありました。今回のリリースにより、
--include-namespacesフラグで*-helmなどのパターンを使用して複数の namespace を動的にマッチできるようになりました。そのため、バックアップの管理が簡素化され、手動による設定の手間が軽減されます。- AWS S3 バケットのバックアップデータの SSE-C 暗号化
今回のアップデートにより、OADP ではお客様が提供する鍵 (SSE-C) を使用したサーバー側暗号化を使用することで、バックアップデータを保護できるようになりました。この機能拡張により、データ保護とプライバシーが全体的に向上します。この機能は AWS S3 バケットに対応しています。さらに、S3 互換ストレージを使用するための回避策も提供します。
- ノードエージェントと Velero Pod の設定可能な優先度クラス
今回のアップデートにより、
DataProtectionApplicationオブジェクト内のノードエージェントおよび Velero Pod のpriorityClassNameフィールドを設定できるようになりました。これにより、リソース競合時にこれらの Pod の優先度を決定できます。重要な Pod が優先的にスケジュールされるため、これはワーカーノードの障害発生後に特に役立ちます。
5.2.1.3.2. 解決された問題 リンクのコピーリンクがクリップボードにコピーされました!
labelSelectorを使用した Velero バックアップで、リソース検出中にパフォーマンスが低下することがなくなりました今回のアップデート以前は、リソース検出フェーズでのパフォーマンス低下が原因で、バックアップで
includedNamespaces: '*'、includeClusterResources: true、labelSelector、および大きなexcludedResourcesリストが組み合わされた場合に、Velero が過剰な数の API リスト呼び出しを発行していました。その結果、以前は数秒で完了していたバックアップが、わずか 8 個のリソースのバックアップでも約 18 分かかるようになりました。今回のリリースにより、リソース検出ロジックが最適化され、項目収集フェーズの不要な API リスト呼び出しが排除されます。その結果、バックアップのパフォーマンスが期待されるレベルに戻り、数秒で完了するようになりました。- DPA CR で CSI スナップショットの初期高頻度ポーリングを設定可能になりました
今回のアップデートより前に、Velero の変更により、バックアップ開始後最初の 10 秒間、1 秒間隔で Container Storage Interface (CSI) スナップショットの準備状況をポーリングする動作が導入されました。この動作は、Windows 上の Microsoft Volume Shadow Copy Service (VSS) ワークロード向けに特別に設計されたものでした。OADP は、この動作を
DataProtectionApplication(DPA) カスタムリソース (CR) の設定可能なオプションとして公開していませんでした。その結果、CSI が有効なすべてのバックアップで、VSS 互換性が必要かどうかに関わらず、以前のポーリング動作が使用されていました。OADP を通じてこの動作を無効化または制御する方法はありませんでした。今回のリリースにより、DPA CR のconfiguration.veleroに、enableCSISnapshotEarlyFrequentPollingという新しいフィールドが追加されました。デフォルトでは、この機能は無効にされています。ワークロードでこのような頻繁なポーリング動作が必要な場合は、有効にする必要があります。- Console CRD を使用しないシングルノード OpenShift クラスターで、controller-manager が
CrashLoopBackOffループに陥らなくなりました 今回のアップデート以前は、コンソール機能を持たないクラスターで、欠落している
ConsoleCLIDownloadカスタムリソース定義 (CRD) との無条件のやり取りにより、controller-manager がCrashLoopBackOffループに陥っていました。その結果、ConsoleCLIDownloadCRD が欠落していたため、シングルノードの OpenShift クラスターで Pod のクラッシュが発生していました。今回のリリースにより、コンソール CRD が利用できない場合、OADP Operator が CLI のダウンロード設定をスキップするようになりました。その結果、controller-manager はシングルノード OpenShift クラスター上でCrashLoopBackOffループに陥ることがなくなり、安定性が向上しました。podConfigの値が空でnodeAgentのアフィニティーが指定されている場合に DPA がエラーを報告しなくなりました今回のアップデート以前は、指定された
nodeAgentアフィニティーを持つpodConfigが空であるために、DataProtectionApplication(DPA) カスタムリソースがエラーを報告していました。そのため、DPA はリコンサイルに失敗していました。今回のリリースにより、podConfigが明示的に設定されている場合、nodeAgent.podConfig.nodeSelectorがspec.configuration.nodeAgent.LoadAffinityConfigと一致しない場合にのみ、DPA がエラーを報告するようになりました。QueuedおよびReadyToStartバックアップフェーズにより、nonAdminControllerのリコンサイルの問題が発生しなくなりました今回のアップデート以前は、
nonAdminControllerのQueuedおよびReadyToStartバックアップフェーズにより、リコンサイルの問題が発生していました。これらのフェーズはサポート対象外のステータスであったためです。今回のリリースにより、QueuedおよびReadyToStartが原因でnonAdminControllerのリコンサイルの問題が発生しなくなりました。- Ceph RBD ストレージクラスで CSI
VolumeGroupSnapshotの復元が失敗しなくなりました 今回のアップデート以前は、Ceph RBD ストレージからバックアップされた
VolumeGroupSnapshot(VGS) を復元しようとすると、cannot find the group snapshot for VolumeSnapshotというエラーメッセージが表示されて失敗していました。このエラーは、Velero がバックアップ後にVolumeGroupSnapshotContentを削除し、復元時に一致するリソースが残らないことが原因で発生していました。また、復元されたVolumeSnapshotContentからVolumeSnapshotClassNameが削除されるため、Container Storage Interface (CSI) コントローラーがスナップショットを検証するために認証することができませんでした。今回のアップデートにより、Velero がバックアップ時にグループスナップショットハンドルをアノテーションとして保持し、復元時にスタブVolumeGroupSnapshotContentを再作成し、正しいVolumeSnapshotClass参照を復元するようになりました。その結果、VGS を使用した Ceph RBD の復元が正常に完了するようになりました。VGS はテクノロジープレビュー機能であることに注意してください。- SCC マップが
ServiceAccountプラグインで同期されるようになりました 今回のアップデート以前は、Security Context Constraints (SCC) マップへのアクセスが同期されていないことが原因で、
ServiceAccountバックアッププラグインがPartiallyFailedエラーにより失敗していました。その結果、バックアップの失敗が発生し、複数の namespace のデータ整合性に影響が出ていました。今回のリリースにより、SCC マップがServiceAccountプラグインで同期されるようになりました。これにより、バックアップ実行中のクラッシュが発生しなくなりました。PrepareQueueLengthが DPA に追加されましたPrepareQueueLengthフィールドは、バックアップおよび復元プロセス中に作成される中間リソースの数を制限するノードエージェントの設定です。今回のアップデート以前は、DataProtectionApplication(DPA) 設定のLoadConcurrencyフィールドにPrepareQueueLengthが欠落していました。その結果、PrepareQueueLengthの設定中にエラーが発生し、設定が削除されていました。今回のリリースにより、DPA 設定のLoadConcurrencyにPrepareQueueLengthフィールドが追加されました。- リポジトリー名が 63 文字を超えても
BackupRepositoryのメンテナンスジョブが失敗しなくなりました 今回のアップデート以前は、
BackupRepositoryという名前がリポジトリーメンテナンスジョブの Kubernetes ラベル値として直接使用されていました。その結果、BackupRepositoryの名前が 63 文字の Kubernetes ラベル制限を超えた場合、メンテナンスジョブのビルドが失敗し、スケジュールされていたリポジトリーのメンテナンスが実行されませんでした。今回のリリースにより、BackupRepositoryの名前がラベル値として使用される前にハッシュ化され、常に 63 文字の制限内に収まるようになりました。その結果、BackupRepositoryの名前の長さに関わらず、リポジトリーのメンテナンスジョブが正常に作成され、完了するようになりました。PodVolumeRestoresが完了した後にのみ復元がCompletedに遷移するようになりました今回のアップデート以前は、すべての
PodVolumeRestoresが完了する前に、復元が完了とマークされていました。今回のリリースにより、PodVolumeRestoresが完了した後にのみ、復元が完了するようになりました。- ノードエージェント Pod の再起動によって、クラスター全体の
DataUploadsがキャンセルされなくなりました 今回のアップデート以前は、ノードエージェント Pod が再起動されると、Data Mover が全ノードエージェント Pod の
AcceptedステータスのDataUploadsを、どの Pod が処理していたかに関係なく、すべてキャンセルしていました。その結果、バックアップ操作が失敗し、残りのノードエージェント Pod が正常な状態であっても、バックアップキューが長時間ブロックされることがありました。今回のリリースにより、再起動した特定のノードエージェント Pod によって受け入れられたDataUploadsだけが、コントローラーによってキャンセルされるようになりました。他のノード上のDataUploadsは影響を受けません。その結果、正常なノードエージェント Pod によって処理されるバックアップが正常に完了し、バックアップキューが無関係な Pod の再起動によってブロックされなくなりました。- 多数の Pod と PVC を持つクラスターにおけるボリュームポリシーのパフォーマンス向上
今回のアップデート以前は、ボリュームポリシーチェックを行うには、namespace 内のすべての Pod をスキャンして、個々の永続ボリューム要求 (PVC) をすべて確認する必要がありました。その結果、Pod と PVC の数が多いクラスターでは、バックアップのパフォーマンスが著しく低下していました。今回のリリースにより、重複する Pod リストを排除し、反復処理のオーバーヘッドを削減するために、PVC から Pod へのキャッシュが追加されました。その結果、すべての PV スナップショットのチェックが 1 秒以内に完了するようになり、過剰に時間がかかっていたバックアップ操作のパフォーマンスが向上しました。
- DPA リソースでカスタムラベルとアノテーションがサポートされるようになりました
今回のアップデート以前は、
DataProtectionApplication(DPA) カスタムリソースがカスタムラベルやアノテーションをサポートしていませんでした。また、OADP Operator によって管理される子リソースにそれらを伝播させることもできませんでした。その結果、DPA レベルでこれらの子リソースを外部のリコンシリエーションツールから除外することができず、不要なリコンシリエーションループと高い CPU 使用率が発生していました。今回のリリースにより、DPA にresourceLabelsフィールドとresourceAnnotationsフィールドが追加されました。これらのフィールドにより、ユーザー定義のラベルとアノテーションが、Operator が管理するすべてのリソースに伝播されるようになりました。その結果、単一の設定ポイントからすべての管理対象リソースのリコンシリエーション動作を制御し、不要な処理と CPU 使用量が削減できます。- ファイルシステムのバックアップが、特権的な Pod セキュリティーコンテキストを必要とするクラスターで動作するようになりました
今回のアップデート以前は、特権的なセキュリティーコンテキストでファイルシステムバックアップを実行するオプションが Velero にありませんでした。その結果、マウントパスへのアクセスに特権的なセキュリティーコンテキストを必要とする OpenShift クラスターで、ファイルシステムのバックアップが権限エラーで失敗していました。今回のリリースにより、新しい
--privileged-fs-backupインストールおよびノードエージェントサーバーオプションが追加されました。これにより、ファイルシステムバックアップ Pod を、既存のノードエージェントの特権フラグとは別に、特権モードで実行できるようになりました。その結果、特権的な Pod セキュリティーコンテキストを必要とするクラスターでも、ファイルシステムのバックアップが正常に完了するようになりました。- OADP は Pod 復元時に OVN-K および Multus CNI のアノテーションを削除するようになりました
今回のアップデート以前は、OVN-K および Multus コンテナーネットワークインターフェイス (CNI) によって注入された Pod ネットワークアノテーションが、バックアップ時に復元されていました。その結果、CNI との間で競合が発生し、手動による介入が必要となっていました。今回のリリースにより、OADP は Pod の復元時に OVN-K および Multus CNI のアノテーションを削除するようになりました。
- Kopia の
BackupRepositoryでresticIdentifierパスが誤って表示されなくなりました 今回のアップデート以前は、Kopia でバックアップを作成すると、実際の Kopia リポジトリーのパスではなく、Restic のパスを参照する
resticIdentifierフィールドを含むBackupRepositoryリソースが生成されていました。その結果、トラブルシューティングの際にユーザーに混乱が生じていました。今回のリリースにより、resticIdentifierフィールドは Restic リポジトリーにのみ関連するものであるため、Kopia タイプのBackupRepositoryリソースから削除されました。- AWS S3 バケットのリージョンが
BackupStorageLocation設定で自動的に検出されるようになりました 今回のアップデート以前は、
snapshotLocationsで S3BackupStorageLocation(BSL) を使用する場合、DataProtectionApplication設定から AWS バケットリージョンが欠落していました。その結果、AWS S3 バケットのリージョンが欠落していたため、バックアップが失敗していました。今回のリリースにより、AWS S3 バケットのリージョンが BSL で自動的に検出されるようになりました。- Azure ストレージバケットが存在しない場合に BSL ステータスメッセージがエラーを返すようになりました
今回のアップデート以前は、存在しない Azure ストレージバケットを使用して
DataProtectionApplicationが設定されている場合、BackupStorageLocation(BSL) の検証により、status.messageフィールドに生の HTTP レスポンスが返されていました。そのため、BSL のステータスが不明確でした。今回のリリースにより、BSL のstatus.messageフィールドが、ContainerNotFound: The specified container does not existという人間が読みやすい簡潔なエラーを返すようになりました。- OADP Data Mover の復元操作に
loadAffinityノードの選択が適用されるようになりました 今回のアップデート以前は、ノードエージェントの
loadAffinity設定はバックアップ操作にのみ適用され、復元操作には適用されていませんでした。その結果、DataProtectionApplication仕様でnodeSelectorが設定されている場合、復元時に実行中のノードエージェントがないノードに Data Mover Pod がスケジュールされることがありました。これにより、復元が無期限にハングしていました。今回のリリースにより、loadAffinityの設定がバックアップ操作と復元操作の両方に適用されるようになりました。その結果、Data Mover の復元 Pod が、ノードエージェントが実行されているノードに正しくスケジュールされるようになりました。これにより、復元のハングやPartiallyFailedエラーが防止されます。- バックアップおよび復元操作後、Kopia のキャッシュがワーカーノードに保持されなくなりました
今回のアップデート以前は、ファイルシステムの復元中、バックアップ完了後にキャッシュが削除されなかったため、ワーカーノードの
/varパーティションの使用量が増加していました。キャッシュがクリアされるのは、ノードエージェントが再起動した場合だけでした。その結果、ファイルシステムの復元後、ワーカーノードで意図しないディスク容量の消費が発生していました。今回のリリースにより、ephemeral-storageに保存されていた Kopia 操作用のキャッシュが、復元操作後にクリアされるようになりました。nodeSelectorを使用する場合に Data Mover の復元が失敗しなくなりました今回のアップデート以前は、
nodeAgentパラメーターにnodeSelectorフィールドを設定してDataProtectionApplication(DPA) カスタムリソースを作成した場合、Data Mover の復元操作でnodeSelectorが適切に処理されませんでした。その結果、Data Mover の復元操作が誤ったノードにスケジュールされていたため、部分的に失敗していました。今回のリリースにより、Data Mover の復元操作で、nodeSelectorが正しく処理されるようになりました。その結果、DPA で当該フィールドが設定されている場合に、復元操作が正常に完了するようになりました。- Velero CLI が
BackupStorageLocationの CA 証明書を自動的に使用するようになりました 今回のアップデート以前は、Velero コンテナーの実行時に認証局 (CA) 証明書がファイルとして保存されませんでした。そのため、Velero コマンドラインインターフェイス (CLI) コマンドを実行するたびに、CA 証明書ファイルへのパスを指定した
--cacertフラグを手動で渡すか、Velero バイナリーと CA 証明書のバンドルをワークステーションにダウンロードする必要がありました。そのため、カスタム証明書や自己署名証明書を使用する環境で、効率が低下するという問題が発生していました。今回のリリースにより、Velero CLI は
BackupStorageLocation(BSL) 設定から CA 証明書を自動的に読み取り、--cacertフラグが指定されているにもかかわらず無効なパスを指している場合は、BSL の caCert にグレースフルにフォールバックするようになりました。その結果、oc execエイリアスを介して Velero CLI コマンドを実行する際に、--cacertを手動で指定する必要がなくなりました。これにより、カスタム CA 証明書を使用する環境で、日常的なバックアップおよび復元作業が大幅に簡素化されます。- Velero が不要な restore-wait init コンテナーを復元しなくなりました
今回のアップデート以前は、復元操作中に restore-wait init コンテナーが必要かどうかを Velero がチェックしていませんでした。その結果、namespace が CSI またはネイティブの Data Mover を使用してバックアップされ、その後復元される際に、Velero は誤って restore-wait init コンテナーをアプリケーション Pod 仕様に注入していました。今回のリリースにより、Velero は、使用するバックアップ方法で必要ない場合、restore-wait init コンテナーの復元をスキップするようになりました。
defaultVolumesToFSBackupフラグがdefaultVolumesToFsBackupと同じになりました今回のアップデート以前は、
dpa.spec.configuration.velero.defaultVolumesToFSBackupフラグが、backup.spec.defaultVolumesToFsBackupフラグとは異なる大文字小文字を使用していました。その結果、2 つのフラグ間の不一致により、Pod ボリュームのファイルシステムバックアップを設定する際に混乱が発生することがありました。今回のリリースにより、2 つのフラグが同一になりました。- OADP CLI が
BackupStorageLocationから CA 証明書を自動的に継承するようになりました 今回のアップデート以前は、OADP コマンドラインインターフェイス (CLI) が、バックアップログを取得する際に、
BackupStorageLocation(BSL) から認証局 (CA) 証明書を継承していませんでした。その結果、バックアップ自体が正常に完了し、DataProtectionApplication(DPA) カスタムリソースが有効な CA 証明書で正しく設定されているにもかかわらず、oc oadp backup logsを使用してバックアップログを取得できませんでした。今回のリリースにより、OADP CLI はバックアップログを取得する際に、BSL からの CA 証明書を自動的に使用するようになりました。その結果、BSL に有効な CA 証明書が存在する場合に、バックアップログの取得が正しく機能するようになりました。- ファイルシステム復元後に PVC に古い CSI スナップショットラベルが残らなくなりました
今回のアップデート以前は、Container Storage Interface (CSI) のバックアップ中に、Velero が永続ボリューム要求 (PVC) に
velero.io/volume-snapshot-nameというラベルを追加していました。このラベルは次回のファイルシステムのバックアップと復元の実行時に削除されませんでした。今回のリリースにより、ファイルシステムの復元が正常に完了した後、PVC にvelero.io/volume-snapshot-nameラベルが残らなくなりました。- 親のバックアップまたは復元が失敗した場合、
PodVolumeBackupおよびPodVolumeRestoreCR が Failed とマークされるようになりました 今回のアップデート以前は、バックアップまたは復元のカスタムリソース (CR) が失敗した場合でも、関連する
PodVolumeBackupおよびPodVolumeRestoreカスタムリソース (CR) がデータ転送を継続していました。その結果、個々のボリューム CR はCompletedと報告される一方で、親操作はFailedと報告されるという矛盾した状態が発生していました。今回のリリースにより、親のバックアップまたは復元の CR が失敗した場合、PodVolumeBackupおよびPodVolumeRestoreCR が正しくキャンセルされ、Failedとマークされるようになりました。その結果、ボリュームレベルの CR ステータスが、親操作のステータスと一致するようになりました。
5.2.1.3.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- Google Cloud で WIF 認証を使用した
CloudStorageバケットの作成が失敗する CloudStorageリソースが、Google Cloud バケットが存在しないことを検出できず、BucketCheckError状態を返すため、バケットの自動作成が阻止されます。この問題を回避するには、Workload Identity Federation (WIF) 認証を使用して Google Cloud 上の OpenShift クラスターで
CloudStorageを設定する際に、既存の Google Cloud バケットを使用します。これにより、コントローラーがバケットの作成をスキップし、既存のバケットをバックアップストレージとして使用するようになります。- 非管理者ユーザーによる ODF 暗号化ボリュームのバックアップが OADP で失敗する
OADP Data Mover は、暗号化された Red Hat OpenShift Data Foundation (ODF) ボリュームをバックアップする際に、
openshift-adpnamespace に一時的な永続ボリューム要求 (PVC) を作成します。その後、ceph-csi ドライバーが、シークレットを保持している元のアプリケーション namespace ではなく、openshift-adpからceph-csi-kms-tokenシークレットを取得しようとします。その結果、NonAdminBackupが次のようなエラーで失敗します。openshift-adp 2h11m Warning ProvisioningFailed persistentvolumeclaim/NAMESPACE-rh-cf00000c-0000-0000-0000-22abf391t6dr failed to provision volume with StorageClass "ocs-storagecluster-ceph-rbd-encrypted": rpc error: code = InvalidArgument desc = invalid encryption kms configuration: failed fetching token from openshift-adp/ceph-csi-kms-token: secrets "ceph-csi-kms-token" not foundこの問題を回避するには、バックアップを実行する前に、
ceph-csi-kms-tokenと関連する鍵管理サービス (KMS) config map をアプリケーション namespace からopenshift-adpにコピーします。これにより、ceph-csi ドライバーが暗号化認証情報の場所を特定できるようになり、バックアップが正常に完了します。- Velero サーバーが大規模な Kopia リポジトリーにアクセスする際に
OOMKilledイベントによって終了することがある Velero サーバーが、たとえばバックアップの削除時などに、大規模な Kopia リポジトリーにアクセスすると、メモリー不足 (OOM) プロセスによって Velero サーバーが終了されることがあります。これは通常、多数の Kopia インデックス Blob および関連するリポジトリーメタデータを読み込む際にメモリー使用量が増加することが原因です。
この問題を回避するには、次の手順を実行します。
-
OOMKilledイベント周辺の Velero ログを確認し、リポジトリーのオープンやインデックスのロードなどのアクティビティーを調べ、Velero Pod で観測されたおおよその最大メモリー使用量をメモします (oc や kubectl top pods などのコマンドから取得)。 -
観測されたピーク値を超えるように、
DataProtectionApplicationカスタムリソースのspec.velero.podConfigにある Velero コンテナーのメモリー要求または制限を引き上げます。 -
OOMKilledイベントが発生しなくなるまで、Velero Pod を再デプロイします。 - 今後のサイジングの指針として、ご使用の環境の最終的な安定したメモリー値を記録しておきます。
これにより、リポジトリーのメタデータを読み込むのに十分なメモリー容量が Velero サーバーに確保され、サーバーが終了されることがなくなります。
-
5.2.1.3.4. テクノロジープレビュー機能 リンクのコピーリンクがクリップボードにコピーされました!
- KubeVirt 仮想マシンの QCOW2 増分バックアップ (テクノロジープレビュー)
OADP に、テクノロジープレビュー機能として、KubeVirt 仮想マシン (VM) 向けに、ストレージに依存しない QCOW2 増分バックアップが導入されました。この機能は、
libvirtツールを使用して QCOW2 増分バックアップを実行することで、従来の VolumeSnapshot ベースのバックアップに代わる軽量な方法を提供します。最初の完全バックアップの後、以降のバックアップでは変更されたブロックのみが取得されます。そのため、Container Storage Interface (CSI) スナップショット方式と比較して、バックアップのパフォーマンスが向上し、リソース使用量が削減されます。これにより、実行中の仮想マシンのパフォーマンスへの影響を最小限に抑えつつ、より頻繁なバックアップスケジュールが可能になります。この機能を使用するには、仮想マシンディスクで QEMU バックアップを有効にし (
CBT = true)、対象ボリュームのボリュームポリシーをvirtに設定します。VolumeGroupSnapshot(テクノロジープレビュー)VolumeGroupSnapshot(VGS) を使用すると、ラベルベースの選択によって、複数の永続ボリューム要求 (PVC) をグループ化してスナップショットを作成できます。これにより、関連するボリューム間で特定時点のデータの整合性が確保され、複数の永続ボリュームを使用するステートフルアプリケーションのバックアップの信頼性が向上します。VGS はテクノロジープレビュー機能です。
5.2.1.3.5. 削除された機能 リンクのコピーリンクがクリップボードにコピーされました!
- Restic のバックアップが削除されました
アップローダーの種類として Restic を使用してファイルシステムのバックアップを作成する機能が削除され、サポートされなくなりました。
DataProtectionApplication(DPA) カスタムリソース (CR) のspec.configuration.nodeAgent.uploaderTypeでuploaderType: resticを設定すると、リコンサイルエラーが発生します。ファイルシステムのバックアップは、Kopia を使用して作成することもできます。なお、既存の Restic バックアップの復元は引き続きサポートされています。Restic バックアップの復元を引き続き行うには、DPA CR で Kopia を設定してください。その後、OADP は Restic を使用して Restic バックアップを復元します。
velero-restore-helperconfig map が削除されましたファイルシステム復元操作のために別の
velero-restore-helperコンテナーイメージを参照していたfs-restore-action-configconfig map が削除され、サポートされなくなりました。代わりに、Velero イメージに含まれている組み込みの復元ヘルパーバイナリーを使用してワークロードを復元できます。- PVC の selected-node 変更機能が削除されました
PVC の selected-node 変更機能が削除され、サポートされなくなりました。これは、復元時に永続ボリューム要求 (PVC) 用に選択されるノードを変更するために、
volume.kubernetes.io/selected-nodeアノテーションをオーバーライドできる機能です。代わりに Kubernetes ネイティブなWaitForFirstConsumerボリュームバインディングモードを使用することで、PVC を正しいノードに確実にスケジュールできます。