1.2. ポリシーを使用した Red Hat OpenShift Virtualization のバックアップと復元の設定


OpenShift APIs for Data Protection (OADP) を使用して、仮想マシンをバックアップおよび復元します。仮想マシンをバックアップした後、ハブまたはマネージドクラスターで復元できます。

このような OpenShift Virtualization 用の Red Hat Advanced Cluster Management のポリシーは、次のバックアップおよび復元ストレージオプションをサポートしています。

  • Container Storage Interface (CSI) バックアップ
  • DataMover による Container Storage Interface (CSI) バックアップ

以下のオプションはサポートされていません。

  • ファイルシステムのバックアップと復元
  • ボリュームスナップショットのバックアップと復元

ポリシーを設定し、バックアップスケジュールを有効にするか、仮想マシンの復元操作を実行するには、次のセクションの手順を完了してください。

1.2.1. 仮想マシンのバックアップと復元

次の手順を実行すると、クラスター上で実行されている仮想マシンをバックアップしたり、クラスターに仮想マシンを復元したりできます。

  1. MultiClusterHubcluster-backup パラメーターを true に設定して、ハブクラスター上のバックアップコンポーネントを有効にします。
  2. cluster-name クラスターにポリシーを適用するために、次の YAML サンプルを適用して、ManagedCluster リソースに acm-virt-config ラベルを追加します。

    apiVersion: cluster.open-cluster-management.io/v1
    kind: ManagedCluster
    metadata:
     name: cluster-name
     labels:
       acm-virt-config: acm-dr-virt-config 
    1
    Copy to Clipboard Toggle word wrap
    1
    ラベルアノテーションを介して渡される acm-dr-virt-config は、acm-virt-config ConfigMap です。acm-dr-virt-config ConfigMap セクションで、OADP とバックアップストレージの場所を設定する方法を参照してください。
  3. 仮想マシンをバックアップするか復元するかに応じて、次の手順を実行します。

    1. 仮想マシンをバックアップするには、cluster.open-cluster-management.io/backup-vmkubevirt.io.VirtualMachine リソースに追加します。kubevirt.io.VirtualMachine リソースは、次の YAML サンプルのようになります。
    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: vm-name
      labels:
        cluster.open-cluster-management.io/backup-vm: daily_8am
    Copy to Clipboard Toggle word wrap
    1. 仮想マシンを復元するには、acm-dr-virt-restore-config セクションの説明に従って、acm-dr-restore-config ConfigMap を更新します。

1.2.2. ハブクラスターにインストールされる仮想化ポリシー

バックアップ Operator を有効にすると、Red Hat Advanced Cluster Management のポリシーと ConfigMap のセットがハブクラスターにインストールされます。ポリシーを無効にするか、クラスターから削除すると、ポリシーによって作成されたすべてのリソースが削除されます。利用可能なさまざまな種類のポリシーの詳細を確認するには、次のセクションを参照してください。

1.2.2.1. インストールポリシー

acm-dr-virt-install インストールポリシーは、このポリシーが適用されているクラスターに OADP をインストールし、oadp.openshift.io.DataProtectionApplication リソースを設定します。クラスターがハブクラスターである場合は、OADP が open-cluster-management-backup namespace にインストールされていること、および DataProtectionApplication リソースが存在し、必要な設定になっていることを確認します。このポリシーは、ハブクラスターに OADP をインストールすることも、DataProtectionApplication リソースを作成することもありません。

MultiClusterHub リソースで cluster-backup オプションを有効にすると、バックアップチャートによって OADP がインストールされます。cluster-backup-option を有効にすると、ハブクラスターに DataProtectionApplication が作成されます。

次のインストールポリシーテンプレートと説明を参照してください。

  1. インストールポリシーテンプレート
Expand

テンプレート

説明

check-config-file

ManagedCluster リソースに設定された acm-virt-config ラベルによって定義された ConfigMap が、ハブクラスターの open-cluster-management-backup namespace に存在することを確認します。

check-oadp-channel

クラスターに OADP バージョンがインストールされているか、またそれがポリシーによってインストールされるバージョンと一致しているかどうかを確認します。

check-dpa-config

DataProtectionApplication リソースが存在し、想定どおりの設定を持ち、ステータスが Reconciled であることを確認します。BackupStorageLocation が存在し、ステータスフェーズが Available であることを確認します。

install-oadp-copy-config

OADP がインストールされる namespace を作成します (この namespace が検出されない場合)。OADP シークレットをコピーし、OADP をインストールします (マネージドクラスターの場合のみ)。acm-virt-config ラベルによって定義された DataProtectionApplication リソースを作成します (マネージドクラスターの場合のみ)。ハブクラスターでは、ユーザーが OADP と DataPotectionApplication を手動で作成する必要があります。

1.2.2.2. バックアップポリシー

acm-dr-virt-backup バックアップポリシーは、ラベル cluster.open-cluster-management.io/backup-vm: schedule_cron_name を持つ kubevirt.io.VirtualMachine リソースをバックアップします。

次のバックアップポリシーテンプレートと説明を参照してください。

  1. バックアップポリシーテンプレート
Expand

テンプレート

説明

check-cron-schedule-valid

仮想マシン cluster.open-cluster-management.io/backup-vm ラベルによって使用される cron スケジュール名が、cron スケジュールの ConfigMap で見つからない場合に、違反エラーを表示します。cron スケジュールの ConfigMap の名前が、schedule_hub_config_name プロパティーによって定義されており、open-cluster-management-backup namespace 内で使用できます。

check-backup-status-completed

スケジュールが一時停止されていない場合に、ステータスが Enabled であることを確認します。このスケジュールによって生成された最新のバックアップを検索し、ステータスが Completed であることを確認します。このバックアップに対して DataUpload が作成されている場合、ステータスは Completed になります。これらの条件のいずれかが True でない場合は違反が表示されます。

create-virt-backup

cluster.open-cluster-management.io/backup-vm ラベルを持つすべての仮想マシンリソースの Velero スケジュールを作成します。仮想マシンのラベルで検出された cron ジョブスケジュールごとに 1 つのスケジュールを作成します。同じ cron ジョブスケジュールを共有する仮想マシンを同じバックアップでバックアップします。acm-dr-virt-install ポリシーに準拠している場合にのみ、Velero スケジュールリソースを作成します。

1.2.2.3. 復元ポリシー

acm-dr-virt-restore 復元ポリシーは、UID によって kubevirt.io.VirtualMachine リソースを復元します。このポリシーは acm-dr-virt-config ConfigMap の restore_hub_config_name プロパティーによって識別される ConfigMap の情報を使用して、クラスターに Velero リストアリソースを作成します。

次の復元ポリシーテンプレートと説明を参照してください。

  1. 復元ポリシーテンプレート
Expand

テンプレート

説明

check-velero-restore-status

clusterID_restoreName プロパティーによって定義された名前を持つ復元リソースが存在し、そのステータスが Completed であることを確認します。

create-velero-restore

clusterID_restoreName プロパティー値が空でなく、clusterID がこのクラスター UID と一致する場合、restore_hub_config_name によって識別される ConfigMap で定義されたプロパティーを使用して Velero 復元リソースを作成します。acm-dr-virt-install ポリシーに準拠している場合にのみ、Velero 復元リソースを作成します。

1.2.3. ConfigMaps によるポリシーの定義

ハブクラスターにポリシーをインストールすると、ハブクラスターの open-cluster-management-backup namespace に次の ConfigMap が作成されます。ハブクラスターまたはマネージドクラスターに仮想化ポリシーを適用すると、次の ConfigMap によって仮想化ポリシーのバックアップおよび復元設定が定義されます。

1.2.3.1. acm-dr-virt-config ConfigMap の定義

acm-dr-virt-config ConfigMap は、OADP の設定と、バックアップまたは復元操作に関連するその他の設定を定義します。このリソースの名前は、ポリシーが適用されている ManagedCluster に設定されている acm-virt-config ラベルの値として使用できます。また、acm-dr-virt-config をサンプルとして使用する新しい ConfigMap リソースを作成し、新しい ConfigMap リソースを使用してクラスターに仮想化ポリシーを配置することもできます。

マネージドクラスターまたはハブクラスターに仮想化ポリシーを適用するには、次の手順を実行します。

  1. acm-dr-virt-config を使用するか、または、例として acm-dr-virt-config ConfigMap を使用して、ハブクラスターの open-cluster-management-backup namespace に新しい ConfigMap リソースを作成します。この例では、ConfigMap の名前は acm-dr-virt-config-new です。

    1. OADP によって作成されたバックアップが保存されるストレージ場所と一致するように dpa_spec セクションを更新します。この更新は必須です。
    2. オプション: OADP バージョンやチャネルなど、acm-dr-virt-config-new ConfigMap で使用可能なその他のプロパティーを更新します。
  2. ManagedCluster リソースに acm-virt-config=acm-dr-virt-config-new ラベルを追加します。acm-virt-config ラベルの値は、作成した ConfigMap の名前です。

