4.9. OADP Data Mover


4.9.1. OADP Data Mover の概要

OADP Data Mover を使用すると、クラスターの障害が発生した場合、誤って削除した場合、または破損した場合に、ストアからステートフルアプリケーションを復元できます。

注記

OADP 1.1 Data Mover はテクノロジープレビュー機能です。

OADP 1.2 Data Mover は機能とパフォーマンスが大幅に向上していますが、まだテクノロジープレビュー機能です。

重要

OADP Data Mover はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

注記

OADP 1.3 Data Mover では、移行後のフックがうまく機能しない可能性があります。

OADP 1.1 および OADP 1.2 Data Mover は、同期プロセスを使用してアプリケーションデータのバックアップと復元を行います。プロセスは同期しているため、復元後のフックが開始されるのは、必ず関連する Pod の永続ボリューム (PV) が Data Mover の永続ボリューム要求 (PVC) により解放された後になります。

しかし、OADP 1.3 Data Mover は非同期プロセスを使用します。このような順序の違いにより、Data Mover の PVC によって関連する PV が解放される前に、復元後のフックが呼び出される可能性があります。これが発生した場合、Pod は Pending ステータスのままになり、フックを実行できません。Pod が解放される前にフックの試行がタイムアウトになり、復元操作で PartiallyFailed が発生する可能性があります。

4.9.1.1. OADP Data Mover の前提条件

  • 別の namespace で実行されているステートフルアプリケーションがある。
  • Operator Lifecycle Manager (OLM) を使用して OADP Operator をインストールしている。
  • 適切な VolumeSnapshotClassStorageClass を作成している。
  • OLM を使用して VolSync オペレーターをインストールしている。

4.9.2. CSI スナップショットに Data Mover を使用する

OADP Data Mover を使用すると、Container Storage Interface (CSI) ボリュームスナップショットをリモートオブジェクトストアにバックアップできます。Data Mover が有効になっている場合、クラスターの障害、誤った削除、破損が発生した場合に、オブジェクトストアから取得した CSI ボリュームスナップショットを使用してステートフルアプリケーションを復元できます。

Data Mover ソリューションは、VolSync の Restic オプションを使用します。

Data Mover は、CSI ボリュームスナップショットのバックアップとリストアのみをサポートします。

OADP 1.2 Data Mover では、VolumeSnapshotBackups (VSB) および VolumeSnapshotRestore (VSR) は、VolumeSnapshotMover (VSM) を使用してキューに入れられます。VSM のパフォーマンスは、同時に InProgress で VSB と VSR の同時数を指定することで向上します。すべての非同期プラグイン操作が完了すると、バックアップは完了としてマークされます。

注記

OADP 1.1 Data Mover はテクノロジープレビュー機能です。

OADP 1.2 Data Mover は機能とパフォーマンスが大幅に向上していますが、まだテクノロジープレビュー機能です。

重要

OADP Data Mover はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

注記

Red Hat では、ODF CephFS ボリュームのバックアップおよびリストアに OADP 1.2 Data Mover を使用しているお客様には、パフォーマンスを向上させるために OpenShift Container Platform バージョン 4.12 以降をアップグレードまたはインストールすることを推奨します。OADP Data Mover は、OpenShift Container Platform バージョン 4.12 以降の CephFS シャローボリュームを利用できます。これは、私たちのテストに基づくと、バックアップ時間のパフォーマンスを向上させることができます。

前提条件

  • StorageClass および VolumeSnapshotClass カスタムリソース (CR) が CSI をサポートしていることを確認している。
  • snapshot.storage.kubernetes.io/is-default-class: "true" のアノテーションを持つ VolumeSnapshotClass CR が 1 つだけであることを確認している。

    注記

    OpenShift Container Platform バージョン 4.12 以降では、これが唯一のデフォルト VolumeSnapshotClass であることを確認してください。

  • VolumeSnapshotClass CR の deletionPolicyRetain に設定されていることを確認している。
  • 注釈 storageclass.kubernetes.io/is-default-class: "true" を持つ StorageClass CR が 1 つだけであることを確認している。
  • VolumeSnapshotClass CR にラベル velero.io/csi-volumesnapshot-class: "true" を追加している。
  • OADP namespaceoc annotate --overwrite namespace/openshift-adp volsync.backube/privileged-movers="true" のアノテーションが追加されていることを確認している。

    注記

    OADP 1.1 では、上記の設定は必須です。

    OADP 1.2 では、ほとんどのシナリオで privileged-movers 設定は必要ありません。復元コンテナーの権限は、Volsync コピーに対して適切である必要があります。一部のユーザーシナリオでは、privileged-mover = true 設定で解決する必要がある権限エラーが発生する場合があります。

  • Operator Lifecycle Manager (OLM) を使用して VolSync Operator をインストールしました。

    注記

    OADP Data Mover を使用するには、VolSync Operator が必要です。

  • OLM を使用して OADP Operator をインストールしました。

    注記

    XFS ファイルシステムを使用してボリュームをフォーマットし、ボリュームの容量が 100% になっている場合は、no space left on device エラーが発生してバックアップが失敗します。以下に例を示します。

    Error: relabel failed /var/lib/kubelet/pods/3ac..34/volumes/ \
    kubernetes.io~csi/pvc-684..12c/mount: lsetxattr /var/lib/kubelet/ \
    pods/3ac..34/volumes/kubernetes.io~csi/pvc-68..2c/mount/data-xfs-103: \
    no space left on device

    このシナリオでは、バックアップが正常に完了するように、ボリュームのサイズを変更するか、ext4 などの別のファイルシステムタイプを使用することを検討してください。

手順

  1. 次のように .yaml ファイルを作成して、Restic シークレットを設定します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret_name>
      namespace: openshift-adp
    type: Opaque
    stringData:
      RESTIC_PASSWORD: <secure_restic_password>
    注記

    デフォルトでは、Operator は dm-credential という名前のシークレットを探します。別の名前を使用している場合は、dpa.spec.features.dataMover.credentialName を使用して、Data Protection Application (DPA) CR で名前を指定する必要があります。

  2. 次の例のような DPA CR を作成します。デフォルトのプラグインには CSI が含まれています。

    データ保護アプリケーション (DPA) CR の例

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: velero-sample
      namespace: openshift-adp
    spec:
      backupLocations:
        - velero:
            config:
              profile: default
              region: us-east-1
            credential:
              key: cloud
              name: cloud-credentials
            default: true
            objectStorage:
              bucket: <bucket_name>
              prefix: <bucket-prefix>
            provider: aws
      configuration:
        restic:
          enable: <true_or_false>
        velero:
           itemOperationSyncFrequency: "10s"
           defaultPlugins:
            - openshift
            - aws
            - csi
            - vsm 1
      features:
        dataMover:
          credentialName: restic-secret
          enable: true
          maxConcurrentBackupVolumes: "3" 2
          maxConcurrentRestoreVolumes: "3" 3
          pruneInterval: "14" 4
          volumeOptions: 5
          sourceVolumeOptions:
              accessMode: ReadOnlyMany
              cacheAccessMode: ReadWriteOnce
              cacheCapacity: 2Gi
          destinationVolumeOptions:
              storageClass: other-storageclass-name
              cacheAccessMode: ReadWriteMany
      snapshotLocations:
        - velero:
            config:
              profile: default
              region: us-west-2
            provider: aws

    1
    OADP 1.2 のみ。
    2
    OADP 1.2 のみ。オプション: バックアップのためにキューに入れることができるスナップショットの数の上限を指定します。デフォルト値は 10 です。
    3
    OADP 1.2 のみ。オプション: 復元のためにキューに入れることができるスナップショットの数の上限を指定します。デフォルト値は 10 です。
    4
    OADP 1.2 のみ。オプション: リポジトリーで Restic プルーニングを実行する間隔の日数を指定します。プルーン操作ではデータを再パックして領域を解放しますが、プロセスの一部として大量の I/O トラフィックが生成される可能性もあります。このオプションを設定すると、参照されなくなったデータによるストレージ消費とアクセスコストとの間のトレードオフが可能になります。
    5
    OADP 1.2 のみ。オプション: バックアップと復元の VolumeSync ボリュームオプションを指定します。

    OADP Operator は、2 つのカスタムリソース定義 (CRD)、VolumeSnapshotBackup および VolumeSnapshotRestore をインストールします。

    VolumeSnapshotBackup CRD の例

    apiVersion: datamover.oadp.openshift.io/v1alpha1
    kind: VolumeSnapshotBackup
    metadata:
      name: <vsb_name>
      namespace: <namespace_name> 1
    spec:
      volumeSnapshotContent:
        name: <snapcontent_name>
      protectedNamespace: <adp_namespace> 2
      resticSecretRef:
        name: <restic_secret_name>

    1
    ボリュームスナップショットが存在する namespace を指定します。
    2
    OADP Operator がインストールされている namespace を指定します。デフォルトは openshift-adp です。

    VolumeSnapshotRestore CRD の例

    apiVersion: datamover.oadp.openshift.io/v1alpha1
    kind: VolumeSnapshotRestore
    metadata:
      name: <vsr_name>
      namespace: <namespace_name> 1
    spec:
      protectedNamespace: <protected_ns> 2
      resticSecretRef:
        name: <restic_secret_name>
      volumeSnapshotMoverBackupRef:
        sourcePVCData:
          name: <source_pvc_name>
          size: <source_pvc_size>
        resticrepository: <your_restic_repo>
        volumeSnapshotClassName: <vsclass_name>

    1
    ボリュームスナップショットが存在する namespace を指定します。
    2
    OADP Operator がインストールされている namespace を指定します。デフォルトは openshift-adp です。
  3. 次の手順を実行して、ボリュームスナップショットをバックアップできます。

    1. バックアップ CR を作成します。

      apiVersion: velero.io/v1
      kind: Backup
      metadata:
        name: <backup_name>
        namespace: <protected_ns> 1
      spec:
        includedNamespaces:
        - <app_ns> 2
        storageLocation: velero-sample-1
      1
      Operator がインストールされている namespace を指定します。デフォルトの namespace は openshift-adp です。
      2
      バックアップするアプリケーションの namespace を指定します。
    2. 次のコマンドを入力して、最大 10 分待機し、VolumeSnapshotBackup CR のステータスが Completed かどうかを確認します。

      $ oc get vsb -n <app_ns>
      $ oc get vsb <vsb_name> -n <app_ns> -o jsonpath="{.status.phase}"

      DPA で設定されたオブジェクトストアにスナップショットが作成されます。

      注記

      VolumeSnapshotBackup CR のステータスが Failed になった場合は、トラブルシューティングのために Velero ログを参照してください。

  4. 次の手順を実行して、ボリュームスナップショットを復元できます。

    1. アプリケーションの namespace と、Velero CSI プラグインによって作成された VolumeSnapshotContent を削除します。
    2. Restore CR を作成し、restorePVstrue に設定します。

      Restore CR の例

      apiVersion: velero.io/v1
      kind: Restore
      metadata:
        name: <restore_name>
        namespace: <protected_ns>
      spec:
        backupName: <previous_backup_name>
        restorePVs: true

    3. 最大 10 分間待機し、次のコマンドを入力して、VolumeSnapshotRestore CR ステータスが Completed であるかどうかを確認します。

      $ oc get vsr -n <app_ns>
      $ oc get vsr <vsr_name> -n <app_ns> -o jsonpath="{.status.phase}"
    4. アプリケーションデータとリソースが復元されたかどうかを確認します。

      注記

      VolumeSnapshotRestore CR のステータスが 'Failed' になった場合は、トラブルシューティングのために Velero ログを参照してください。

4.9.3. Ceph Storage での OADP 1.2 Data Mover の使用

OADP 1.2 Data Mover を使用して、CephFS、CephRBD、またはその両方を使用するクラスターのアプリケーションデータをバックアップおよび復元できます。

OADP 1.2 Data Mover は、大規模環境をサポートする Ceph 機能を活用します。その 1 つはシャローコピー方式で、OpenShift Container Platform 4.12 以降で利用できます。この機能は、ソース Persistent Volume Claim (PVC) にあるもの以外の StorageClass および AccessMode リソースのバックアップと復元をサポートします。

重要

CephFS シャローコピー機能はバックアップ機能です。これは復元操作の一部ではありません。

4.9.3.1. Ceph Storage で OADP 1.2 Data Mover を使用するための前提条件

以下の前提条件は、Ceph Storage を使用するクラスター内で OpenShift API for Data Protection (OADP) 1.2 Data Mover を使用するすべてのデータのバックアップおよびリストア操作に適用されます。

  • OpenShift Container Platform 4.12 以降がインストールされている。
  • OADP Operator がインストールされている。
  • namespace openshift-adp にシークレットの cloud-credentials が作成されている。
  • Red Hat OpenShift Data Foundation がインストールされている。
  • Operator Lifecycle Manager を使用して最新の VolSync Operator がインストールされている。

4.9.3.2. OADP 1.2 Data Mover で使用するカスタムリソースの定義

Red Hat OpenShift Data Foundation をインストールすると、デフォルトの CephFS、CephRBD StorageClass および VolumeSnapshotClass カスタムリソース (CR) が自動的に作成されます。これらの CR は、OpenShift API for Data Protection (OADP) 1.2 Data Mover で使用するために定義する必要があります。

CR を定義した後、バックアップおよび復元操作を実行する前に、環境にその他の変更をいくつか加える必要があります。

4.9.3.2.1. OADP 1.2 Data Mover で使用する CephFS カスタムリソースの定義

Red Hat OpenShift Data Foundation をインストールすると、デフォルトの CephFS StorageClass カスタムリソース (CR) とデフォルトの CephFS VolumeSnapshotClass CR が自動的に作成されます。これらの CR は、OpenShift API for Data Protection (OADP) 1.2 Data Mover で使用するために定義できます。

手順

  1. 以下の例のように VolumeSnapshotClass CR を定義します。

    VolumeSnapshotClass CR の例

    apiVersion: snapshot.storage.k8s.io/v1
    deletionPolicy: Retain 1
    driver: openshift-storage.cephfs.csi.ceph.com
    kind: VolumeSnapshotClass
    metadata:
      annotations:
        snapshot.storage.kubernetes.io/is-default-class: true 2
      labels:
        velero.io/csi-volumesnapshot-class: true 3
      name: ocs-storagecluster-cephfsplugin-snapclass
    parameters:
      clusterID: openshift-storage
      csi.storage.k8s.io/snapshotter-secret-name: rook-csi-cephfs-provisioner
      csi.storage.k8s.io/snapshotter-secret-namespace: openshift-storage

    1
    Retain に設定する必要があります。
    2
    true に設定する必要があります。
    3
    true に設定する必要があります。
  2. 以下の例のように StorageClass CR を定義します。

    StorageClass CR の例

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: ocs-storagecluster-cephfs
      annotations:
        description: Provides RWO and RWX Filesystem volumes
        storageclass.kubernetes.io/is-default-class: true 1
    provisioner: openshift-storage.cephfs.csi.ceph.com
    parameters:
      clusterID: openshift-storage
      csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner
      csi.storage.k8s.io/controller-expand-secret-namespace: openshift-storage
      csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
      csi.storage.k8s.io/node-stage-secret-namespace: openshift-storage
      csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
      csi.storage.k8s.io/provisioner-secret-namespace: openshift-storage
      fsName: ocs-storagecluster-cephfilesystem
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: Immediate

    1
    true に設定する必要があります。
4.9.3.2.2. OADP 1.2 Data Mover で使用する CephRBD カスタムリソースの定義

Red Hat OpenShift Data Foundation をインストールすると、デフォルトの CephRBD StorageClass カスタムリソース (CR) とデフォルトの CephRBD VolumeSnapshotClass CR が自動的に作成されます。これらの CR は、OpenShift API for Data Protection (OADP) 1.2 Data Mover で使用するために定義できます。

手順

  1. 以下の例のように VolumeSnapshotClass CR を定義します。

    VolumeSnapshotClass CR の例

    apiVersion: snapshot.storage.k8s.io/v1
    deletionPolicy: Retain 1
    driver: openshift-storage.rbd.csi.ceph.com
    kind: VolumeSnapshotClass
    metadata:
      labels:
        velero.io/csi-volumesnapshot-class: true 2
      name: ocs-storagecluster-rbdplugin-snapclass
    parameters:
      clusterID: openshift-storage
      csi.storage.k8s.io/snapshotter-secret-name: rook-csi-rbd-provisioner
      csi.storage.k8s.io/snapshotter-secret-namespace: openshift-storage

    1
    Retain に設定する必要があります。
    2
    true に設定する必要があります。
  2. 以下の例のように StorageClass CR を定義します。

    StorageClass CR の例

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: ocs-storagecluster-ceph-rbd
      annotations:
        description: 'Provides RWO Filesystem volumes, and RWO and RWX Block volumes'
    provisioner: openshift-storage.rbd.csi.ceph.com
    parameters:
      csi.storage.k8s.io/fstype: ext4
      csi.storage.k8s.io/provisioner-secret-namespace: openshift-storage
      csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner
      csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node
      csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner
      imageFormat: '2'
      clusterID: openshift-storage
      imageFeatures: layering
      csi.storage.k8s.io/controller-expand-secret-namespace: openshift-storage
      pool: ocs-storagecluster-cephblockpool
      csi.storage.k8s.io/node-stage-secret-namespace: openshift-storage
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: Immediate

4.9.3.2.3. OADP 1.2 Data Mover で使用する追加のカスタムリソースの定義

デフォルトの StorageClass および CephRBD VolumeSnapshotClass カスタムリソース (CR) を再定義した後、次の CR を作成する必要があります。

  • シャローコピー機能を使用するように定義された CephFS StorageClass CR
  • Restic Secret CR

手順

  1. 次の例のように CephFS StorageClass CR を作成し、backingSnapshot パラメーターを true に設定します。

    backingSnapshottrue に設定した CephFS StorageClass CR の例

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: ocs-storagecluster-cephfs-shallow
      annotations:
        description: Provides RWO and RWX Filesystem volumes
        storageclass.kubernetes.io/is-default-class: false
    provisioner: openshift-storage.cephfs.csi.ceph.com
    parameters:
      csi.storage.k8s.io/provisioner-secret-namespace: openshift-storage
      csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
      csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
      csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner
      clusterID: openshift-storage
      fsName: ocs-storagecluster-cephfilesystem
      csi.storage.k8s.io/controller-expand-secret-namespace: openshift-storage
      backingSnapshot: true 1
      csi.storage.k8s.io/node-stage-secret-namespace: openshift-storage
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: Immediate

    1
    true に設定する必要があります。
    重要

    CephFS VolumeSnapshotClass および StorageClass CR の Provisioner の値が同じであることを確認してください。

  2. 次の例のように Restic Secret CR を設定します。

    Restic Secret CR の例

    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret_name>
      namespace: <namespace>
    type: Opaque
    stringData:
      RESTIC_PASSWORD: <restic_password>

4.9.3.3. OADP 1.2 Data Mover と CephFS ストレージを使用したデータのバックアップと復元

OpenShift API for Data Protection (OADP) 1.2 Data Mover を使用すると、CephFS のシャローコピー機能を有効にすることで、CephFS ストレージを使用してデータをバックアップおよびリストアできます。

前提条件

  • ステートフルアプリケーションが、CephFS をプロビジョナーとして使用し、永続ボリューム要求 (PVC) を持つ別の namespace で実行されている。
  • StorageClass および VolumeSnapshotClass カスタムリソース (CR) が、CephFS および OADP 1.2 Data Mover 用に定義されています。
  • openshift-adp namespace にシークレットの cloud-credentials がある。
4.9.3.3.1. CephFS ストレージで使用する DPA の作成

OpenShift API for Data Protection (OADP) 1.2 Data Mover を使用して、CephFS ストレージでデータをバックアップおよびリストアするには、Data Protection Application (DPA) CR を作成する必要があります。

手順

  1. 次のコマンドを実行して、VolumeSnapshotClass CR の deletionPolicy フィールドが Retain に設定されていることを確認します。

    $ oc get volumesnapshotclass -A  -o jsonpath='{range .items[*]}{"Name: "}{.metadata.name}{"  "}{"Retention Policy: "}{.deletionPolicy}{"\n"}{end}'
  2. 次のコマンドを実行して、VolumeSnapshotClass CR のラベルが true に設定されていることを確認します。

    $ oc get volumesnapshotclass -A  -o jsonpath='{range .items[*]}{"Name: "}{.metadata.name}{"  "}{"labels: "}{.metadata.labels}{"\n"}{end}'
  3. 次のコマンドを実行して、StorageClass CR の storageclass.kubernetes.io/is-default-class アノテーションが true に設定されていることを確認します。

    $ oc get storageClass -A  -o jsonpath='{range .items[*]}{"Name: "}{.metadata.name}{"  "}{"annotations: "}{.metadata.annotations}{"\n"}{end}'
  4. 次の例のような Data Protection Application (DPA) CR を作成します。

    DPA CR の例

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: velero-sample
      namespace: openshift-adp
    spec:
      backupLocations:
        - velero:
            config:
              profile: default
              region: us-east-1
            credential:
              key: cloud
              name: cloud-credentials
            default: true
            objectStorage:
              bucket: <my_bucket>
              prefix: velero
           provider: aws
        configuration:
          restic:
            enable: false  1
          velero:
            defaultPlugins:
              - openshift
              - aws
              - csi
              - vsm
        features:
          dataMover:
            credentialName: <restic_secret_name> 2
            enable: true 3
            volumeOptionsForStorageClasses: 4
              ocs-storagecluster-cephfs:
                sourceVolumeOptions:
                  accessMode: ReadOnlyMany
                  cacheAccessMode: ReadWriteMany
                  cacheStorageClassName: ocs-storagecluster-cephfs
                  storageClassName: ocs-storagecluster-cephfs-shallow

    1
    enable フィールドにはデフォルト値はありません。有効な値は true または false です。
    2
    OADP 1.2 Data Mover および Ceph を操作するための環境を準備したときに作成した Restic Secret を使用します。Restic Secret を使用しない場合、CR はこのパラメーターのデフォルト値 dm-credential を使用します。
    3
    enable フィールドにはデフォルト値はありません。有効な値は true または false です。
    4
    オプションのパラメーター。各 storageClass ボリュームに対して、異なる VolumeOptionsForStorageClass ラベルのセットを定義できます。この設定では、異なるプロバイダーのボリュームのバックアップが提供されます。オプションの VolumeOptionsForStorageClass パラメーターは通常 CephFS で使用されますが、どのストレージタイプでも使用できます。
4.9.3.3.2. OADP 1.2 Data Mover と CephFS ストレージを使用したデータのバックアップ

OpenShift API for Data Protection (OADP) 1.2 Data Mover を使用すると、CephFS ストレージのシャローコピー機能を有効にすることで、CephFS ストレージを使用してデータをバックアップできます。

手順

  1. 次の例のように、Backup CR を作成します。

    Backup CR の例

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: <backup_name>
      namespace: <protected_ns>
    spec:
      includedNamespaces:
      - <app_ns>
      storageLocation: velero-sample-1

  2. 次の手順を実行して、VolumeSnapshotBackup CR の進行状況を監視します。

    1. すべての VolumeSnapshotBackup CR の進行状況を確認するには、次のコマンドを実行します。

      $ oc get vsb -n <app_ns>
    2. 特定の VolumeSnapshotBackup CR の進行状況を確認するには、次のコマンドを実行します。

      $ oc get vsb <vsb_name> -n <app_ns> -ojsonpath="{.status.phase}`
  3. VolumeSnapshotBackup CR のステータスが Completed になるまで、数分間待ちます。
  4. Restic Secret で指定されたスナップショットがオブジェクトストアに少なくとも 1 つあることを確認します。/<OADP-namespace> という接頭辞を持つ、対象の BackupStorageLocation ストレージプロバイダーでこのスナップショットを確認できます。
4.9.3.3.3. OADP 1.2 Data Mover と CephFS ストレージを使用したデータのリストア

CephFS ストレージのシャローコピー機能がバックアップ手順で有効になっている場合、OpenShift API for Data Protection (OADP) 1.2 Data Mover を使用して、CephFS ストレージを使用してデータをリストアできます。シャローコピー機能は復元手順では使用されません。

手順

  1. 次のコマンドを実行して、アプリケーションの namespace を削除します。

    $ oc delete vsb -n <app_namespace> --all
  2. 次のコマンドを実行して、バックアップ中に作成された VolumeSnapshotContent CR を削除します。

    $ oc delete volumesnapshotcontent --all
  3. 次の例のように、Restore CR を作成します。

    Restore CR の例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: <restore_name>
      namespace: <protected_ns>
    spec:
      backupName: <previous_backup_name>

  4. 次の手順を実行して、VolumeSnapshotRestore CR の進行状況を監視します。

    1. すべての VolumeSnapshotRestore CR の進行状況を確認するには、次のコマンドを実行します。

      $ oc get vsr -n <app_ns>
    2. 特定の VolumeSnapshotRestore CR の進行状況を確認するには、次のコマンドを実行します。

      $ oc get vsr <vsr_name> -n <app_ns> -ojsonpath="{.status.phase}
  5. 次のコマンドを実行して、アプリケーションデータが復元されたことを確認します。

    $ oc get route <route_name> -n <app_ns> -ojsonpath="{.spec.host}"

4.9.3.4. OADP 1.2 Data Mover と分割ボリューム (CephFS および Ceph RBD) を使用したデータのバックアップとリストア

OpenShift API for Data Protection (OADP) 1.2 Data Mover を使用すると、ボリュームを分割した 環境、つまり CephFS と CephRBD の両方を使用する環境でデータをバックアップおよびリストアできます。

前提条件

  • ステートフルアプリケーションが、CephFS をプロビジョナーとして使用し、永続ボリューム要求 (PVC) を持つ別の namespace で実行されている。
  • StorageClass および VolumeSnapshotClass カスタムリソース (CR) が、CephFS および OADP 1.2 Data Mover 用に定義されています。
  • openshift-adp namespace にシークレットの cloud-credentials がある。
4.9.3.4.1. 分割ボリュームで使用する DPA の作成

OpenShift API for Data Protection (OADP) 1.2 Data Mover を使用して、分割ボリュームでデータをバックアップおよびリストアするには、Data Protection Application (DPA) CR を作成する必要があります。

手順

  • 次の例のように、Data Protection Application (DPA) CR を作成します。

    分割ボリューム環境の DPA CR の例

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: velero-sample
      namespace: openshift-adp
    spec:
      backupLocations:
        - velero:
            config:
              profile: default
              region: us-east-1
            credential:
              key: cloud
              name: cloud-credentials
            default: true
            objectStorage:
              bucket: <my-bucket>
              prefix: velero
            provider: aws
      configuration:
        restic:
          enable: false
        velero:
          defaultPlugins:
            - openshift
            - aws
            - csi
            - vsm
      features:
        dataMover:
          credentialName: <restic_secret_name> 1
          enable: true
          volumeOptionsForStorageClasses: 2
            ocs-storagecluster-cephfs:
              sourceVolumeOptions:
                accessMode: ReadOnlyMany
                cacheAccessMode: ReadWriteMany
                cacheStorageClassName: ocs-storagecluster-cephfs
                storageClassName: ocs-storagecluster-cephfs-shallow
            ocs-storagecluster-ceph-rbd:
              sourceVolumeOptions:
                storageClassName: ocs-storagecluster-ceph-rbd
                cacheStorageClassName: ocs-storagecluster-ceph-rbd
              destinationVolumeOptions:
                storageClassName: ocs-storagecluster-ceph-rbd
                cacheStorageClassName: ocs-storagecluster-ceph-rbd

    1
    OADP 1.2 Data Mover および Ceph を操作するための環境を準備したときに作成した Restic Secret を使用します。そうしない場合、CR はこのパラメーターのデフォルト値 dm-credential を使用します。
    2
    storageClass ボリュームごとに異なる VolumeOptionsForStorageClass ラベルのセットを定義できるため、異なるプロバイダーのボリュームへのバックアップが可能になります。VolumeOptionsForStorageClass パラメーターは、CephFS で使用するためのものです。ただし、オプションの VolumeOptionsForStorageClass パラメーターは、どのストレージタイプでも使用できます。
4.9.3.4.2. OADP 1.2 Data Mover と分割ボリュームを使用したデータのバックアップ

OpenShift API for Data Protection (OADP) 1.2 Data Mover を使用して、分割ボリュームのある環境でデータをバックアップできます。

手順

  1. 次の例のように、Backup CR を作成します。

    Backup CR の例

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: <backup_name>
      namespace: <protected_ns>
    spec:
      includedNamespaces:
      - <app_ns>
      storageLocation: velero-sample-1

  2. 次の手順を実行して、VolumeSnapshotBackup CR の進行状況を監視します。

    1. すべての VolumeSnapshotBackup CR の進行状況を確認するには、次のコマンドを実行します。

      $ oc get vsb -n <app_ns>
    2. 特定の VolumeSnapshotBackup CR の進行状況を確認するには、次のコマンドを実行します。

      $ oc get vsb <vsb_name> -n <app_ns> -ojsonpath="{.status.phase}`
  3. VolumeSnapshotBackup CR のステータスが Completed になるまで、数分間待ちます。
  4. Restic Secret で指定されたスナップショットがオブジェクトストアに少なくとも 1 つあることを確認します。/<OADP-namespace> という接頭辞を持つ、対象の BackupStorageLocation ストレージプロバイダーでこのスナップショットを確認できます。
4.9.3.4.3. OADP 1.2 Data Mover と分割ボリュームを使用したデータのリストア

CephFS ストレージのシャローコピー機能がバックアップ手順で有効になっている場合、OpenShift API for Data Protection (OADP) 1.2 Data Mover を使用して、分割ボリュームのある環境でデータをリストアできます。シャローコピー機能は復元手順では使用されません。

手順

  1. 次のコマンドを実行して、アプリケーションの namespace を削除します。

    $ oc delete vsb -n <app_namespace> --all
  2. 次のコマンドを実行して、バックアップ中に作成された VolumeSnapshotContent CR を削除します。

    $ oc delete volumesnapshotcontent --all
  3. 次の例のように、Restore CR を作成します。

    Restore CR の例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: <restore_name>
      namespace: <protected_ns>
    spec:
      backupName: <previous_backup_name>

  4. 次の手順を実行して、VolumeSnapshotRestore CR の進行状況を監視します。

    1. すべての VolumeSnapshotRestore CR の進行状況を確認するには、次のコマンドを実行します。

      $ oc get vsr -n <app_ns>
    2. 特定の VolumeSnapshotRestore CR の進行状況を確認するには、次のコマンドを実行します。

      $ oc get vsr <vsr_name> -n <app_ns> -ojsonpath="{.status.phase}
  5. 次のコマンドを実行して、アプリケーションデータが復元されたことを確認します。

    $ oc get route <route_name> -n <app_ns> -ojsonpath="{.spec.host}"

