バックアップおよび復元
Red Hat OpenShift Service on AWS クラスターのバックアップと復元
概要
第1章 OADP アプリケーションのバックアップと復元 リンクのコピーリンクがクリップボードにコピーされました!
1.1. OpenShift API for Data Protection の概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 製品は、Red Hat OpenShift Service on AWS 上の顧客アプリケーションを保護します。Red Hat OpenShift Service on AWS アプリケーション、アプリケーション関連のクラスターリソース、永続ボリューム、内部イメージをカバーする包括的な障害復旧保護を提供します。OADP は、コンテナー化されたアプリケーションと仮想マシン (VM) の両方をバックアップすることもできます。
1.1.1. OpenShift API for Data Protection API リンクのコピーリンクがクリップボードにコピーされました!
OADP は、バックアップをカスタマイズし、不要または不適切なリソースの組み込みを防止するための複数のアプローチを可能にする API を提供します。
OADP は次の API を提供します。
1.1.1.1. データ保護のための OpenShift API のサポート リンクのコピーリンクがクリップボードにコピーされました!
バージョン | OCP のバージョン | 一般公開 | フルサポートの終了日 | メンテナンスの終了日 | 延長更新サポート (EUS) | Extended Update Support 期間 2 (EUS 期間 2) |
1.5 |
| 2025 年 6 月 17 日 | 1.6 のリリース | 1.7 のリリース | EUS は OCP 4.20 です。 | EUS Term 2 は OCP 4.20 です。 |
1.4 |
| 2024 年 7 月 10 日 | 1.5 のリリース | 1.6 のリリース | 2026 年 6 月 27 日 EUS は OCP 4.16 です | 2027 年 6 月 27 日 EUS Term 2 は OCP 4.16 です |
1.3 |
| 2023 年 11 月 29 日 | 2024 年 7 月 10 日 | 1.5 のリリース | 2025 年 10 月 31 日 EUS は OCP 4.14 です | 2026 年 10 月 31 日 EUS Term 2 は OCP 4.14 です |
1.1.1.1.1. OADP Operator のサポートされていないバージョン リンクのコピーリンクがクリップボードにコピーされました!
バージョン | 一般公開 | フルサポート終了 | メンテナンス終了 |
1.2 | 2023 年 6 月 14 日 | 2023 年 11 月 29 日 | 2024 年 7 月 10 日 |
1.1 | 2022 年 9 月 1 日 | 2023 年 6 月 14 日 | 2023 年 11 月 29 日 |
1.0 | 2022 年 2 月 9 日 | 2022 年 9 月 1 日 | 2023 年 6 月 14 日 |
EUS の詳細は、Extended Update Support を参照してください。
EUS Term 2 の詳細は、Extended Update Support Term 2 を参照してください。
1.2. OADP リリースノート リンクのコピーリンクがクリップボードにコピーされました!
1.2.1. OADP 1.4 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) のリリースノートでは、新機能と拡張機能、非推奨の機能、製品の推奨事項、既知の問題、および解決された問題を説明します。
OADP に関する追加情報は、OpenShift API for Data Protection (OADP) FAQ を参照してください。
1.2.1.1. OADP 1.4.4 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 1.4.4 は、コンテナーのヘルスグレードを更新するためにリリースされた Container Grade Only (CGO) リリースです。OADP 1.4.3 と比較して、製品自体のコードは変更されていません。
1.2.1.1.1. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
ステートフルアプリケーションの復元に関する問題
azurefile-csi
ストレージクラスを使用するステートフルアプリケーションを復元すると、復元操作が Finalizing
フェーズのままになります。(OADP-5508)
1.2.1.2. OADP 1.4.3 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 1.4.3 リリースノートには、次の新機能が記載されています。
1.2.1.2.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
kubevirt
velero プラグインバージョン 0.7.1 の注目すべき変更点
このリリースにより、kubevirt
velero プラグインがバージョン 0.7.1 に更新されました。注目すべき改良点として、次のバグ修正と新機能が含まれます。
- 所有者の仮想マシンが除外されている場合に、仮想マシンインスタンス (VMI) がバックアップから無視されなくなりました。
- バックアップおよび復元操作中に、すべての追加オブジェクトがオブジェクトグラフに含まれるようになりました。
- オプションで生成されたラベルが、復元操作中に新しいファームウェアの汎用一意識別子 (UUID) に追加されるようになりました。
- 復元操作中に仮想マシン実行ストラテジーを切り替えることが可能になりました。
- ラベルごとに MAC アドレスをクリアできるようになりました。
- バックアップ操作中の復元固有のチェックがスキップされるようになりました。
-
VirtualMachineClusterInstancetype
およびVirtualMachineClusterPreference
カスタムリソース定義 (CRD) がサポートされるようになりました。
1.2.1.3. OADP 1.4.2 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 1.4.2 リリースノートには、新機能、解決された問題とバグ、既知の問題が記載されています。
1.2.1.3.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
VolumePolicy 機能を使用して同じ namespace 内の異なるボリュームをバックアップできるようになりました
このリリースでは、Velero は VolumePolicy
機能を使用して同じ namespace 内の異なるボリュームをバックアップするためのリソースポリシーを提供します。さまざまなボリュームをバックアップするためにサポートされている VolumePolicy
機能には、skip
、snapshot
、および fs-backup
アクションが含まれます。OADP-1071
ファイルシステムのバックアップとデータムーバーで短期認証情報を使用できるようになりました
ファイルシステムバックアップとデータムーバーで、AWS Security Token Service (STS) や GCP WIF などの短期認証情報を使用できるようになりました。このサポートにより、PartiallyFailed
ステータスなしでバックアップが正常に完了します。OADP-5095
1.2.1.3.2. 解決された問題 リンクのコピーリンクがクリップボードにコピーされました!
VSL に誤ったプロバイダー値が含まれている場合に DPA がエラーを報告するようになった。
以前は、ボリュームスナップショットの場所 (VSL) 仕様のプロバイダーが正しくない場合でも、Data Protection Application (DPA) による調整が成功していました。この更新により、DPA はエラーを報告し、有効なプロバイダー値を要求します。OADP-5044
バックアップと復元に異なる OADP namespace を使用しているかどうかに関係なく、Data Mover の復元に成功する。
以前は、ある namespace にインストールされた OADP を使用してバックアップ操作を実行し、別の namespace にインストールされた OADP を使用して復元すると、Data Mover の復元が失敗しました。この更新により、Data Mover の復元が成功するようになりました。OADP-5460
SSE-C バックアップは、計算された秘密鍵の MD5 で動作する
以前は、次のエラーでバックアップが失敗しました。
Requests specifying Server Side Encryption with Customer provided keys must provide the client calculated MD5 of the secret key.
Requests specifying Server Side Encryption with Customer provided keys must provide the client calculated MD5 of the secret key.
この更新により、足りなかった Server-Side Encryption with Customer-Provided Keys (SSE-C) の base64 および MD5 ハッシュが修正されました。その結果、SSE-C バックアップは計算された秘密鍵の MD5 を使用して機能します。さらに、customerKey
サイズの誤った errorhandling
も修正されました。OADP-5388
このリリースで解決されたすべての問題のリストは、Jira の OADP 1.4.2 の解決済みの問題 を参照してください。
1.2.1.3.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
nodeSelector 仕様は、Data Mover 復元アクションではサポートされていない。
nodeAgent
パラメーターに nodeSelector
フィールドを設定して Data Protection Application (DPA) を作成すると、復元操作が完了する代わりに、Data Mover の復元が部分的に失敗します。OADP-5260
TLS スキップ検証が指定されている場合、S3 ストレージはプロキシー環境を使用しない。
イメージレジストリーのバックアップでは、insecureSkipTLSVerify
パラメーターが true
に設定されている場合、S3 ストレージはプロキシー環境を使用しません。OADP-3143
Kopia はバックアップの有効期限が切れてもアーティファクトが削除されない。
バックアップを削除した後でも、バックアップの有効期限が切れると、Kopia は S3 ロケーションの ${bucket_name}/kopia/$openshift-adp
からボリューム成果物が削除されません。詳細は、「Kopia リポジトリーのメンテナンスについて」を参照してください。OADP-5131
1.2.1.4. OADP 1.4.1 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 1.4.1 リリースノートには、新機能、解決された問題とバグ、既知の問題が記載されています。
1.2.1.4.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
クライアントの QPS とバーストを更新するための新しい DPA フィールド
新しい Data Protection Application (DPA) フィールドを使用して、Velero Server Kubernetes API の 1 秒あたりのクエリー数とバースト値を変更できるようになりました。新しい DPA フィールドは、spec.configuration.velero.client-qps
と spec.configuration.velero.client-burst
です。どちらもデフォルトは 100 です。OADP-4076
Kopia でデフォルト以外のアルゴリズムを有効にする
この更新により、Kopia のハッシュ、暗号化、およびスプリッターアルゴリズムを設定して、デフォルト以外のオプションを選択し、さまざまなバックアップワークロードのパフォーマンスを最適化できるようになりました。
これらのアルゴリズムを設定するには、DataProtectionApplication (DPA) 設定の podConfig
セクションで velero
Pod の env
変数を設定します。この変数が設定されていない場合、またはサポートされていないアルゴリズムが選択されている場合、Kopia はデフォルトで標準アルゴリズムを使用します。OADP-4640
1.2.1.4.2. 解決された問題 リンクのコピーリンクがクリップボードにコピーされました!
Pod なしでバックアップを正常に復元できるようになる
以前は、Pod なしでバックアップを復元し、StorageClass VolumeBindingMode
を WaitForFirstConsumer
に設定すると、PartiallyFailed
ステータスになり、fail to patch dynamic PV, err: context deadline exceeded
というエラーが発生していました。この更新により、動的 PV のパッチ適用がスキップされ、バックアップの復元が成功するようになり、PartiallyFailed
ステータスが発生しなくなりました。OADP-4231
PodVolumeBackup CR が正しいメッセージを表示するようになる
以前は、PodVolumeBackup
カスタムリソース (CR) によって、get a podvolumebackup with status "InProgress" during the server starting, mark it as "Failed"
という誤ったメッセージが生成されていました。この更新により、次のメッセージが生成されるようになりました。
found a podvolumebackup with status "InProgress" during the server starting, mark it as "Failed".
found a podvolumebackup with status "InProgress" during the server starting,
mark it as "Failed".
DPA で imagePullPolicy をオーバーライドできるようになる
以前は、OADP がすべてのイメージに対して imagePullPolicy
パラメーターを Always
に設定していました。この更新により、OADP が各イメージに sha256
または sha512
ダイジェストが含まれているかどうかを確認し、imagePullPolicy
を IfNotPresent
に設定するようになりました。含まれていない場合、imagePullPolicy
は Always
に設定されます。このポリシーは、新しい spec.containerImagePullPolicy
DPA フィールドを使用してオーバーライドできるようになりました。OADP-4172
OADP Velero が、最初の更新が失敗した場合に復元ステータスの更新を再試行できるようになる
以前は、OADP Velero が復元された CR ステータスの更新に失敗していました。これにより、ステータスが無期限に InProgress
のままになっていました。バックアップおよび復元 CR のステータスに依存して完了を判断するコンポーネントも失敗していました。この更新により、復元の際に、復元 CR のステータスが Completed
または Failed
ステータスに正しく移行するようになりました。OADP-3227
別のクラスターからの BuildConfig ビルド復元がエラーなしで正常に処理されるようになる
以前は、別のクラスターから BuildConfig
ビルドリソースの復元を実行すると、アプリケーションが内部イメージレジストリーへの TLS 検証時にエラーを生成していました。結果として、failed to verify certificate: x509: certificate signed by unknown authority
エラーが発生していました。この更新により、別のクラスターへの BuildConfig
ビルドリソース復元が正常に処理されるようになり、failed to verify certificate
エラーが生成されなくなりました。OADP-4692
空の PVC が正常に復元されるようになる
以前は、空の永続ボリューム要求 (PVC) を復元中にデータのダウンロードが失敗していました。次のエラーで失敗していました。
data path restore failed: Failed to run kopia restore: Unable to load snapshot : snapshot not found
data path restore failed: Failed to run kopia restore: Unable to load
snapshot : snapshot not found
この更新により、空の PVC を復元するときにデータのダウンロードが正しく終了するようになり、エラーメッセージが生成されなくなりました。OADP-3106
CSI および DataMover プラグインで Velero のメモリーリークが発生しなくなる
以前は、CSI および DataMover プラグインの使用によって Velero のメモリーリークが発生していました。バックアップが終了したときに、Velero プラグインインスタンスが削除されず、Velero Pod で Out of Memory
(OOM) 状態が生成されるまで、メモリーリークによってメモリーが消費されていました。この更新により、CSI および DataMover プラグインの使用時に Velero のメモリーリークが発生しなくなりました。OADP-4448
関連する PV が解放されるまで、ポストフック操作が開始されなくなる
以前は、Data Mover 操作の非同期性により、関連する Pod の永続ボリューム (PV) が Data Mover の永続ボリューム要求 (PVC) によって解放される前に、ポストフックが試行されることがありました。この問題により、バックアップが PartiallyFailed
ステータスで失敗していました。この更新により、関連する PV が Data Mover PVC によって解放されるまでポストフック操作が開始されなくなり、PartiallyFailed
バックアップステータスが発生しなくなりました。OADP-3140
DPA のデプロイが、37 文字を超える namespace でも期待どおりに機能するようになる
新しい DPA を作成するために、37 文字を超える namespace に OADP Operator をインストールすると、"cloud-credentials" シークレットのラベル付けが失敗し、DPA によって次のエラーが報告されていました。
The generated label name is too long.
The generated label name is too long.
この更新により、名前が 37 文字を超える namespace でも DPA の作成が失敗しなくなりました。OADP-3960
タイムアウトエラーをオーバーライドすることで復元が正常に完了するようになる
以前は、大規模な環境で、復元操作の結果が Partiallyfailed
ステータスになり、fail to patch dynamic PV, err: context deadline exceeded
というエラーが発生していました。この更新により、Velero サーバー引数の resourceTimeout
を使用してこのタイムアウトエラーをオーバーライドすることで、復元が成功するようになりました。OADP-4344
このリリースで解決されたすべての問題のリストは、Jira の OADP 1.4.1 の解決済みの問題 を参照してください。
1.2.1.4.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
OADP を復元した後に Cassandra アプリケーション Pod が CrashLoopBackoff
ステータスになる
OADP が復元されると、Cassandra アプリケーション Pod が CrashLoopBackoff
ステータスになる可能性があります。この問題を回避するには、OADP を復元した後、CrashLoopBackoff
エラー状態を返す StatefulSet
Pod を削除します。その後、StatefulSet
コントローラーがこれらの Pod を再作成し、正常に動作するようになります。OADP-4407
ImageStream を参照するデプロイメントが適切に復元されず、Pod とボリュームの内容が破損する
File System Backup (FSB) の復元操作中に、ImageStream
を参照する Deployment
リソースが適切に復元されません。FSB を実行する復元された Pod と postHook
が途中で終了します。
復元操作中に、OpenShift Container Platform コントローラーが、Deployment
リソースの spec.template.spec.containers[0].image
フィールドを新しい ImageStreamTag
ハッシュで更新します。更新により、新しい Pod のロールアウトがトリガーされ、velero
が FSB とともにポストフックを実行する Pod が終了します。
この動作を回避するには、次の 2 段階の復元プロセスを実行します。
Deployment
リソースを除外して復元を実行します。次に例を示します。velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --exclude-resources=deployment.apps
$ velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --exclude-resources=deployment.apps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最初の復元が成功したら、次の例のように、次のリソースを含めて 2 回目の復元を実行します。
velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --include-resources=deployment.apps
$ velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --include-resources=deployment.apps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.1.5. OADP 1.4.0 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 1.4.0 リリースノートには、解決された問題と既知の問題が記載されています。
1.2.1.5.1. 解決された問題 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS 4.16 で復元が正しく機能する
以前は、削除されたアプリケーション namespace を復元する際に、Red Hat OpenShift Service on AWS 4.16 で resource name may not be empty
エラーが発生し、復元操作が部分的に失敗していました。この更新により、Red Hat OpenShift Service on AWS 4.16 で復元が期待どおりに機能するようになりました。OADP-4075
Data Mover バックアップは Red Hat OpenShift Service on AWS 4.16 クラスターで正常に動作します
以前は、Velero は Spec.SourceVolumeMode
フィールドが存在しない以前のバージョンの SDK を使用していました。その結果、バージョン 4.2 の外部スナップショットの Red Hat OpenShift Service on AWS 4.16 クラスターで Data Mover のバックアップが失敗しました。この更新により、外部スナップショットインスタンスはバージョン 7.0 以降にアップグレードされました。その結果、Red Hat OpenShift Service on AWS 4.16 ではバックアップが失敗しなくなります。OADP-3922
このリリースで解決されたすべての問題のリストは、Jira の OADP 1.4.0 の解決済みの問題 のリストを参照してください。
1.2.1.5.2. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
MCG に checksumAlgorithm が設定されていない場合、バックアップが失敗する
バックアップロケーションとして Noobaa を使用してアプリケーションのバックアップを実行するときに、checksumAlgorithm
設定パラメーターが設定されていない場合は、バックアップは失敗します。この問題を解決するために、Backup Storage Location (BSL) の設定で checksumAlgorithm
の値を指定しなかった場合、空の値が追加されます。空の値は、Data Protection Application (DPA) カスタムリソース (CR) を使用して作成された BSL に対してのみ追加され、他の方法を使用して BSL が作成された場合、この値は追加されません。OADP-4274
このリリースにおける既知の問題の完全なリストは、Jira の OADP 1.4.0 known issues のリストを参照してください。
1.2.1.5.3. アップグレードの注意事項 リンクのコピーリンクがクリップボードにコピーされました!
必ず次のマイナーバージョンにアップグレードしてください。バージョンは絶対に スキップしないでください。新しいバージョンに更新するには、一度に 1 つのチャネルのみアップグレードします。たとえば、OpenShift API for Data Protection (OADP) 1.1 から 1.3 にアップグレードする場合、まず 1.2 にアップグレードし、次に 1.3 にアップグレードします。
1.2.1.5.3.1. OADP 1.3 から 1.4 への変更点 リンクのコピーリンクがクリップボードにコピーされました!
Velero サーバーが、バージョン 1.12 から 1.14 に更新されました。Data Protection Application (DPA) には変更がない点に注意してください。
これにより、以下の変更が発生します。
-
velero-plugin-for-csi
コードが Velero コードで利用可能になりました。つまり、プラグインにinit
コンテナーが不要になりました。 - Velero は、クライアントのバーストと QPS のデフォルトをそれぞれ 30 と 20 から 100 と 100 に変更しました。
velero-plugin-for-aws
プラグインは、BackupStorageLocation
オブジェクト (BSL) のspec.config.checksumAlgorithm
フィールドのデフォルト値を""
(チェックサム計算なし) からCRC32
アルゴリズムに更新しました。チェックサムアルゴリズムタイプは AWS でのみ動作することがわかっています。いくつかの S3 プロバイダーでは、チェックサムアルゴリズムを""
に設定してmd5sum
を無効にする必要があります。ストレージプロバイダーでmd5sum
アルゴリズムのサポートと設定を確認してください。OADP 1.4 では、この設定の DPA 内で作成される BSL のデフォルト値は
""
です。このデフォルト値は、md5sum
がチェックされないことを意味し、OADP 1.3 と一致しています。DPA 内で作成された BSL の場合は、DPA のspec.backupLocations[].velero.config.checksumAlgorithm
フィールドを使用して更新します。BSL が DPA の外部で作成された場合は、BSL でspec.config.checksumAlgorithm
を使用してこの設定を更新できます。
1.2.1.5.3.2. DPA 設定をバックアップする リンクのコピーリンクがクリップボードにコピーされました!
現在の DataProtectionApplication
(DPA) 設定をバックアップする必要があります。
手順
次のコマンドを実行して、現在の DPA 設定を保存します。
コマンドの例
oc get dpa -n openshift-adp -o yaml > dpa.orig.backup
$ oc get dpa -n openshift-adp -o yaml > dpa.orig.backup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.1.5.3.3. OADP Operator をアップグレードする リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) Operator をアップグレードする場合は、次の手順を使用します。
手順
-
OADP Operator のサブスクリプションチャネルを、
stable-1.3
からstable-1.4
に変更します。 - Operator とコンテナーが更新され、再起動するまで待ちます。
1.2.1.5.4. DPA を新しいバージョンに変換する リンクのコピーリンクがクリップボードにコピーされました!
OADP 1.3 から 1.4 にアップグレードする場合、Data Protection Application (DPA) を変更する必要はありません。
1.2.1.5.5. アップグレードの検証 リンクのコピーリンクがクリップボードにコピーされました!
アップグレードを検証するには、次の手順を使用します。
手順
次のコマンドを実行して OpenShift API for Data Protection (OADP) リソースを表示し、インストールを検証します。
oc get all -n openshift-adp
$ oc get all -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
DataProtectionApplication
(DPA) が調整されていることを確認します。oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
type
がReconciled
に設定されていることを確認します。 次のコマンドを実行して、Backup Storage Location を確認し、
PHASE
がAvailable
であることを確認します。oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. OADP パフォーマンス リンクのコピーリンクがクリップボードにコピーされました!
1.3.1. OADP 推奨ネットワーク設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) のサポートされたエクスペリエンスを得るには、OpenShift ノード、S3 ストレージ、および OpenShift ネットワーク要件の推奨事項を満たすサポート対象のクラウド環境全体で、安定した回復力のあるネットワークが必要です。
最適ではないデータパスを持つクラスター外にあるリモート S3 バケットを含むデプロイメントでバックアップ操作および復元操作を正常に実行するには、最適ではない状況でネットワーク設定が次の最小要件を満たすことが推奨されます。
- 帯域幅 (オブジェクトストレージへのネットワークアップロード速度): 小規模なバックアップの場合は 2 Mbps 以上、大規模なバックアップの場合はデータ量に応じて 10 - 100 Mbps。
- 1% のパケットロス
- パケット破損: 1%
- 遅延: 100ms
Red Hat OpenShift Service on AWS ネットワークが最適に動作し、Red Hat OpenShift Service on AWS ネットワークの要件を満たしていることを確認します。
Red Hat は標準的なバックアップおよび復元の失敗に対するサポートを提供していますが、推奨されるしきい値を満たさないネットワーク設定によって発生する失敗に対するサポートは提供していません。
1.4. OADP の機能とプラグイン リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 機能は、アプリケーションをバックアップおよび復元するためのオプションを提供します。
デフォルトのプラグインにより、Velero は特定のクラウドプロバイダーと統合し、Red Hat OpenShift Service on AWS リソースをバックアップおよび復元できるようになります。
1.4.1. OADP の機能 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) は、以下の機能をサポートします。
- バックアップ
OADP を使用して OpenShift Platform 上のすべてのアプリケーションをバックアップしたり、タイプ、namespace、またはラベルでリソースをフィルターしたりできます。
OADP は、Kubernetes オブジェクトと内部イメージをアーカイブファイルとしてオブジェクトストレージに保存することにより、それらをバックアップします。OADP は、ネイティブクラウドスナップショット API または Container Storage Interface (CSI) を使用してスナップショットを作成することにより、永続ボリューム (PV) をバックアップします。スナップショットをサポートしないクラウドプロバイダーの場合、OADP は Restic を使用してリソースと PV データをバックアップします。
注記バックアップと復元を成功させるには、アプリケーションのバックアップから Operator を除外する必要があります。
- 復元
バックアップからリソースと PV を復元できます。バックアップ内のすべてのオブジェクトを復元することも、オブジェクトを namespace、PV、またはラベルでフィルタリングすることもできます。
注記バックアップと復元を成功させるには、アプリケーションのバックアップから Operator を除外する必要があります。
- スケジュール
- 指定した間隔でバックアップをスケジュールできます。
- フック
-
フックを使用して、Pod 上のコンテナーでコマンドを実行できます。たとえば、
fsfreeze
を使用してファイルシステムをフリーズできます。バックアップまたは復元の前または後に実行するようにフックを設定できます。復元フックは、init コンテナーまたはアプリケーションコンテナーで実行できます。
1.4.2. OADP プラグイン リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) は、バックアップおよびスナップショット操作をサポートするためにストレージプロバイダーと統合されたデフォルトの Velero プラグインを提供します。Velero プラグインに基づき、カスタムプラグイン を作成できます。
OADP は、Red Hat OpenShift Service on AWS リソースバックアップ、OpenShift Virtualization リソースバックアップ、および Container Storage Interface (CSI) スナップショット用のプラグインも提供します。
OADP プラグイン | 機能 | ストレージの場所 |
---|---|---|
| Kubernetes オブジェクトをバックアップし、復元します。 | AWS S3 |
スナップショットを使用してボリュームをバックアップおよび復元します。 | AWS EBS | |
| Red Hat OpenShift Service on AWS リソースをバックアップおよび復元します。[1] | オブジェクトストア |
| OpenShift Virtualization リソースをバックアップおよび復元します。[2] | オブジェクトストア |
| CSI スナップショットを使用して、ボリュームをバックアップおよび復元します。[3] | CSI スナップショットをサポートするクラウドストレージ |
| VolumeSnapshotMover は、クラスターの削除などの状況で、ステートフルアプリケーションを回復するための復元プロセス中に使用されるスナップショットをクラスターからオブジェクトストアに再配置します。[4] | オブジェクトストア |
- 必須。
- 仮想マシンディスクは CSI スナップショットまたは Restic でバックアップされます。
csi
プラグインは、Kubernetes CSI スナップショット API を使用します。-
OADP 1.1 以降は
snapshot.storage.k8s.io/v1
を使用します。 -
OADP 1.0 は
snapshot.storage.k8s.io/v1beta1
を使用します。
-
OADP 1.1 以降は
- OADP 1.2 のみ。
1.4.3. OADP Velero プラグインについて リンクのコピーリンクがクリップボードにコピーされました!
Velero のインストール時に、次の 2 種類のプラグインを設定できます。
- デフォルトのクラウドプロバイダープラグイン
- カスタムプラグイン
どちらのタイプのプラグインもオプションですが、ほとんどのユーザーは少なくとも 1 つのクラウドプロバイダープラグインを設定します。
1.4.3.1. デフォルトの Velero クラウドプロバイダープラグイン リンクのコピーリンクがクリップボードにコピーされました!
デプロイメント中に oadp_v1alpha1_dpa.yaml
ファイルを設定するときに、次のデフォルトの Velero クラウドプロバイダープラグインのいずれかをインストールできます。
-
aws
(Amazon Web Services) -
gcp
(Google Cloud Platform) -
azure
(Microsoft Azure) -
openshift
(OpenShift Velero プラグイン) -
csi
(Container Storage Interface) -
kubevirt
(KubeVirt)
デプロイメント中に oadp_v1alpha1_dpa.yaml
ファイルで目的のデフォルトプラグインを指定します。
ファイルの例:
次の .yaml
ファイルは、openshift
、aws
、azure
、および gcp
プラグインをインストールします。
1.4.3.2. カスタム Velero プラグイン リンクのコピーリンクがクリップボードにコピーされました!
デプロイメント中に oadp_v1alpha1_dpa.yaml
ファイルを設定するときに、プラグインの image
と name
を指定することにより、カスタム Velero プラグインをインストールできます。
デプロイメント中に oadp_v1alpha1_dpa.yaml
ファイルで目的のカスタムプラグインを指定します。
ファイルの例:
次の .yaml
ファイルは、デフォルトの openshift
、azure
、および gcp
プラグインと、イメージ quay.io/example-repo/custom-velero-plugin
を持つ custom-plugin-example
という名前のカスタムプラグインをインストールします。
1.4.4. OADP と FIPS リンクのコピーリンクがクリップボードにコピーされました!
Federal Information Processing Standards (FIPS) は、Federal Information Security Management Act (FISMA) に従って米国連邦政府が開発した一連のコンピューターセキュリティー標準です。
OpenShift API for Data Protection (OADP) はテスト済みで、Red Hat OpenShift Service on AWS クラスターで動作します。
1.4.5. Velero プラグインのパニックエラーの回避 リンクのコピーリンクがクリップボードにコピーされました!
シークレットが欠落していると、イメージストリームのバックアップ中に Velero プラグインでパニックエラーが発生する可能性があります。
バックアップと Backup Storage Location (BSL) が Data Protection Application (DPA) のスコープ外で管理されている場合、OADP コントローラーによって関連する oadp-<bsl_name>-<bsl_provider>-registry-secret
パラメーターが作成されません。
バックアップ操作中に、OpenShift Velero プラグインは イメージストリームの
バックアップでパニックを起こし、次のパニックエラーが発生します。
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
1.4.6. 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 を参照してください。
1.5. OADP のユースケース リンクのコピーリンクがクリップボードにコピーされました!
1.5.1. ROSA STS を使用する OADP 上のワークロードのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
1.5.1.1. OADP と ROSA STS を使用したバックアップの実行 リンクのコピーリンクがクリップボードにコピーされました!
次の hello-world
アプリケーションの例では、永続ボリューム (PV) がアタッチされていません。Red Hat OpenShift Service on AWS (ROSA) STS で OpenShift API for Data Protection (OADP) を使用してバックアップを実行します。
どちらの Data Protection Application (DPA) 設定も機能します。
次のコマンドを実行して、バックアップするワークロードを作成します。
oc create namespace hello-world
$ oc create namespace hello-world
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-app -n hello-world --image=docker.io/openshift/hello-openshift
$ oc new-app -n hello-world --image=docker.io/openshift/hello-openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してルートを公開します。
oc expose service/hello-openshift -n hello-world
$ oc expose service/hello-openshift -n hello-world
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、アプリケーションが動作していることを確認します。
curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`
$ curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Hello OpenShift!
Hello OpenShift!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ワークロードをバックアップします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow バックアップが完了するまで待ってから、次のコマンドを実行します。
watch "oc -n openshift-adp get backup hello-world -o json | jq .status"
$ watch "oc -n openshift-adp get backup hello-world -o json | jq .status"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、デモワークロードを削除します。
oc delete ns hello-world
$ oc delete ns hello-world
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、バックアップからワークロードを復元します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、復元が完了するまで待ちます。
watch "oc -n openshift-adp get restore hello-world -o json | jq .status"
$ watch "oc -n openshift-adp get restore hello-world -o json | jq .status"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ワークロードが復元されていることを確認します。
oc -n hello-world get pods
$ oc -n hello-world get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE hello-openshift-9f885f7c6-kdjpj 1/1 Running 0 90s
NAME READY STATUS RESTARTS AGE hello-openshift-9f885f7c6-kdjpj 1/1 Running 0 90s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して JSONPath を確認します。
curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`
$ curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Hello OpenShift!
Hello OpenShift!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
トラブルシューティングのヒントについては、トラブルシューティングのドキュメント を参照してください。
1.5.1.2. OADP と ROSA STS を使用してバックアップ後のクラスターをクリーンアップする リンクのコピーリンクがクリップボードにコピーされました!
この例のバックアップおよび S3 バケットと OpenShift API for Data Protection (OADP) Operator をアンインストールする必要がある場合は、次の手順を実行します。
手順
次のコマンドを実行して、ワークロードを削除します。
oc delete ns hello-world
$ oc delete ns hello-world
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Data Protection Application (DPA) を削除します。
oc -n openshift-adp delete dpa ${CLUSTER_NAME}-dpa
$ oc -n openshift-adp delete dpa ${CLUSTER_NAME}-dpa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラウドストレージを削除します。
oc -n openshift-adp delete cloudstorage ${CLUSTER_NAME}-oadp
$ oc -n openshift-adp delete cloudstorage ${CLUSTER_NAME}-oadp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告このコマンドがハングした場合は、次のコマンドを実行してファイナライザーを削除する必要がある場合があります。
oc -n openshift-adp patch cloudstorage ${CLUSTER_NAME}-oadp -p '{"metadata":{"finalizers":null}}' --type=merge
$ oc -n openshift-adp patch cloudstorage ${CLUSTER_NAME}-oadp -p '{"metadata":{"finalizers":null}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator が不要になった場合は、次のコマンドを実行して削除します。
oc -n openshift-adp delete subscription oadp-operator
$ oc -n openshift-adp delete subscription oadp-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator から namespace を削除します。
oc delete ns openshift-adp
$ oc delete ns openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow バックアップおよび復元リソースが不要になった場合は、次のコマンドを実行してクラスターからリソースを削除します。
oc delete backups.velero.io hello-world
$ oc delete backups.velero.io hello-world
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS S3 のバックアップ、復元、およびリモートオブジェクトを削除するには、次のコマンドを実行します。
velero backup delete hello-world
$ velero backup delete hello-world
Copy to Clipboard Copied! Toggle word wrap Toggle overflow カスタムリソース定義 (CRD) が不要になった場合は、次のコマンドを実行してクラスターから削除します。
for CRD in `oc get crds | grep velero | awk '{print $1}'`; do oc delete crd $CRD; done
$ for CRD in `oc get crds | grep velero | awk '{print $1}'`; do oc delete crd $CRD; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、AWS S3 バケットを削除します。
aws s3 rm s3://${CLUSTER_NAME}-oadp --recursive
$ aws s3 rm s3://${CLUSTER_NAME}-oadp --recursive
Copy to Clipboard Copied! Toggle word wrap Toggle overflow aws s3api delete-bucket --bucket ${CLUSTER_NAME}-oadp
$ aws s3api delete-bucket --bucket ${CLUSTER_NAME}-oadp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ロールからポリシーを切り離します。
aws iam detach-role-policy --role-name "${ROLE_NAME}" --policy-arn "${POLICY_ARN}"
$ aws iam detach-role-policy --role-name "${ROLE_NAME}" --policy-arn "${POLICY_ARN}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してロールを削除します。
aws iam delete-role --role-name "${ROLE_NAME}"
$ aws iam delete-role --role-name "${ROLE_NAME}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.2. OpenShift API for Data Protection と Red Hat OpenShift Data Foundation (ODF) を使用したバックアップ リンクのコピーリンクがクリップボードにコピーされました!
以下は、OADP と ODF を使用してアプリケーションをバックアップするユースケースです。
1.5.2.1. OADP と ODF を使用したアプリケーションのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
このユースケースでは、OADP を使用してアプリケーションをバックアップし、Red Hat OpenShift Data Foundation (ODF) によって提供されるオブジェクトストレージにバックアップを保存します。
- Backup Storage Location を設定するために、Object Bucket Claim (OBC) を作成します。ODF を使用して、Amazon S3 互換のオブジェクトストレージバケットを設定します。ODF は、MultiCloud Object Gateway (NooBaa MCG) と Ceph Object Gateway (RADOS Gateway (RGW) とも呼ばれる) オブジェクトストレージサービスを提供します。このユースケースでは、Backup Storage Location として NooBaa MCG を使用します。
-
aws
プロバイダープラグインを使用して、OADP で NooBaa MCG サービスを使用します。 - Backup Storage Location (BSL) を使用して Data Protection Application (DPA) を設定します。
- バックアップカスタムリソース (CR) を作成し、バックアップするアプリケーションの namespace を指定します。
- バックアップを作成して検証します。
前提条件
- OADP Operator をインストールした。
- ODF Operator をインストールした。
- 別の namespace で実行されているデータベースを持つアプリケーションがある。
手順
次の例に示すように、NooBaa MCG バケットを要求する OBC マニフェストファイルを作成します。
OBC の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して OBC を作成します。
oc create -f <obc_file_name>
$ oc create -f <obc_file_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Object Bucket Claim マニフェストのファイル名を指定します。
OBC を作成すると、ODF が Object Bucket Claim と同じ名前の
secret
とconfig map
を作成します。secret
にはバケットの認証情報が含まれており、config map
にはバケットにアクセスするための情報が含まれています。生成された config map からバケット名とバケットホストを取得するには、次のコマンドを実行します。oc extract --to=- cm/test-obc
$ oc extract --to=- cm/test-obc
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
test-obc
は OBC の名前です。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された
secret
からバケットの認証情報を取得するには、次のコマンドを実行します。oc extract --to=- secret/test-obc
$ oc extract --to=- secret/test-obc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
# AWS_ACCESS_KEY_ID ebYR....xLNMc # AWS_SECRET_ACCESS_KEY YXf...+NaCkdyC3QPym
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
openshift-storage
namespace の s3 ルートから S3 エンドポイントのパブリック URL を取得します。oc get route s3 -n openshift-storage
$ oc get route s3 -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドに示すように、オブジェクトバケットの認証情報を含む
cloud-credentials
ファイルを作成します。[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドに示すように、
cloud-credentials
ファイルの内容を使用してcloud-credentials
シークレットを作成します。oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials
$ oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、Data Protection Application (DPA) を設定します。
DPA の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して DPA を作成します。
oc apply -f <dpa_filename>
$ oc apply -f <dpa_filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、DPA が正常に作成されたことを確認します。出力例から、
status
オブジェクトのtype
フィールドがReconciled
に設定されていることがわかります。これは、DPA が正常に作成されたことを意味します。oc get dpa -o yaml
$ oc get dpa -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Backup Storage Location (BSL) が使用可能であることを確認します。
oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、バックアップ CR を設定します。
バックアップ CR の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップするアプリケーションの namespace を指定します。
次のコマンドを実行してバックアップ CR を作成します。
oc apply -f <backup_cr_filename>
$ oc apply -f <backup_cr_filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、バックアップオブジェクトが
Completed
フェーズにあることを確認します。詳細は、出力例を参照してください。oc describe backup test-backup -n openshift-adp
$ oc describe backup test-backup -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.3. OpenShift API for Data Protection (OADP) による復元のユースケース リンクのコピーリンクがクリップボードにコピーされました!
以下は、OADP を使用してバックアップを別の namespace に復元するユースケースです。
1.5.3.1. OADP を使用してアプリケーションを別の namespace に復元する リンクのコピーリンクがクリップボードにコピーされました!
OADP を使用して、アプリケーションのバックアップを、新しいターゲット namespace の test-restore-application
に復元します。バックアップを復元するには、次の例に示すように、復元カスタムリソース (CR) を作成します。この復元 CR では、バックアップに含めたアプリケーションの namespace を、ソース namespace が参照します。その後、新しい復元先の namespace にプロジェクトを切り替えてリソースを確認することで、復元を検証します。
前提条件
- OADP Operator をインストールした。
- 復元するアプリケーションのバックアップがある。
手順
次の例に示すように、復元 CR を作成します。
復元 CR の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して復元 CR を適用します。
oc apply -f <restore_cr_filename>
$ oc apply -f <restore_cr_filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、復元が
Completed
フェーズにあることを確認します。oc describe restores.velero.io <restore_name> -n openshift-adp
$ oc describe restores.velero.io <restore_name> -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、復元先の namespace
test-restore-application
に切り替えます。oc project test-restore-application
$ oc project test-restore-application
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、永続ボリューム要求 (pvc)、サービス (svc)、デプロイメント、シークレット、config map などの復元されたリソースを確認します。
oc get pvc,svc,deployment,secret,configmap
$ oc get pvc,svc,deployment,secret,configmap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.4. バックアップ時の自己署名 CA 証明書の追加 リンクのコピーリンクがクリップボードにコピーされました!
自己署名認証局 (CA) 証明書を Data Protection Application (DPA) に含めてから、アプリケーションをバックアップできます。バックアップは、Red Hat OpenShift Data Foundation (ODF) が提供する NooBaa バケットに保存します。
1.5.4.1. アプリケーションとその自己署名 CA 証明書のバックアップ リンクのコピーリンクがクリップボードにコピーされました!
ODF によって提供される s3.openshift-storage.svc
サービスは、自己署名サービス CA で署名された Transport Layer Security (TLS) プロトコル証明書を使用します。
certificate signed by unknown authority
エラーを防ぐには、DataProtectionApplication
カスタムリソース (CR) の Backup Storage Location (BSL) セクションに自己署名 CA 証明書を含める必要があります。この場合、次のタスクを完了する必要があります。
- Object Bucket Claim (OBC) を作成して、NooBaa バケットを要求します。
- バケットの詳細を抽出します。
-
DataProtectionApplication
CR に自己署名 CA 証明書を含めます。 - アプリケーションをバックアップします。
前提条件
- OADP Operator をインストールした。
- ODF Operator をインストールした。
- 別の namespace で実行されているデータベースを持つアプリケーションがある。
手順
次の例に示すように、NooBaa バケットを要求する OBC マニフェストを作成します。
ObjectBucketClaim
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して OBC を作成します。
oc create -f <obc_file_name>
$ oc create -f <obc_file_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OBC を作成すると、ODF が Object Bucket Claim と同じ名前の
secret
とConfigMap
を作成します。secret
オブジェクトにはバケットの認証情報が含まれ、ConfigMap
オブジェクトにはバケットにアクセスするための情報が含まれています。生成された config map からバケット名とバケットホストを取得するには、次のコマンドを実行します。oc extract --to=- cm/test-obc
$ oc extract --to=- cm/test-obc
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- OBC の名前は
test-obc
です。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow secret
オブジェクトからバケット認証情報を取得するには、次のコマンドを実行します。oc extract --to=- secret/test-obc
$ oc extract --to=- secret/test-obc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
# AWS_ACCESS_KEY_ID ebYR....xLNMc # AWS_SECRET_ACCESS_KEY YXf...+NaCkdyC3QPym
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の設定例を使用して、オブジェクトバケットの認証情報を含む
cloud-credentials
ファイルを作成します。[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
cloud-credentials
ファイルの内容を使用してcloud-credentials
シークレットを作成します。oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials
$ oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
openshift-service-ca.crt
config map からサービス CA 証明書を抽出します。証明書をBase64
形式で必ずエンコードし、次のステップで使用する値をメモしてください。oc get cm/openshift-service-ca.crt \ -o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echo
$ oc get cm/openshift-service-ca.crt \ -o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0... ....gpwOHMwaG9CRmk5a3....FLS0tLS0K
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0... ....gpwOHMwaG9CRmk5a3....FLS0tLS0K
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、バケット名と CA 証明書を使用して
DataProtectionApplication
CR マニフェストファイルを設定します。DataProtectionApplication
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
DataProtectionApplication
CR を作成します。oc apply -f <dpa_filename>
$ oc apply -f <dpa_filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
DataProtectionApplication
CR が正常に作成されたことを確認します。oc get dpa -o yaml
$ oc get dpa -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Backup Storage Location (BSL) が使用可能であることを確認します。
oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例を使用して、
Backup
CR を設定します。Backup
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップするアプリケーションの namespace を指定します。
次のコマンドを実行して
Backup
CR を作成します。oc apply -f <backup_cr_filename>
$ oc apply -f <backup_cr_filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、
Backup
オブジェクトがCompleted
フェーズにあることを確認します。oc describe backup test-backup -n openshift-adp
$ oc describe backup test-backup -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6. OADP のインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
1.6.1. OADP のインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS (ROSA) クラスターで OpenShift API for Data Protection (OADP) を使用して、アプリケーションデータをバックアップおよび復元できます。
OpenShift API for Data Protection (OADP) をインストールする前に、OADP が Amazon Web Services API を使用できるように、OADP のロールとポリシーの認証情報を設定する必要があります。
このプロセスは次の 2 段階で実行されます。
- AWS 認証情報を準備します。
- OADP Operator をインストールし、IAM ロールを付与します。
1.6.1.1. OADP 用の AWS 認証情報を準備する リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services アカウントは、OpenShift API for Data Protection (OADP) インストールを受け入れるように準備および設定する必要があります。
手順
次のコマンドを実行して、以下の環境変数を作成します。
重要ROSA クラスターに一致するようにクラスター名を変更し、管理者としてクラスターにログインしていることを確認します。続行する前に、すべてのフィールドが正しく出力されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
my-cluster
は、ROSA クラスター名に置き換えます。
AWS アカウントで、AWS S3 へのアクセスを許可する IAM ポリシーを作成します。
以下のコマンドを実行して、ポリシーが存在するかどうかを確認します。
POLICY_ARN=$(aws iam list-policies --query "Policies[?PolicyName=='RosaOadpVer1'].{ARN:Arn}" --output text)
$ POLICY_ARN=$(aws iam list-policies --query "Policies[?PolicyName=='RosaOadpVer1'].{ARN:Arn}" --output text)
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
RosaOadp
は、実際のポリシー名に置き換えます。
以下のコマンドを入力してポリシー JSON ファイルを作成し、ROSA でポリシーを作成します。
注記ポリシー ARN が見つからない場合、コマンドはポリシーを作成します。ポリシー ARN がすでに存在する場合、
if
ステートメントはポリシーの作成を意図的にスキップします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
SCRATCH
は、環境変数用に作成された一時ディレクトリーの名前です。
以下のコマンドを実行してポリシー ARN を表示します。
echo ${POLICY_ARN}
$ echo ${POLICY_ARN}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスターの IAM ロール信頼ポリシーを作成します。
次のコマンドを実行して、信頼ポリシーファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してロールを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ロール ARN を表示します。
echo ${ROLE_ARN}
$ echo ${ROLE_ARN}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、IAM ポリシーを IAM ロールにアタッチします。
aws iam attach-role-policy --role-name "${ROLE_NAME}" \ --policy-arn ${POLICY_ARN}
$ aws iam attach-role-policy --role-name "${ROLE_NAME}" \ --policy-arn ${POLICY_ARN}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.1.2. OADP Operator のインストールおよび IAM ロールの指定 リンクのコピーリンクがクリップボードにコピーされました!
AWS Security Token Service (AWS STS) は、IAM またはフェデレーションされたユーザーの短期認証情報を提供するグローバル Web サービスです。STS を使用した Red Hat OpenShift Service on AWS (ROSA) は、ROSA クラスターに推奨される認証情報モードです。このドキュメントでは、AWS STS を使用する ROSA に OpenShift API for Data Protection (OADP) をインストールする方法を説明します。
Restic はサポートされていません。
Container Storage Interface (CSI) スナップショットをサポートしていないファイルシステムをバックアップする場合は、Kopia File System Backup (FSB) がサポートされています。
ファイルシステムの例には次のものがあります。
- Amazon Elastic File System (EFS)
- Network File System (NFS)
-
emptyDir
ボリューム - ローカルボリューム
ボリュームをバックアップする場合、AWS STS を使用する ROSA の OADP は、ネイティブスナップショットと Container Storage Interface (CSI) スナップショットのみをサポートします。
STS 認証を使用する Amazon ROSA クラスターでは、別の AWS リージョンでのバックアップデータの復元はサポートされていません。
Data Mover 機能は現在、ROSA クラスターではサポートされていません。データの移動にはネイティブ AWS S3 ツールを使用できます。
前提条件
-
必要なアクセス権とトークンを備えた Red Hat OpenShift Service on AWS。詳細は、前の手順である OADP 用の AWS 認証情報の準備 を参照してください。バックアップと復元に 2 つの異なるクラスターを使用する予定の場合は、
ROLE_ARN
を含む AWS 認証情報をクラスターごとに準備する必要があります。
手順
次のコマンドを入力して、AWS トークンファイルから Red Hat OpenShift Service on AWS シークレットを作成します。
認証情報ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<aws_region>
は、STS エンドポイントに使用する AWS リージョンに置き換えます。
OADP の namespace を作成します。
oc create namespace openshift-adp
$ oc create namespace openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat OpenShift Service on AWS のシークレットを作成します。
oc -n openshift-adp create secret generic cloud-credentials \ --from-file=${SCRATCH}/credentials
$ oc -n openshift-adp create secret generic cloud-credentials \ --from-file=${SCRATCH}/credentials
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Red Hat OpenShift Service on AWS バージョン 4.15 以降、Operator Lifecycle Manager (OLM) および Cloud Credentials Operator (CCO) により、OADP Operator で標準化された新しい STS ワークフローがサポートされるようになりました。このワークフローでは、上記のシークレットを作成する必要はなく、Red Hat OpenShift Service on AWS Web コンソールを使用して OLM 管理のオペレーターのインストール中にロール ARN を指定するだけで済みます。詳細は、Web コンソールを使用した OperatorHub からのインストール を参照してください。
前述のシークレットは CCO によって自動的に作成されます。
OADP Operator をインストールします。
- Red Hat OpenShift Service on AWS Web コンソールで、Operators → OperatorHub に移動します。
- OADP Operator を検索します。
- role_ARN フィールドに、前に作成した role_arn を貼り付け、Install をクリックします。
次のコマンドを入力し、AWS 認証情報を使用して AWS クラウドストレージを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、アプリケーションのストレージのデフォルトストレージクラスを確認します。
oc get pvc -n <namespace>
$ oc get pvc -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE applog Bound pvc-351791ae-b6ab-4e8b-88a4-30f73caf5ef8 1Gi RWO gp3-csi 4d19h mysql Bound pvc-16b8e009-a20a-4379-accc-bc81fedd0621 1Gi RWO gp3-csi 4d19h
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE applog Bound pvc-351791ae-b6ab-4e8b-88a4-30f73caf5ef8 1Gi RWO gp3-csi 4d19h mysql Bound pvc-16b8e009-a20a-4379-accc-bc81fedd0621 1Gi RWO gp3-csi 4d19h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してストレージクラスを取得します。
oc get storageclass
$ oc get storageclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE gp2 kubernetes.io/aws-ebs Delete WaitForFirstConsumer true 4d21h gp2-csi ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h gp3 ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h gp3-csi (default) ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE gp2 kubernetes.io/aws-ebs Delete WaitForFirstConsumer true 4d21h gp2-csi ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h gp3 ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h gp3-csi (default) ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記次のストレージクラスが機能します。
- gp3-csi
- gp2-csi
- gp3
- gp2
すべてのアプリケーション、またはバックアップされるアプリケーションが Container Storage Interface (CSI) で永続ボリューム (PV) を使用している場合は、OADP DPA 設定に CSI プラグインを含めることをお勧めします。
バックアップとボリュームスナップショットが保存されるストレージへの接続を設定するために、
DataProtectionApplication
リソースを作成します。CSI ボリュームのみを使用している場合は、次のコマンドを入力して Data Protection Application をデプロイします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
CSI ボリュームまたは非 CSI ボリュームを使用している場合は、次のコマンドを入力して Data Protection Application をデプロイします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ROSA は内部イメージバックアップをサポートします。イメージのバックアップを使用しない場合は、このフィールドを false に設定します。
- 2
nodeAgent
属性に関する重要な注記を参照してください。- 3
credentialsFile
フィールドは、Pod のバケット認証情報のマウント先です。- 4
enableSharedConfig
フィールドを使用すると、snapshotLocations
がバケットに定義された認証情報を共有または再利用できます。- 5
- AWS 認証情報ファイルに設定されているプロファイル名を使用します。
- 6
region
は、お使いの AWS リージョンに指定します。これはクラスターリージョンと同じである必要があります。
これで、アプリケーションのバックアップ の説明に従って、Red Hat OpenShift Service on AWS アプリケーションをバックアップおよび復元する準備が整いました。
OADP は ROSA 環境で Restic をサポートしていないため、restic
の enable
パラメーターは false
に設定されています。
OADP 1.2 を使用する場合は、次の設定を置き換えます。
nodeAgent: enable: false uploaderType: restic
nodeAgent:
enable: false
uploaderType: restic
次の設定に置き換えます。
restic: enable: false
restic:
enable: false
バックアップと復元に 2 つの異なるクラスターを使用する場合、クラウドストレージ CR と OADP DataProtectionApplication
設定の両方で、2 つのクラスターの AWS S3 ストレージ名が同じである必要があります。
1.6.1.3. OADP Operator サブスクリプションの IAM ロール ARN の更新 リンクのコピーリンクがクリップボードにコピーされました!
ROSA Security Token Service (STS) クラスターに OADP Operator をインストールするときに、IAM ロールの Amazon Resource Name (ARN) を誤って指定すると、openshift-adp-controller
Pod でエラーが発生します。生成された認証情報リクエストに間違った IAM ロール ARN が含まれています。認証情報リクエストオブジェクトを正しい IAM ロール ARN で更新するには、OADP Operator サブスクリプションを編集し、IAM ロール ARN に正しい値を適用します。OADP Operator のサブスクリプションを編集すると、IAM ロール ARN を更新するために OADP をアンインストールして再インストールする必要がなくなります。
前提条件
- 必要なアクセスとトークンを備えた Red Hat OpenShift Service on AWS クラスターがある。
- ROSA STS クラスターに OADP がインストールされている。
手順
OADP サブスクリプションに間違った IAM ロール ARN 環境変数が設定されていることを確認するには、次のコマンドを実行します。
oc get sub -o yaml redhat-oadp-operator
$ oc get sub -o yaml redhat-oadp-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Subscription の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 更新する
ROLEARN
の値を確認します。
次のコマンドを実行して、サブスクリプションの
ROLEARN
フィールドを正しいロール ARN で更新します。oc patch subscription redhat-oadp-operator -p '{"spec": {"config": {"env": [{"name": "ROLEARN", "value": "<role_arn>"}]}}}' --type='merge'
$ oc patch subscription redhat-oadp-operator -p '{"spec": {"config": {"env": [{"name": "ROLEARN", "value": "<role_arn>"}]}}}' --type='merge'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<role_arn>
-
更新する IAM ロール ARN を指定します。たとえば、
arn:aws:iam::160…..6956:role/oadprosa…..8wlf
です。
次のコマンドを実行して、
secret
オブジェクトが正しいロール ARN 値で更新されていることを確認します。oc get secret cloud-credentials -o jsonpath='{.data.credentials}' | base64 -d
$ oc get secret cloud-credentials -o jsonpath='{.data.credentials}' | base64 -d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
[default] sts_regional_endpoints = regional role_arn = arn:aws:iam::160.....6956:role/oadprosa.....8wlf web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
[default] sts_regional_endpoints = regional role_arn = arn:aws:iam::160.....6956:role/oadprosa.....8wlf web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
DataProtectionApplication
カスタムリソース (CR) マニフェストファイルを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
CloudStorage
CR を指定します。
次のコマンドを実行して、
DataProtectionApplication
CR を作成します。oc create -f <dpa_manifest_file>
$ oc create -f <dpa_manifest_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
DataProtectionApplication
CR が調整され、status
が"True"
に設定されていることを確認します。oc get dpa -n openshift-adp -o yaml
$ oc get dpa -n openshift-adp -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DataProtectionApplication
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
BackupStorageLocation
CR が使用可能な状態であることを確認します。oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例:
BackupStorageLocation
NAME PHASE LAST VALIDATED AGE DEFAULT ts-dpa-1 Available 3s 6s true
NAME PHASE LAST VALIDATED AGE DEFAULT ts-dpa-1 Available 3s 6s true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7. OADP のバックアップ リンクのコピーリンクがクリップボードにコピーされました!
1.7.1. アプリケーションのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
頻繁にバックアップを行うと、Backup Storage Location のストレージが消費される可能性があります。S3 バケットなどの非ローカルバックアップを使用する場合は、バックアップの頻度、保持期間、永続ボリューム (PV) のデータ量を確認してください。取得したバックアップはすべて期限が切れるまで残るため、スケジュールの有効期限 (TTL) 設定も確認してください。
Backup
カスタムリソース (CR) を作成することで、アプリケーションをバックアップできます。詳細は、バックアップ CR の作成 を参照してください。Backup
CR のさまざまなバックアップタイプは次のとおりです。
Backup
CR は、Kubernetes リソースと内部イメージのバックアップファイルを S3 オブジェクトストレージに作成します。
1.7.1.1. バックアップと復元を実行する前にリソースをプレビューする リンクのコピーリンクがクリップボードにコピーされました!
OADP は、タイプ、namespace、またはラベルに基づいてアプリケーションリソースをバックアップします。そのため、バックアップが完了した後にリソースを確認できます。同様に、復元操作が完了した後も、namespace、永続ボリューム (PV)、またはラベルに基づいて、復元されたオブジェクトを確認できます。事前にリソースをプレビューするには、バックアップおよび復元操作のドライランを実行します。
前提条件
- OADP Operator がインストールされている。
手順
実際のバックアップを実行する前に、バックアップに含まれるリソースをプレビューするには、次のコマンドを実行します。
velero backup create <backup-name> --snapshot-volumes false
$ velero backup create <backup-name> --snapshot-volumes false
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
--snapshot-volumes
パラメーターの値をfalse
に指定します。
バックアップリソースの詳細を確認するには、次のコマンドを実行します。
velero describe backup <backup_name> --details
$ velero describe backup <backup_name> --details
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップの名前を指定します。
実際の復元を実行する前に、復元に含まれるリソースをプレビューするには、次のコマンドを実行します。
velero restore create --from-backup <backup-name>
$ velero restore create --from-backup <backup-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップリソースを確認するために、作成したバックアップの名前を指定します。
重要velero restore create
コマンドは、クラスター内に復元リソースを作成します。リソースを確認した後、復元中に作成されたリソースを削除する必要があります。復元リソースの詳細を確認するには、次のコマンドを実行します。
velero describe restore <restore_name> --details
$ velero describe restore <restore_name> --details
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 復元の名前を指定します。
バックアップ操作の前または後にコマンドを実行するためのバックアップフックを作成できます。バックアップフックの作成 を参照してください。
Backup
CR の代わりに Schedule
CR を作成することにより、バックアップをスケジュールできます。Schedule CR を使用したバックアップのスケジュール設定 を参照してください。
1.7.1.2. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Service on AWS 4 は、Restic 復元プロセス中に Pod の準備を妨げる可能性のある Pod セキュリティーアドミッション (PSA) ポリシーを適用します。
この問題は OADP 1.1.6 および OADP 1.2.2 リリースで解決されており、これらのリリースにアップグレードすることが推奨されます。
1.7.2. Backup CR の作成 リンクのコピーリンクがクリップボードにコピーされました!
Backup
カスタムリソース (CR) を作成して、Kubernetes リソース、内部イメージ、永続ボリューム (PV) をバックアップします。
前提条件
- OpenShift API for Data Protection (OADP) Operator をインストールしている。
-
DataProtectionApplication
CR がReady
状態である。 バックアップロケーションの前提条件:
- Velero 用に S3 オブジェクトストレージを設定する必要があります。
-
DataProtectionApplication
CR でバックアップの場所を設定する必要があります。
スナップショットの場所の前提条件:
- クラウドプロバイダーには、ネイティブスナップショット API が必要であるか、Container Storage Interface (CSI) スナップショットをサポートしている必要があります。
-
CSI スナップショットの場合、CSI ドライバーを登録するために
VolumeSnapshotClass
CR を作成する必要があります。 -
DataProtectionApplication
CR でボリュームの場所を設定する必要があります。
手順
次のコマンドを入力して、
backupStorageLocations
CR を取得します。oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT openshift-adp velero-sample-1 Available 11s 31m
NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT openshift-adp velero-sample-1 Available 11s 31m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のように、
Backup
CR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップする namespace の配列を指定します。
- 2
- オプション: バックアップに含めるリソースの配列を指定します。リソースは、省略語 ('pods' は 'po' など) または完全修飾の場合があります。指定しない場合、すべてのリソースが含まれます。
- 3
- オプション: バックアップから除外するリソースの配列を指定します。リソースは、省略語 ('pods' は 'po' など) または完全修飾の場合があります。
- 4
backupStorageLocations
CR の名前を指定します。- 5
- 指定したラベルを すべて 持つバックアップリソースの {key,value} ペアのマップ。
- 6
- 指定したラベルを 1 つ以上 持つバックアップリソースの {key,value} ペアのマップ。
Backup
CR のステータスがCompleted
したことを確認します。oc get backups.velero.io -n openshift-adp <backup> -o jsonpath='{.status.phase}'
$ oc get backups.velero.io -n openshift-adp <backup> -o jsonpath='{.status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.3. バックアップフックの作成 リンクのコピーリンクがクリップボードにコピーされました!
バックアップを実行する際に、バックアップされる Pod に基づいて、Pod 内のコンテナーで実行するコマンドを 1 つ以上指定できます。
コマンドは、カスタムアクション処理の前 (プリ フック)、またはすべてのカスタムアクションが完了し、カスタムアクションで指定された追加アイテムがバックアップされた後 (ポスト フック) に実行するように設定できます。
Backup
カスタムリソース (CR) を編集して、Pod 内のコンテナーでコマンドを実行するためのバックアップフックを作成します。
手順
次の例のように、
Backup
CR のspec.hooks
ブロックにフックを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- オプション: フックが適用される namespace を指定できます。この値が指定されていない場合、フックはすべての namespace に適用されます。
- 2
- オプション: フックが適用されない namespace を指定できます。
- 3
- 現在、Pod は、フックを適用できる唯一のサポート対象リソースです。
- 4
- オプション: フックが適用されないリソースを指定できます。
- 5
- オプション: このフックは、ラベルに一致するオブジェクトにのみ適用されます。この値が指定されていない場合、フックはすべてのオブジェクトに適用されます。
- 6
- バックアップの前に実行するフックの配列。
- 7
- オプション: コンテナーが指定されていない場合、コマンドは Pod の最初のコンテナーで実行されます。
- 8
- これは、追加される
init
コンテナーのエントリーポイントです。 - 9
- エラー処理に許可される値は、
Fail
とContinue
です。デフォルトはFail
です。 - 10
- オプション: コマンドの実行を待機する時間。デフォルトは
30s
です。 - 11
- このブロックでは、バックアップ後に実行するフックの配列を、バックアップ前のフックと同じパラメーターで定義します。
1.7.4. Schedule CR を使用したバックアップのスケジュール設定 リンクのコピーリンクがクリップボードにコピーされました!
スケジュール操作を使用すると、Cron 式で指定された特定の時間にデータのバックアップを作成できます。
Backup
CR の代わりに Schedule
カスタムリソース (CR) を作成して、バックアップをスケジュールします。
バックアップスケジュールでは、別のバックアップが作成される前にバックアップを数量するための時間を十分確保してください。
たとえば、namespace のバックアップに通常 10 分かかる場合は、15 分ごとよりも頻繁にバックアップをスケジュールしないでください。
前提条件
- OpenShift API for Data Protection (OADP) Operator をインストールしている。
-
DataProtectionApplication
CR がReady
状態である。
手順
backupStorageLocations
CR を取得します。oc get backupStorageLocations -n openshift-adp
$ oc get backupStorageLocations -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT openshift-adp velero-sample-1 Available 11s 31m
NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT openshift-adp velero-sample-1 Available 11s 31m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のように、
Schedule
CR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 1
- バックアップをスケジュールするための
cron
式。たとえば、毎日 7:00 にバックアップを実行する場合は0 7 * * *
です。注記特定の間隔でバックアップをスケジュールするには、次の形式で
<duration_in_minutes>
を入力します。schedule: "*/10 * * * *"
schedule: "*/10 * * * *"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 引用符 (
" "
) の間に分の値を入力します。 - 2
- バックアップを作成する namespace の配列。
- 3
backupStorageLocations
CR の名前。- 4
- オプション: OADP バージョン 1.2 以降では、Restic を使用してボリュームのバックアップを実行するときに、
defaultVolumesToFsBackup: true
キーと値のペアを設定に追加します。OADP バージョン 1.1 では、Restic でボリュームをバックアップするときに、defaultVolumesToRestic: true
のキーと値のペアを追加します。
検証
スケジュールされたバックアップの実行後に、
Schedule
CR のステータスがCompleted
となっていることを確認します。oc get schedule -n openshift-adp <schedule> -o jsonpath='{.status.phase}'
$ oc get schedule -n openshift-adp <schedule> -o jsonpath='{.status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5. バックアップの削除 リンクのコピーリンクがクリップボードにコピーされました!
バックアップを削除するには、次の手順で説明するように、DeleteBackupRequest
カスタムリソース (CR) を作成するか、velero backup delete
コマンドを実行します。
ボリュームバックアップアーティファクトは、バックアップ方法に応じて、異なるタイミングで削除されます。
- Restic: アーティファクトは、バックアップが削除された後、次のフルメンテナンスサイクル中に削除されます。
- Container Storage Interface (CSI): アーティファクトは、バックアップが削除されると直ちに削除されます。
- Kopia: アーティファクトは、バックアップが削除されてから、Kopia リポジトリーのフルメンテナンスサイクルが 3 回実行された後に削除されます。
1.7.5.1. DeleteBackupRequest CR を作成してバックアップを削除する リンクのコピーリンクがクリップボードにコピーされました!
DeleteBackupRequest
カスタムリソース (CR) を作成することで、バックアップを削除できます。
前提条件
- アプリケーションのバックアップを実行した。
手順
DeleteBackupRequest
CR マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップの名前を指定します。
DeleteBackupRequest
CR を適用してバックアップを削除します。oc apply -f <deletebackuprequest_cr_filename>
$ oc apply -f <deletebackuprequest_cr_filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7.5.2. Velero CLI を使用してバックアップを削除する リンクのコピーリンクがクリップボードにコピーされました!
Velero CLI を使用してバックアップを削除できます。
前提条件
- アプリケーションのバックアップを実行した。
- Velero CLI がダウンロード済みであり、クラスター内の Velero バイナリーにアクセスできる。
手順
バックアップを削除するには、次の Velero コマンドを実行します。
velero backup delete <backup_name> -n openshift-adp
$ velero backup delete <backup_name> -n openshift-adp
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップの名前を指定します。
1.7.5.3. Kopia リポジトリーのメンテナンスについて リンクのコピーリンクがクリップボードにコピーされました!
Kopia リポジトリーのメンテナンスには次の 2 種類があります。
- クイックメンテナンス
- インデックス Blob の数 (n) を抑えるために 1 時間ごとに実行されます。インデックスの数が多いと、Kopia 操作のパフォーマンスに悪影響が及びます。
- 同じメタデータの別のコピーが存在することを確認してから、リポジトリーからメタデータを削除します。
- フルメンテナンス
- 不要になったリポジトリーコンテンツのガベージコレクションを実行するために、24 時間ごとに実行されます。
-
フルメンテナンスのタスクである
snapshot-gc
が、スナップショットマニフェストからアクセスできなくなったすべてのファイルとディレクトリーリストを検索し、それらを削除済みとしてマークします。 - フルメンテナンスは、クラスター内でアクティブなすべてのスナップショット内のすべてのディレクトリーをスキャンする必要があるため、リソースを大量に消費する操作です。
1.7.5.3.1. OADP における Kopia のメンテナンス リンクのコピーリンクがクリップボードにコピーされました!
repo-maintain-job
ジョブは、次の例に示すように、OADP がインストールされている namespace で実行されます。
pod/repo-maintain-job-173...2527-2nbls 0/1 Completed 0 168m pod/repo-maintain-job-173....536-fl9tm 0/1 Completed 0 108m pod/repo-maintain-job-173...2545-55ggx 0/1 Completed 0 48m
pod/repo-maintain-job-173...2527-2nbls 0/1 Completed 0 168m
pod/repo-maintain-job-173....536-fl9tm 0/1 Completed 0 108m
pod/repo-maintain-job-173...2545-55ggx 0/1 Completed 0 48m
repo-maintain-job
のログで、バックアップオブジェクトストレージ内のクリーンアップとアーティファクトの削除に関する詳細を確認できます。次の例に示すように、repo-maintain-job
では、次のフルメンテナンスサイクルの予定日時に関する情報を確認できます。
not due for full maintenance cycle until 2024-00-00 18:29:4
not due for full maintenance cycle until 2024-00-00 18:29:4
バックアップオブジェクトストレージからオブジェクトを削除するには、フルメンテナンスサイクルを 3 回正常に実行する必要があります。つまり、バックアップオブジェクトストレージ内のすべてのアーティファクトが削除されるまでに、最大 72 時間かかると予想されます。
1.7.5.4. バックアップリポジトリーの削除 リンクのコピーリンクがクリップボードにコピーされました!
バックアップを削除し、関連するアーティファクトを削除する Kopia リポジトリーのメンテナンスサイクルが完了すると、そのバックアップはどのメタデータオブジェクトやマニフェストオブジェクトからも参照されなくなります。その後、backuprepository
カスタムリソース (CR) を削除して、バックアップ削除プロセスを完了できます。
前提条件
- アプリケーションのバックアップを削除した。
- バックアップが削除されてから最大 72 時間待機した。この時間枠を確保することで、Kopia がリポジトリーのメンテナンスサイクルを実行できるようにします。
手順
バックアップのバックアップリポジトリー CR の名前を取得するために、次のコマンドを実行します。
oc get backuprepositories.velero.io -n openshift-adp
$ oc get backuprepositories.velero.io -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow バックアップリポジトリー CR を削除するために、次のコマンドを実行します。
oc delete backuprepository <backup_repository_name> -n openshift-adp
$ oc delete backuprepository <backup_repository_name> -n openshift-adp
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 前のステップのバックアップリポジトリーの名前を指定します。
1.8. OADP の復元 リンクのコピーリンクがクリップボードにコピーされました!
1.8.1. アプリケーションの復元 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションのバックアップを復元するには、Restore
カスタムリソース (CR) を作成します。復元 CR の作成 を参照してください。
Restore
CR を編集することで、Pod 内のコンテナーでコマンドを実行するための復元フックを作成できます。復元フックの作成 を参照してください。
1.8.1.1. バックアップと復元を実行する前にリソースをプレビューする リンクのコピーリンクがクリップボードにコピーされました!
OADP は、タイプ、namespace、またはラベルに基づいてアプリケーションリソースをバックアップします。そのため、バックアップが完了した後にリソースを確認できます。同様に、復元操作が完了した後も、namespace、永続ボリューム (PV)、またはラベルに基づいて、復元されたオブジェクトを確認できます。事前にリソースをプレビューするには、バックアップおよび復元操作のドライランを実行します。
前提条件
- OADP Operator がインストールされている。
手順
実際のバックアップを実行する前に、バックアップに含まれるリソースをプレビューするには、次のコマンドを実行します。
velero backup create <backup-name> --snapshot-volumes false
$ velero backup create <backup-name> --snapshot-volumes false
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
--snapshot-volumes
パラメーターの値をfalse
に指定します。
バックアップリソースの詳細を確認するには、次のコマンドを実行します。
velero describe backup <backup_name> --details
$ velero describe backup <backup_name> --details
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップの名前を指定します。
実際の復元を実行する前に、復元に含まれるリソースをプレビューするには、次のコマンドを実行します。
velero restore create --from-backup <backup-name>
$ velero restore create --from-backup <backup-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップリソースを確認するために、作成したバックアップの名前を指定します。
重要velero restore create
コマンドは、クラスター内に復元リソースを作成します。リソースを確認した後、復元中に作成されたリソースを削除する必要があります。復元リソースの詳細を確認するには、次のコマンドを実行します。
velero describe restore <restore_name> --details
$ velero describe restore <restore_name> --details
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 復元の名前を指定します。
1.8.1.2. Restore CR の作成 リンクのコピーリンクがクリップボードにコピーされました!
Restore
CR を作成して、Backup
カスタムリソース (CR) を復元します。
azurefile-csi
ストレージクラスを使用するステートフルアプリケーションを復元すると、復元操作が Finalizing
フェーズのままになります。
前提条件
- OpenShift API for Data Protection (OADP) Operator をインストールしている。
-
DataProtectionApplication
CR がReady
状態である。 -
Velero
Backup
CR がある。 - 永続ボリューム (PV) の容量は、バックアップ時に要求されたサイズと一致する必要があります。必要に応じて、要求されたサイズを調整します。
手順
次の例のように、
Restore
CR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
Backup
CR の名前- 2
- オプション: 復元プロセスに含めるリソースの配列を指定します。リソースは、ショートカット (
Pods
はpo
など) または完全修飾の場合があります。指定しない場合、すべてのリソースが含まれます。 - 3
- オプション:
restorePVs
パラメーターをfalse
に設定すると、コンテナーストレージインターフェイス (CSI) スナップショットのVolumeSnapshot
から、またはVolumeSnapshotLocation
が設定されている場合はネイティブスナップショットからのPersistentVolumes
の復元をオフにすることができます。
次のコマンドを入力して、
Restore
CR のステータスがCompleted
であることを確認します。oc get restores.velero.io -n openshift-adp <restore> -o jsonpath='{.status.phase}'
$ oc get restores.velero.io -n openshift-adp <restore> -o jsonpath='{.status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、バックアップリソースが復元されたことを確認します。
oc get all -n <namespace>
$ oc get all -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バックアップした namespace。
ボリュームを使用して
DeploymentConfig
を復元する場合、または復元後のフックを使用する場合は、次のコマンドを入力してdc-post-restore.sh
クリーンアップスクリプトを実行します。bash dc-restic-post-restore.sh -> dc-post-restore.sh
$ bash dc-restic-post-restore.sh -> dc-post-restore.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記復元プロセス中に、OADP Velero プラグインは
DeploymentConfig
オブジェクトをスケールダウンし、Pod をスタンドアロン Pod として復元します。これは、クラスターが復元されたDeploymentConfig
Pod を復元時にすぐに削除することを防ぎ、復元フックと復元後のフックが復元された Pod 上でアクションを完了できるようにするために行われます。以下に示すクリーンアップスクリプトは、これらの切断された Pod を削除し、DeploymentConfig
オブジェクトを適切な数のレプリカにスケールアップします。dc-restic-post-restore.sh → dc-post-restore.sh
クリーンアップスクリプトCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.8.1.3. 復元フックの作成 リンクのコピーリンクがクリップボードにコピーされました!
Restore
カスタムリソース (CR) を編集して、Pod 内のコンテナーでコマンドを実行する復元フックを作成します。
2 種類の復元フックを作成できます。
init
フックは、init コンテナーを Pod に追加して、アプリケーションコンテナーが起動する前にセットアップタスクを実行します。Restic バックアップを復元する場合は、復元フック init コンテナーの前に
restic-wait
init コンテナーが追加されます。-
exec
フックは、復元された Pod のコンテナーでコマンドまたはスクリプトを実行します。
手順
次の例のように、
Restore CR
のspec.hooks
ブロックにフックを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- オプション: フックが適用される namespace の配列。この値が指定されていない場合、フックはすべての namespace に適用されます。
- 2
- 現在、Pod は、フックを適用できる唯一のサポート対象リソースです。
- 3
- オプション: このフックは、ラベルセレクターに一致するオブジェクトにのみ適用されます。
- 4
- オプション: Timeout は、
initContainers
が完了するまで Velero が待機する最大時間を指定します。 - 5
- オプション: コンテナーが指定されていない場合、コマンドは Pod の最初のコンテナーで実行されます。
- 6
- これは、追加される init コンテナーのエントリーポイントです。
- 7
- オプション: コンテナーの準備が整うまでの待機時間。これは、コンテナーが起動して同じコンテナー内の先行するフックが完了するのに十分な長さである必要があります。設定されていない場合、復元プロセスの待機時間は無期限になります。
- 8
- オプション: コマンドの実行を待機する時間。デフォルトは
30s
です。 - 9
- エラー処理に許可される値は、
Fail
およびContinue
です。-
Continue
: コマンドの失敗のみがログに記録されます。 -
Fail
: Pod 内のコンテナーで復元フックが実行されなくなりました。Restore
CR のステータスはPartiallyFailed
になります。
-
File System Backup (FSB) の復元操作中に、ImageStream
を参照する Deployment
リソースが適切に復元されません。FSB を実行する復元された Pod と postHook
が途中で終了します。
これが発生するのは、復元操作中に、OpenShift コントローラーが Deployment
リソースの spec.template.spec.containers[0].image
フィールドを新しい ImageStreamTag
ハッシュで更新するためです。更新により、新しい Pod のロールアウトがトリガーされ、velero
が FSB と復元後のフックを実行する Pod が終了します。イメージストリームトリガーの詳細は、「イメージストリームの変更時の更新のトリガー」を参照してください。
この動作を回避するには、次の 2 段階の復元プロセスを実行します。
まず、
Deployment
リソースを除外して復元を実行します。次に例を示します。velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --exclude-resources=deployment.apps
$ velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --exclude-resources=deployment.apps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最初の復元が成功したら、次の例のように、次のリソースを含めて 2 回目の復元を実行します。
velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --include-resources=deployment.apps
$ velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --include-resources=deployment.apps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Legal Notice
リンクのコピーリンクがクリップボードにコピーされました!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.