4.9. OADP 1.3 Data Mover


4.9.1. OADP 1.3 Data Mover について

OADP 1.3 には、Container Storage Interface (CSI) ボリュームのスナップショットをリモートオブジェクトストアに移動するために使用できる、ビルトイン Data Mover が含まれています。ビルトイン Data Mover を使用すると、クラスターの障害、誤削除、または破損が発生した場合に、リモートオブジェクトストアからステートフルアプリケーションを復元できます。スナップショットデータを読み取り、統合リポジトリーに書き込むためのアップローダーメカニズムとして Kopia を使用します。

OADP は、以下で CSI スナップショットをサポートします。

  • Red Hat OpenShift Data Foundation
  • Kubernetes Volume Snapshot API をサポートする Container Storage Interface (CSI) ドライバーを使用するその他のクラウドストレージプロバイダー
重要

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

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

4.9.1.1. ビルトイン Data Mover の有効化

ビルトイン Data Mover を有効にするには、CSI プラグインを組み込み、DataProtectionApplication カスタムリソース (CR) でノードエージェントを有効にする必要があります。ノードエージェントは、データ移動モジュールをホストする Kubernetes デーモンセットです。これには、Data Mover のコントローラー、アップローダー、リポジトリーが含まれます。

DataProtectionApplication マニフェストの例

apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
  name: dpa-sample
spec:
  configuration:
    nodeAgent:
      enable: true 1
      uploaderType: kopia 2
    velero:
      defaultPlugins:
      - openshift
      - aws
      - csi 3
# ...

1
ノードエージェントを有効にするフラグ。
2
アップローダーの種類。使用できる値は、restic または kopia です。ビルトイン Data Mover は、uploaderType フィールドの値に関係なく、デフォルトのアップローダーメカニズムとして Kopia を使用します。
3
デフォルトプラグインのリストに含まれる CSI プラグイン。

4.9.1.2. ビルトイン Data Mover のコントローラーとカスタムリソース定義 (CRD)

ビルトイン Data Mover 機能には、バックアップと復元を管理するための CRD として定義された 3 つの新しい API オブジェクトが導入されています。

  • DataDownload: ボリュームスナップショットのデータダウンロードを表します。CSI プラグインは、復元するボリュームごとに 1 つの DataDownload オブジェクトを作成します。DataDownload CR には、ターゲットボリューム、指定された Data Mover、現在のデータダウンロードの進行状況、指定されたバックアップリポジトリー、プロセス完了後の現在のデータダウンロードの結果に関する情報が含まれます。
  • DataUpload: ボリュームスナップショットのデータアップロードを表します。CSI プラグインは、CSI スナップショットごとに 1 つの DataUpload オブジェクトを作成します。DataUpload CR には、指定されたスナップショット、指定された Data Mover、指定されたバックアップリポジトリー、現在のデータアップロードの進行状況、およびプロセス完了後の現在のデータアップロードの結果に関する情報が含まれます。
  • BackupRepository: バックアップリポジトリーのライフサイクルを表し、管理します。OADP は、namespace の最初の CSI スナップショットバックアップまたは復元が要求されると、namespace ごとにバックアップリポジトリーを作成します。

4.9.2. CSI スナップショットのバックアップと復元

OADP 1.3 Data Mover を使用して、永続ボリュームのバックアップと復元を実行できます。

4.9.2.1. CSI スナップショットを使用した永続ボリュームのバックアップ

OADP Data Mover を使用して、Container Storage Interface (CSI) ボリュームのスナップショットをリモートオブジェクトストアにバックアップできます。

前提条件

  • cluster-admin ロールでクラスターにアクセスできる。
  • OADP Operator がインストールされている。
  • CSI プラグインを組み込み、DataProtectionApplication カスタムリソース (CR) でノードエージェントを有効にしている。
  • 別の namespace で実行されている永続ボリュームを持つアプリケーションがある。
  • metadata.labels.velero.io/csi-volumesnapshot-class: "true" のキー/値ペアを VolumeSnapshotClass CR に追加している。

手順

  1. 次の例のように、Backup オブジェクトの YAML ファイルを作成します。

    Backup CR の例

    kind: Backup
    apiVersion: velero.io/v1
    metadata:
      name: backup
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: false
      includedNamespaces:
      - mysql-persistent
      itemOperationTimeout: 4h0m0s
      snapshotMoveData: true 1
      storageLocation: default
      ttl: 720h0m0s
      volumeSnapshotLocations:
      - dpa-sample-1
    # ...

    1
    CSI スナップショットのリモートオブジェクトストレージへの移動を有効にするには、true に設定します。
  2. マニフェストを適用します。

    $ oc create -f backup.yaml

    スナップショットの作成が完了すると、DataUpload CR が作成されます。

検証

  • DataUpload CR の status.phase フィールドを監視して、スナップショットデータがリモートオブジェクトストアに正常に転送されたことを確認します。使用される値は、In ProgressCompletedFailed、または Canceled です。オブジェクトストアは、DataProtectionApplication CR の backupLocations スタンザで設定されます。

    • 次のコマンドを実行して、すべての DataUpload オブジェクトのリストを取得します。

      $ oc get datauploads -A

      出力例

      NAMESPACE       NAME                  STATUS      STARTED   BYTES DONE   TOTAL BYTES   STORAGE LOCATION   AGE     NODE
      openshift-adp   backup-test-1-sw76b   Completed   9m47s     108104082    108104082     dpa-sample-1       9m47s   ip-10-0-150-57.us-west-2.compute.internal
      openshift-adp   mongo-block-7dtpf     Completed   14m       1073741824   1073741824    dpa-sample-1       14m     ip-10-0-150-57.us-west-2.compute.internal

    • 次のコマンドを実行して、DataUpload オブジェクトの status.phase フィールドの値を確認します。

      $ oc get datauploads <dataupload_name> -o yaml

      出力例

      apiVersion: velero.io/v2alpha1
      kind: DataUpload
      metadata:
        name: backup-test-1-sw76b
        namespace: openshift-adp
      spec:
        backupStorageLocation: dpa-sample-1
        csiSnapshot:
          snapshotClass: ""
          storageClass: gp3-csi
          volumeSnapshot: velero-mysql-fq8sl
        operationTimeout: 10m0s
        snapshotType: CSI
        sourceNamespace: mysql-persistent
        sourcePVC: mysql
      status:
        completionTimestamp: "2023-11-02T16:57:02Z"
        node: ip-10-0-150-57.us-west-2.compute.internal
        path: /host_pods/15116bac-cc01-4d9b-8ee7-609c3bef6bde/volumes/kubernetes.io~csi/pvc-eead8167-556b-461a-b3ec-441749e291c4/mount
        phase: Completed 1
        progress:
          bytesDone: 108104082
          totalBytes: 108104082
        snapshotID: 8da1c5febf25225f4577ada2aeb9f899
        startTimestamp: "2023-11-02T16:56:22Z"

      1
      これは、スナップショットデータがリモートオブジェクトストアに正常に転送されたことを示しています。

4.9.2.2. CSI ボリュームスナップショットの復元

Restore CR を作成することで、ボリュームスナップショットを復元できます。

注記

OAPD 1.3 のビルトイン Data Mover を使用して、OADP 1.2 から Volsync バックアップを復元することはできません。OADP 1.3 にアップグレードする前に、Restic を使用してすべてのワークロードのファイルシステムバックアップを実行することが推奨されます。

前提条件

  • cluster-admin ロールでクラスターにアクセスできる。
  • データの復元元となる OADP Backup CR がある。

手順

  1. 次の例のように、Restore CR の YAML ファイルを作成します。

    Restore CR の例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: restore
      namespace: openshift-adp
    spec:
      backupName: <backup>
    # ...

  2. マニフェストを適用します。

    $ oc create -f restore.yaml

    復元が開始されると、DataDownload が作成されます。

検証

  • DataDownload CR の status.phase フィールドをチェックすることで、復元プロセスのステータスを監視できます。使用される値は、In ProgressCompletedFailed、または Canceled です。

    • すべての DataDownload オブジェクトのリストを取得するには、次のコマンドを実行します。

      $ oc get datadownloads -A

      出力例

      NAMESPACE       NAME                   STATUS      STARTED   BYTES DONE   TOTAL BYTES   STORAGE LOCATION   AGE     NODE
      openshift-adp   restore-test-1-sk7lg   Completed   7m11s     108104082    108104082     dpa-sample-1       7m11s   ip-10-0-150-57.us-west-2.compute.internal

    • 次のコマンドを入力して、特定の DataDownload オブジェクトの status.phase フィールドの値を確認します。

      $ oc get datadownloads <datadownload_name> -o yaml

      出力例

      apiVersion: velero.io/v2alpha1
      kind: DataDownload
      metadata:
        name: restore-test-1-sk7lg
        namespace: openshift-adp
      spec:
        backupStorageLocation: dpa-sample-1
        operationTimeout: 10m0s
        snapshotID: 8da1c5febf25225f4577ada2aeb9f899
        sourceNamespace: mysql-persistent
        targetVolume:
          namespace: mysql-persistent
          pv: ""
          pvc: mysql
      status:
        completionTimestamp: "2023-11-02T17:01:24Z"
        node: ip-10-0-150-57.us-west-2.compute.internal
        phase: Completed 1
        progress:
          bytesDone: 108104082
          totalBytes: 108104082
        startTimestamp: "2023-11-02T17:00:52Z"

      1
      CSI スナップショットデータが正常に復元されたことを示します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.