4.9.4. OADP 1.1 Data Mover を使用したバックアップ後のクリーンアップ

OADP 1.1 Data Mover の場合、バックアップを実行した後にデータクリーンアップを実行する必要があります。

クリーンアップには、次のリソースの削除が含まれます。

  • バケット内のスナップショット
  • クラスターリソース
  • スケジュールに従って実行されるか、繰り返し実行されるバックアップ手順の後のボリュームスナップショットバックアップ (VSB)

4.9.4.1. バケット内のスナップショットの削除

OADP 1.1 Data Mover は、バックアップ後に 1 つ以上のスナップショットをバケットに残す場合があります。すべてのスナップショットを削除することも、個々のスナップショットを削除することもできます。

手順

  • バケット内のすべてのスナップショットを削除するには、データ保護アプリケーション (DPA) の .spec.backupLocation.objectStorage.bucket リソースで指定されている /<protected_namespace> フォルダーを削除します。
  • 個々のスナップショットを削除するには、以下のようになりました。

    1. DPA .spec.backupLocation.objectStorage.bucket リソースで指定されている /<protected_namespace> フォルダーを参照します。
    2. /<volumeSnapshotContent name>-pvc という接頭辞が付いた適切なフォルダーを削除します。ここで、<VolumeSnapshotContent_name> は、Data Mover によって PVC ごとに作成された VolumeSnapshotContent です。

4.9.4.2. クラスターリソースの削除

OADP 1.1 Data Mover は、コンテナーストレージインターフェイス (CSI) ボリュームのスナップショットをリモートオブジェクトストアに正常にバックアップするかどうかに関係なく、クラスターリソースを残す場合があります。

4.9.4.2.1. Data Mover を使用したバックアップとリストアが成功した後のクラスターリソースの削除

Data Mover を使用したバックアップとリストアが成功した後、アプリケーションの namespace に残っている VolumeSnapshotBackup または VolumeSnapshotRestore CR を削除できます。

手順

  1. Data Mover を使用したバックアップ後に、アプリケーションのnamespace (バックアップおよびリストアするアプリケーション PVC を含む namespace) に残っているクラスターリソースを削除します。

    $ oc delete vsb -n <app_namespace> --all
  2. Data Mover を使用するリストア後に残るクラスターリソースを削除します。

    $ oc delete vsr -n <app_namespace> --all
  3. 必要に応じて、Data Mover を使用するバックアップおよびリストア後に残っている VolumeSnapshotContent リソースを削除します。

    $ oc delete volumesnapshotcontent --all
4.9.4.2.2. Data Mover を使用したバックアップとリストアが部分的に成功または失敗した後のクラスターリソースの削除

Data Mover を使用したバックアップおよびリストア操作が失敗するか、部分的にしか成功しない場合は、アプリケーションの namespace に存在する VolumeSnapshotBackup (VSB) または VolumeSnapshotRestore カスタムリソース定義 (CRD) をクリーンアップし、このコントローラーによって作成された余分なリソースをクリーンアップする必要があります。

手順

  1. 次のコマンドを入力して、Data Mover を使用したバックアップ操作後に残ったクラスターリソースをクリーンアップします。

    1. アプリケーション namespace 上の VSB CRD を削除します。この namespace には、バックアップおよび復元するアプリケーション PVC が含まれています。

      $ oc delete vsb -n <app_namespace> --all
    2. VolumeSnapshot CR を削除します。

      $ oc delete volumesnapshot -A --all
    3. VolumeSnapshotContent CR を削除します。

      $ oc delete volumesnapshotcontent --all
    4. 保護された namespace (Operator がインストールされている namespace) 上の PVC をすべて削除します。

      $ oc delete pvc -n <protected_namespace> --all
    5. namespace 上の ReplicationSource リソースをすべて削除します。

      $ oc delete replicationsource -n <protected_namespace> --all
  2. 次のコマンドを入力して、Data Mover を使用したリストア操作後に残ったクラスターリソースをクリーンアップします。

    1. VSR CRD を削除します。

      $ oc delete vsr -n <app-ns> --all
    2. VolumeSnapshot CR を削除します。

      $ oc delete volumesnapshot -A --all
    3. VolumeSnapshotContent CR を削除します。

      $ oc delete volumesnapshotcontent --all
    4. namespace 上の ReplicationDestination リソースをすべて削除します。

      $ oc delete replicationdestination -n <protected_namespace> --all
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.