ManagedCluster リソースの例は、次の YAML サンプルを参照してください。acm-dr-virt-config-new ConfigMap を使用するように仮想化バックアップラベルが設定されています。

apiVersion: cluster.open-cluster-management.io/v1
kind: ManagedCluster
metadata:
 name: managed-cluster-name
 labels:
   acm-virt-config: acm-dr-virt-config-new
Copy to Clipboard Toggle word wrap

詳細は、次の表を参照してください。

  1. acm-dr-virt-install ポリシーの ConfigMap プロパティー
Expand

名前

説明

デフォルト値

任意

channel

チャネルは、OpenShift Container Platform クラスターのバージョンに基づいて、サポートされている OADP バージョンにデフォルト設定されます。このプロパティーを使用してデフォルト値を上書きします。

文字列

なし

はい

channelName

OADP チャネルの名前。カスタムインストールの場合はこのプロパティーを設定します (例: offline install)。

文字列

redhat-oadp-operator

はい

subscriptionSource

OADP サブスクリプション。カスタムインストールの場合はこのプロパティーを設定します (例: offline install)。

文字列

redhat-operators

はい

subscriptionSourceNamespace

OADP サブスクリプションのソース。カスタムインストールの場合はこのプロパティーを設定します (例: offline install)。

文字列

openshift-marketplace

はい

subscriptionStartingCSV

OADP サブスクリプションの startingCSV。

文字列

なし

はい

subscriptionInstallPlanApproval

OADP インストールプラン。

文字列

自動

はい

backupNS

OADP がインストールされるマネージドクラスターの namespace。

文字列

なし

いいえ

credentials_hub_secret_name

マネージドクラスターで使用する OADP シークレットの名前。この名前を持つシークレットが、ハブクラスターの open-cluster-management-backup namespace に存在する必要があります。このシークレットは、インストールポリシーによって、ハブクラスターの指定された backupNS namespace に移動されます。

文字列

なし

いいえ

credentials_name

Velero の認証情報名を設定するときに、マネージドクラスター上の OADP DataProtectionApplication リソースによって使用されるシークレットの名前。

JSON

なし

いいえ

dpa_name

マネージドクラスターに作成される DataProtectionApplication リソースの名前。

文字列

なし

いいえ

dpa_spec

DataProtectionApplication 仕様を定義する有効な JSON (マネージドクラスターに作成される場合)。

JSON

なし

いいえ

  1. acm-dr-virt-backup ポリシーの ConfigMap プロパティー
Expand

名前

説明

デフォルト値

任意

scheduleTTL

バックアップの有効期限。

文字列

24h0m0s

はい

schedule_paused

仮想化バックアップのスケジュールを一時停止するには、True に設定します。

文字列

False

はい

schedule_hub_config_name

有効な cron ジョブスケジュールを定義するために使用される ConfigMap の名前。この名前を持つ ConfigMap が、ハブクラスターの open-cluster-management-backup namespace に存在する必要があります。

文字列

なし

はい

  1. acm-dr-virt-restore ポリシーの ConfigMap プロパティー
Expand

名前

説明

デフォルト値

任意

restore_hub_config_name

復元操作を定義するために使用される ConfigMap の名前。この名前を持つ ConfigMap が、ハブクラスターの open-cluster-management-backup namespace に存在する必要があります。

文字列

なし

いいえ

1.2.3.2. acm-dr-virt-schedule-cron ConfigMap の定義

acm-dr-virt-schedule-cron ConfigMap を使用して、仮想マシンのバックアップをスケジュールするときに使用する有効な cron ジョブスケジュールを定義します。acm-dr-virt-schedule-cron ConfigMap は、open-cluster-management-backup namespace 内のハブクラスターバックアップコンポーネントによって作成され、次の YAML を内容として含んでいます。

apiVersion: v1
kind: ConfigMap
    metadata:
        name: acm-dr-virt-schedule-cron
        namespace: open-cluster-management-backup
    data:
        hourly: "0 */1 * * *"
        every_2_hours: "0 */2 * * *"
        every_3_hours: "0 */3 * * *"
        every_4_hours: "0 */4 * * *"
        every_5_hours: "0 */5 * * *"
        every_6_hours: "0 */6 * * *"
        twice_a_day: "0 */12 * * *"
        daily_8am: "0 8 * * *"
        every_sunday: "0 0 * * 0"
Copy to Clipboard Toggle word wrap

acm-dr-virt-schedule-cron ConfigMap によって作成されたスケジュールのいずれかを使用して、kubevirt.io.VirtualMachine のバックアップスケジュールを設定できます。たとえば、毎日午前 8 時に仮想マシンをバックアップする場合は、仮想マシンリソースに次のラベルを追加します。

apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: vm-name
  labels:
    cluster.open-cluster-management.io/backup-vm: daily_8am
Copy to Clipboard Toggle word wrap

この acm-dr-virt-schedule-cron ConfigMap はハブクラスターバックアップコンポーネントによって作成および管理されるため、既存の cron プロパティーを変更または削除できません。プロパティーはコンテンツの調整時に再作成されます。既存のプロパティーに新しいプロパティーを追加することだけは可能です。たとえば、毎週土曜日に実行する cron ジョブを作成する場合は、既存の acm-dr-virt-schedule-cron プロパティーに every_sunday: "0 0 * * SAT" というラベルを追加します。

1.2.3.3. acm-dr-virt-restore-config ConfigMap の定義

acm-dr-virt-restore-config ConfigMap を使用して、acm-dr-virt-restore ポリシーによって実装される復元操作を定義します。ConfigMap を作成するには、open-cluster-management-backup namespace のハブクラスターバックアップコンポーネントを使用します。

詳細な復元操作の例は、次の YAML サンプルを参照してください。

kind: ConfigMap
apiVersion: v1
metadata:
 name: acm-dr-virt-restore-config
 namespace: open-cluster-management-backup
data:
 2a054d24-3235-4249-9c81-f58ebc6110c7_backupName: acm-rho-virt-schedule-every-10-hours-20250120230438 
1

 2a054d24-3235-4249-9c81-f58ebc6110c7_restoreName: restore-20250120230438 
2

 2a054d24-3235-4249-9c81-f58ebc6110c7_vmsUID: 2a054d24-3235-4249-9c81-f58ebc6110c7 
3

 2a054d24-3235-4249-9c81-f58ebc6110c7_namespaceMapping: backup-ns-1=restore-ns-1{{ backup-ns-2=restore-ns-2}} 
4
Copy to Clipboard Toggle word wrap
1
2a054d24-3235-4249-9c81-f58ebc6110c7 は、復元操作が完了したクラスター ID です。acm-rho-virt-schedule-every-10-hours-20250120230438 は、復元操作の例で使用されるバックアップの名前です。
2
restore-20250120230438 は、この復元操作の結果として作成される Restore リソースの名前です。
3
2a054d24-3235-4249-9c81-f58ebc6110c7 は、復元する acm-rho-virt-schedule-every-10-hours-20250120230438 バックアップでバックアップされた仮想マシンの UID です。
4
namespaceMapping はオプションのプロパティーであり、初期リソースとは異なる namespace 内のリソースを復元するために使用されます。マップに含まれていないソース namespace は、同じ名前の namespace に復元されます。backup-ns-1=restore-ns-1、backup-ns-2=restore-ns-2 は、スペースで区切られた namespace マッピングのリストです。このサンプルでは、backup-ns-1 namespace 内で作成されたバックアップリソースが restore-ns-1 namespace 内で復元されます。復元クラスターに restore-ns-1 が存在しない場合は作成されます。同様に、backup-ns-2 内で作成されたリソースは restore-ns-2 namespace 内で復元されます。

1.2.4. 復元ポリシーを使用した復元操作の作成

復元操作のために仮想化ポリシーをインストールする場合は、次の状況を考慮してください。

  • acm-dr-virt-restore-config ConfigMap の clusterID_restoreName プロパティーを空の値に設定すると、clusterID を持つクラスター上の acm-dr-virt-restore ポリシーによって作成された復元リソースが削除されます。
  • acm-dr-virt-restore-config ConfigMap の clusterID_restoreName プロパティーを空でない値に設定すると、acm-dr-virt-restore ポリシーによって Velero Restore リソースが作成されます。Velero 復元リソースの名前は、clusterID_restoreName 値と同じになります。この名前を持つ復元リソースが復元クラスターから削除されると、acm-dr-virt-restore ポリシーによってリソースが再作成され、復元操作が再度実行されます。
  • 次のアクションを検討してください。

    • 復元を再度実行しない場合は、復元リソースを削除しないでください。
    • 復元操作の開始が確認されたら acm-dr-virt-restore-config ConfigMap の clusterID_restoreName パラメーターの値を削除します。これを行うと、acm-dr-virt-restore ポリシーを無効にして再度有効にしたときに、復元操作を再実行する必要がなくなります。acm-dr-virt-restore ポリシーを無効にすると、復元クラスター上でこのポリシーによって作成されたすべてのリソースがクリーンアップされ、ポリシーを再度有効にしたときに再作成されます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat