4.13. OpenShift Virtualization を使用した OADP の設定


4.13.1. OpenShift Virtualization を使用した OpenShift API for Data Protection の設定

OADP Operator をインストールし、バックアップの場所を設定することで、OpenShift Virtualization を使用した OpenShift API for Data Protection (OADP) をインストールできます。その後、Data Protection Application をインストールできます。

OpenShift API for Data Protection を使用して仮想マシンをバックアップおよび復元します。

注記

OpenShift Virtualization を使用した OpenShift API for Data Protection は、バックアップおよび復元のストレージオプションとして次のものをサポートしています。

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

次のストレージオプションは対象外です。

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

詳細は、File System Backup を使用してアプリケーションをバックアップする: Kopia または Restic を参照してください。

制限されたネットワーク環境に OADP Operator をインストールするには、最初にデフォルトの OperatorHub ソースを無効にして、Operator カタログをミラーリングする必要があります。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。

4.13.1.1. OpenShift Virtualization を使用した OADP のインストールと設定

クラスター管理者は、OADP Operator をインストールして OADP をインストールします。

最新バージョンの OADP Operator は、Velero 1.14 をインストールします。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  1. ストレージプロバイダーの指示に従って、OADP Operator をインストールします。
  2. kubevirt および openshift OADP プラグインを使用して Data Protection Application (DPA) をインストールします。
  3. Backup カスタムリソース (CR) を作成して、仮想マシンをバックアップします。

    警告

    Red Hat のサポート対象は、次のオプションに限られています。

    • CSI バックアップ
    • DataMover による CSI バックアップ

Restore CR を作成して Backup CR を復元します。

4.13.1.2. Data Protection Application のインストール

DataProtectionApplication API のインスタンスを作成して、Data Protection Application (DPA) をインストールします。

前提条件

  • OADP Operator をインストールする。
  • オブジェクトストレージをバックアップロケーションとして設定する必要がある。
  • スナップショットを使用して PV をバックアップする場合、クラウドプロバイダーはネイティブスナップショット API または Container Storage Interface (CSI) スナップショットのいずれかをサポートする必要がある。
  • バックアップとスナップショットの場所で同じ認証情報を使用する場合は、デフォルトの名前である cloud-credentials を使用して Secret を作成する必要がある。

    注記

    インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の credentials-velero ファイルを使用してデフォルトの Secret を作成できます。デフォルトの Secret がない場合、インストールは失敗します。

手順

  1. Operators Installed Operators をクリックして、OADP Operator を選択します。
  2. Provided APIs で、DataProtectionApplication ボックスの Create instance をクリックします。
  3. YAML View をクリックして、DataProtectionApplication マニフェストのパラメーターを更新します。

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp 
    1
    
    spec:
      configuration:
        velero:
          defaultPlugins:
            - kubevirt 
    2
    
            - gcp 
    3
    
            - csi 
    4
    
            - openshift 
    5
    
          resourceTimeout: 10m 
    6
    
        nodeAgent: 
    7
    
          enable: true 
    8
    
          uploaderType: kopia 
    9
    
          podConfig:
            nodeSelector: <node_selector> 
    10
    
      backupLocations:
        - velero:
            provider: gcp 
    11
    
            default: true
            credential:
              key: cloud
              name: <default_secret> 
    12
    
            objectStorage:
              bucket: <bucket_name> 
    13
    
              prefix: <prefix> 
    14
    Copy to Clipboard
    1
    OADP のデフォルトの namespace は openshift-adp です。namespace は変数であり、設定可能です。
    2
    kubevirt プラグインは OpenShift Virtualization に必須です。
    3
    バックアッププロバイダーのプラグインがある場合には、それを指定します (例: gcp)。
    4
    CSI スナップショットを使用して PV をバックアップするには、csi プラグインが必須です。csi プラグインは、Velero CSI ベータスナップショット API を使用します。スナップショットの場所を設定する必要はありません。
    5
    openshift プラグインは必須です。
    6
    Velero CRD の可用性、volumeSnapshot の削除、バックアップリポジトリーの可用性など、タイムアウトが発生するまでに複数の Velero リソースを待機する時間を分単位で指定します。デフォルトは 10m です。
    7
    管理要求をサーバーにルーティングする管理エージェント。
    8
    nodeAgent を有効にして File System Backup を実行する場合は、この値を true に設定します。
    9
    組み込み DataMover を使用するには、アップローダーとして kopia と入力します。nodeAgent はデーモンセットをデプロイします。これは、nodeAgent Pod が各ワーキングノード上で実行されることを意味します。File System Backup を設定するには、spec.defaultVolumesToFsBackup: trueBackup CR に追加します。
    10
    Kopia が利用可能なノードを指定します。デフォルトでは、Kopia はすべてのノードで実行されます。
    11
    バックアッププロバイダーを指定します。
    12
    バックアッププロバイダーにデフォルトのプラグインを使用する場合は、Secret の正しいデフォルト名を指定します (例: cloud-credentials-gcp)。カスタム名を指定すると、そのカスタム名がバックアップの場所に使用されます。Secret 名を指定しない場合は、デフォルトの名前が使用されます。
    13
    Backup Storage Location としてバケットを指定します。バケットが Velero バックアップ専用のバケットでない場合は、接頭辞を指定する必要があります。
    14
    バケットが複数の目的で使用される場合は、Velero バックアップの接頭辞を指定します (例: velero)。
  4. Create をクリックします。

検証

  1. 次のコマンドを実行して OpenShift API for Data Protection (OADP) リソースを表示し、インストールを検証します。

    $ oc get all -n openshift-adp
    Copy to Clipboard

    出力例

    NAME                                                     READY   STATUS    RESTARTS   AGE
    pod/oadp-operator-controller-manager-67d9494d47-6l8z8    2/2     Running   0          2m8s
    pod/node-agent-9cq4q                                     1/1     Running   0          94s
    pod/node-agent-m4lts                                     1/1     Running   0          94s
    pod/node-agent-pv4kr                                     1/1     Running   0          95s
    pod/velero-588db7f655-n842v                              1/1     Running   0          95s
    
    NAME                                                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    service/oadp-operator-controller-manager-metrics-service   ClusterIP   172.30.70.140    <none>        8443/TCP   2m8s
    service/openshift-adp-velero-metrics-svc                   ClusterIP   172.30.10.0      <none>        8085/TCP   8h
    
    NAME                        DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/node-agent    3         3         3       3            3           <none>          96s
    
    NAME                                                READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/oadp-operator-controller-manager    1/1     1            1           2m9s
    deployment.apps/velero                              1/1     1            1           96s
    
    NAME                                                           DESIRED   CURRENT   READY   AGE
    replicaset.apps/oadp-operator-controller-manager-67d9494d47    1         1         1       2m9s
    replicaset.apps/velero-588db7f655                              1         1         1       96s
    Copy to Clipboard

  2. 次のコマンドを実行して、DataProtectionApplication (DPA) が調整されていることを確認します。

    $ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
    Copy to Clipboard

    出力例

    {"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
    Copy to Clipboard

  3. typeReconciled に設定されていることを確認します。
  4. 次のコマンドを実行して、Backup Storage Location を確認し、PHASEAvailable であることを確認します。

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    Copy to Clipboard

    出力例

    NAME           PHASE       LAST VALIDATED   AGE     DEFAULT
    dpa-sample-1   Available   1s               3d16h   true
    Copy to Clipboard

警告

Microsoft Windows 仮想マシン (VM) の再起動直後に仮想マシンのバックアップを実行すると、PartiallyFailed エラーが発生してバックアップが失敗する可能性があります。これは、仮想マシンの起動直後は、Microsoft Windows Volume Shadow Copy Service (VSS) と Guest Agent (GA) サービスが準備されていないためです。VSS および GA サービスが準備されていないため、バックアップは失敗します。このような場合は、仮想マシンの起動後数分後にバックアップを再試行してください。

4.13.1.3. 単一仮想マシンのバックアップ

複数の仮想マシンが含まれる namespace があり、そのうちの 1 つだけをバックアップする場合は、ラベルセレクターを使用して、バックアップに含める必要がある仮想マシンをフィルターできます。app: vmname ラベルを使用して仮想マシンをフィルタリングできます。

前提条件

  • OADP Operator がインストールされている。
  • namespace 内で複数の仮想マシンが実行されている。
  • DataProtectionApplication (DPA) カスタムリソース (CR) に kubevirt プラグインを追加した。
  • DataProtectionApplication CR で BackupStorageLocation CR を設定しており、BackupStorageLocation が使用可能である。

手順

  1. 次の例に示すように、Backup CR を設定します。

    Backup CR の例

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: vmbackupsingle
      namespace: openshift-adp
    spec:
      snapshotMoveData: true
      includedNamespaces:
      - <vm_namespace> 
    1
    
      labelSelector:
        matchLabels:
          app: <vm_app_name> 
    2
    
      storageLocation: <backup_storage_location_name> 
    3
    Copy to Clipboard

    1
    仮想マシンを作成した namespace の名前を指定します。
    2
    バックアップする必要がある仮想マシンの名前を指定します。
    3
    BackupStorageLocation CR の名前を指定します。
  2. Backup CR を作成するには、次のコマンドを実行します。

    $ oc apply -f <backup_cr_file_name> 
    1
    Copy to Clipboard
    1
    Backup CR ファイルの名前を指定します。

4.13.1.4. 1 つの仮想マシンの復元

Backup カスタムリソース (CR) のラベルセレクターを使用して 1 つの仮想マシンをバックアップした後、Restore CR を作成してバックアップを指すように設定できます。この復元操作では、1 つの仮想マシンが復元されます。

前提条件

  • OADP Operator がインストールされている。
  • ラベルセレクターを使用して 1 つの仮想マシンをバックアップした。

手順

  1. 次の例に示すように、Restore CR を設定します。

    Restore CR の例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: vmrestoresingle
      namespace: openshift-adp
    spec:
      backupName: vmbackupsingle 
    1
    
      restorePVs: true
    Copy to Clipboard

    1
    1 つの仮想マシンのバックアップ名を指定します。
  2. 1 つの仮想マシンを復元するには、次のコマンドを実行します。

    $ oc apply -f <restore_cr_file_name> 
    1
    Copy to Clipboard
    1
    Restore CR ファイルの名前を指定します。

4.13.1.5. 複数の仮想マシンのバックアップから 1 つの仮想マシンを復元する

複数の仮想マシン (仮想マシン) が含まれるバックアップがあり、そのうち 1 つの仮想マシンのみを復元する場合は、Restore CR の LabelSelectors セクションを使用して、復元する仮想マシンを選択できます。確実に仮想マシンにアタッチされた永続ボリューム要求 (PVC) が正しく復元され、復元された仮想マシンが Provisioning 状態でスタックすることを回避するためには、app: <vm_name>kubevirt.io/created-by ラベルの両方を使用します。kubevirt.io/created-by ラベルと一致させるには、仮想マシンの DataVolume の UID を使用します。

前提条件

  • OADP Operator がインストールされている。
  • バックアップする必要がある仮想マシンにラベル付けした。
  • 複数の仮想マシンのバックアップがある。

手順

  1. 多数の仮想マシンのバックアップを作成する前に、次のコマンドを実行して仮想マシンにラベルが付けられていることを確認します。

    $ oc label vm <vm_name> app=<vm_name> -n openshift-adp
    Copy to Clipboard
  2. 次の例に示すように、Restore CR でラベルセレクターを設定します。

    Restore CR の例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: singlevmrestore
      namespace: openshift-adp
    spec:
      backupName: multiplevmbackup
      restorePVs: true
      LabelSelectors:
        - matchLabels:
            kubevirt.io/created-by: <datavolume_uid> 
    1
    
        - matchLabels:
            app: <vm_name> 
    2
    Copy to Clipboard

    1
    復元する仮想マシンの DataVolume の UID を指定します。たとえば、b6…​53a-ddd7-4d9d-9407-a0c…​e5 です。
    2
    復元する仮想マシンの名前を指定します。たとえば、test-vm です。
  3. 仮想マシンを復元するには、次のコマンドを実行します。

    $ oc apply -f <restore_cr_file_name> 
    1
    Copy to Clipboard
    1
    Restore CR ファイルの名前を指定します。

4.13.1.6. クライアントバースト設定と QPS 設定を使用した DPA の設定

バースト設定は、制限が適用されるまで velero サーバーに送信できる要求の数を決定するものです。バースト制限に達した後は、1 秒あたりのクエリー数 (QPS) 設定によって、1 秒あたりに送信できる追加の要求の数が決定されます。

バースト値と QPS 値を使用して Data Protection Application (DPA) を設定することにより、velero サーバーのバースト値と QPS 値を設定できます。バースト値と QPS 値は、DPA の dpa.configuration.velero.client-burst フィールドと dpa.configuration.velero.client-qps フィールドを使用して設定できます。

前提条件

  • OADP Operator がインストールされている。

手順

  • 次の例に示すように、DPA の client-burst フィールドと client-qps フィールドを設定します。

    Data Protection Application の例

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: test-dpa
      namespace: openshift-adp
    spec:
      backupLocations:
        - name: default
          velero:
            config:
              insecureSkipTLSVerify: "true"
              profile: "default"
              region: <bucket_region>
              s3ForcePathStyle: "true"
              s3Url: <bucket_url>
            credential:
              key: cloud
              name: cloud-credentials
            default: true
            objectStorage:
              bucket: <bucket_name>
              prefix: velero
            provider: aws
      configuration:
        nodeAgent:
          enable: true
          uploaderType: restic
        velero:
          client-burst: 500 
    1
    
          client-qps: 300 
    2
    
          defaultPlugins:
            - openshift
            - aws
            - kubevirt
    Copy to Clipboard

    1
    client-burst 値を指定します。この例では、client-burst フィールドは 500 に設定されています。
    2
    client-qps 値を指定します。この例では、client-qps フィールドは 300 に設定されています。

4.13.1.7. DPA の imagePullPolicy 設定のオーバーライド

OADP 1.4.0 以前では、Operator はすべてのイメージで Velero およびノードエージェント Pod の imagePullPolicy フィールドを Always に設定します。

OADP 1.4.1 以降では、Operator はまず、各イメージに sha256 または sha512 ダイジェストがあるかを確認し、それに応じて imagePullPolicy フィールドを設定します。

  • イメージにダイジェストがある場合、Operator は imagePullPolicyIfNotPresent に設定します。
  • イメージにダイジェストがない場合、Operator は imagePullPolicyAlways に設定します。

Data Protection Application (DPA) の spec.imagePullPolicy フィールドを使用して、imagePullPolicy フィールドをオーバーライドすることもできます。

前提条件

  • OADP Operator がインストールされている。

手順

  • 以下の例のように、DPA の spec.imagePullPolicy フィールドを設定します。

    Data Protection Application の例

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: test-dpa
      namespace: openshift-adp
    spec:
      backupLocations:
        - name: default
          velero:
            config:
              insecureSkipTLSVerify: "true"
              profile: "default"
              region: <bucket_region>
              s3ForcePathStyle: "true"
              s3Url: <bucket_url>
            credential:
              key: cloud
              name: cloud-credentials
            default: true
            objectStorage:
              bucket: <bucket_name>
              prefix: velero
            provider: aws
      configuration:
        nodeAgent:
          enable: true
          uploaderType: kopia
        velero:
          defaultPlugins:
            - openshift
            - aws
            - kubevirt
            - csi
      imagePullPolicy: Never 
    1
    Copy to Clipboard

    1
    imagePullPolicy の値を指定します。この例では、imagePullPolicy フィールドが Never に設定されています。
4.13.1.7.1. ノードエージェントとノードラベルの設定

OADP の DPA は、nodeSelector フィールドを使用して、ノードエージェントを実行できるノードを選択します。nodeSelector フィールドは、推奨される最も単純な形式のノード選択制約です。

指定したラベルが、各ノードのラベルと一致する必要があります。

選択した任意のノードでノードエージェントを実行する正しい方法は、ノードにカスタムラベルを付けることです。

$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
Copy to Clipboard

ノードのラベル付けに使用したのと同じカスタムラベルを DPA.spec.configuration.nodeAgent.podConfig.nodeSelector で使用します。以下に例を示します。

configuration:
  nodeAgent:
    enable: true
    podConfig:
      nodeSelector:
        node-role.kubernetes.io/nodeAgent: ""
Copy to Clipboard

次の例は nodeSelector のアンチパターンです。この例は、ノードに 'node-role.kubernetes.io/infra: ""''node-role.kubernetes.io/worker: ""' の両方のラベルがないと機能しません。

    configuration:
      nodeAgent:
        enable: true
        podConfig:
          nodeSelector:
            node-role.kubernetes.io/infra: ""
            node-role.kubernetes.io/worker: ""
Copy to Clipboard

4.13.1.8. 増分バックアップのサポートについて

OADP は、コンテナー化されたワークロードと OpenShift Virtualization ワークロードの両方で、block および Filesystem の永続ボリュームの増分バックアップをサポートしています。次の表は、File System Backup (FSB)、Container Storage Interface (CSI)、および CSI Data Mover のサポート状況をまとめたものです。

表4.2 コンテナー化されたワークロードの OADP バックアップのサポートマトリックス
ボリュームモードFSB - ResticFSB - KopiaCSICSI Data Mover

ファイルシステム

S [1]、I [2]

S [1]、I [2]

S [1]

S [1]、I [2]

ブロック

N [3]

N [3]

S [1]

S [1]、I [2]

表4.3 OpenShift Virtualization ワークロードの OADP バックアップのサポートマトリックス
ボリュームモードFSB - ResticFSB - KopiaCSICSI Data Mover

ファイルシステム

N [3]

N [3]

S [1]

S [1]、I [2]

ブロック

N [3]

N [3]

S [1]

S [1]、I [2]

  1. バックアップをサポート
  2. 増分バックアップをサポート
  3. サポート対象外
注記

CSI Data Mover バックアップでは、uploaderType に関係なく Kopia が使用されます。

重要

Red Hat は、OADP バージョン 1.3.0 以降と OpenShift Virtualization バージョン 4.14 以降の組み合わせのみをサポートします。

バージョン 1.3.0 より前の OADP は、OpenShift Virtualization のバックアップと復元ではサポートされていません。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat