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 Data Mover を使用して、Container Storage Interface (CSI) ボリュームのスナップショットをリモートオブジェクトストアにバックアップできます。CSI スナップショットに Data Mover を使用する を参照してください。
- OADP 1.2 Data Mover を使用して、CephFS、CephRBD、またはその両方を使用するクラスターのアプリケーションデータをバックアップおよび復元できます。Ceph Storage での OADP 1.2 Data Mover の使用 を参照してください。
- OADP 1.1 Data Mover を使用している場合は、バックアップを実行した後にデータのクリーンアップを実行する必要があります。OADP 1.1 Data Mover を使用したバックアップ後のクリーンアップ を参照してください。
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 をインストールしている。
-
適切な
VolumeSnapshotClass
とStorageClass
を作成している。 - 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 のdeletionPolicy
がRetain
に設定されていることを確認している。 -
注釈
storageclass.kubernetes.io/is-default-class: "true"
を持つStorageClass
CR が 1 つだけであることを確認している。 -
VolumeSnapshotClass
CR にラベルvelero.io/csi-volumesnapshot-class: "true"
を追加している。 OADP namespace
にoc 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
などの別のファイルシステムタイプを使用することを検討してください。
手順
次のように
.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 で名前を指定する必要があります。次の例のような 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>
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>
次の手順を実行して、ボリュームスナップショットをバックアップできます。
バックアップ CR を作成します。
apiVersion: velero.io/v1 kind: Backup metadata: name: <backup_name> namespace: <protected_ns> 1 spec: includedNamespaces: - <app_ns> 2 storageLocation: velero-sample-1
次のコマンドを入力して、最大 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 ログを参照してください。
次の手順を実行して、ボリュームスナップショットを復元できます。
-
アプリケーションの namespace と、Velero CSI プラグインによって作成された
VolumeSnapshotContent
を削除します。 Restore
CR を作成し、restorePVs
をtrue
に設定します。Restore
CR の例apiVersion: velero.io/v1 kind: Restore metadata: name: <restore_name> namespace: <protected_ns> spec: backupName: <previous_backup_name> restorePVs: true
最大 10 分間待機し、次のコマンドを入力して、
VolumeSnapshotRestore
CR ステータスがCompleted
であるかどうかを確認します。$ oc get vsr -n <app_ns>
$ oc get vsr <vsr_name> -n <app_ns> -o jsonpath="{.status.phase}"
アプリケーションデータとリソースが復元されたかどうかを確認します。
注記VolumeSnapshotRestore
CR のステータスが 'Failed' になった場合は、トラブルシューティングのために Velero ログを参照してください。
-
アプリケーションの namespace と、Velero CSI プラグインによって作成された
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 で使用するために定義できます。
手順
以下の例のように
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
以下の例のように
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 で使用するために定義できます。
手順
以下の例のように
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
以下の例のように
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
手順
次の例のように CephFS
StorageClass
CR を作成し、backingSnapshot
パラメーターをtrue
に設定します。backingSnapshot
をtrue
に設定した CephFSStorageClass
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
の値が同じであることを確認してください。次の例のように 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 を作成する必要があります。
手順
次のコマンドを実行して、
VolumeSnapshotClass
CR のdeletionPolicy
フィールドがRetain
に設定されていることを確認します。$ oc get volumesnapshotclass -A -o jsonpath='{range .items[*]}{"Name: "}{.metadata.name}{" "}{"Retention Policy: "}{.deletionPolicy}{"\n"}{end}'
次のコマンドを実行して、
VolumeSnapshotClass
CR のラベルがtrue
に設定されていることを確認します。$ oc get volumesnapshotclass -A -o jsonpath='{range .items[*]}{"Name: "}{.metadata.name}{" "}{"labels: "}{.metadata.labels}{"\n"}{end}'
次のコマンドを実行して、
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}'
次の例のような 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
を使用します。ResticSecret
を使用しない場合、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 ストレージを使用してデータをバックアップできます。
手順
次の例のように、
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
次の手順を実行して、
VolumeSnapshotBackup
CR の進行状況を監視します。すべての
VolumeSnapshotBackup
CR の進行状況を確認するには、次のコマンドを実行します。$ oc get vsb -n <app_ns>
特定の
VolumeSnapshotBackup
CR の進行状況を確認するには、次のコマンドを実行します。$ oc get vsb <vsb_name> -n <app_ns> -ojsonpath="{.status.phase}`
-
VolumeSnapshotBackup
CR のステータスがCompleted
になるまで、数分間待ちます。 -
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 ストレージを使用してデータをリストアできます。シャローコピー機能は復元手順では使用されません。
手順
次のコマンドを実行して、アプリケーションの namespace を削除します。
$ oc delete vsb -n <app_namespace> --all
次のコマンドを実行して、バックアップ中に作成された
VolumeSnapshotContent
CR を削除します。$ oc delete volumesnapshotcontent --all
次の例のように、
Restore
CR を作成します。Restore
CR の例apiVersion: velero.io/v1 kind: Restore metadata: name: <restore_name> namespace: <protected_ns> spec: backupName: <previous_backup_name>
次の手順を実行して、
VolumeSnapshotRestore
CR の進行状況を監視します。すべての
VolumeSnapshotRestore
CR の進行状況を確認するには、次のコマンドを実行します。$ oc get vsr -n <app_ns>
特定の
VolumeSnapshotRestore
CR の進行状況を確認するには、次のコマンドを実行します。$ oc get vsr <vsr_name> -n <app_ns> -ojsonpath="{.status.phase}
次のコマンドを実行して、アプリケーションデータが復元されたことを確認します。
$ 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 を使用して、分割ボリュームのある環境でデータをバックアップできます。
手順
次の例のように、
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
次の手順を実行して、
VolumeSnapshotBackup
CR の進行状況を監視します。すべての
VolumeSnapshotBackup
CR の進行状況を確認するには、次のコマンドを実行します。$ oc get vsb -n <app_ns>
特定の
VolumeSnapshotBackup
CR の進行状況を確認するには、次のコマンドを実行します。$ oc get vsb <vsb_name> -n <app_ns> -ojsonpath="{.status.phase}`
-
VolumeSnapshotBackup
CR のステータスがCompleted
になるまで、数分間待ちます。 -
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 を使用して、分割ボリュームのある環境でデータをリストアできます。シャローコピー機能は復元手順では使用されません。
手順
次のコマンドを実行して、アプリケーションの namespace を削除します。
$ oc delete vsb -n <app_namespace> --all
次のコマンドを実行して、バックアップ中に作成された
VolumeSnapshotContent
CR を削除します。$ oc delete volumesnapshotcontent --all
次の例のように、
Restore
CR を作成します。Restore
CR の例apiVersion: velero.io/v1 kind: Restore metadata: name: <restore_name> namespace: <protected_ns> spec: backupName: <previous_backup_name>
次の手順を実行して、
VolumeSnapshotRestore
CR の進行状況を監視します。すべての
VolumeSnapshotRestore
CR の進行状況を確認するには、次のコマンドを実行します。$ oc get vsr -n <app_ns>
特定の
VolumeSnapshotRestore
CR の進行状況を確認するには、次のコマンドを実行します。$ oc get vsr <vsr_name> -n <app_ns> -ojsonpath="{.status.phase}
次のコマンドを実行して、アプリケーションデータが復元されたことを確認します。
$ 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>
フォルダーを削除します。 個々のスナップショットを削除するには、以下のようになりました。
-
DPA
.spec.backupLocation.objectStorage.bucket
リソースで指定されている/<protected_namespace>
フォルダーを参照します。 -
/<volumeSnapshotContent name>-pvc
という接頭辞が付いた適切なフォルダーを削除します。ここで、<VolumeSnapshotContent_name>
は、Data Mover によって PVC ごとに作成されたVolumeSnapshotContent
です。
-
DPA
4.9.4.2. クラスターリソースの削除
OADP 1.1 Data Mover は、コンテナーストレージインターフェイス (CSI) ボリュームのスナップショットをリモートオブジェクトストアに正常にバックアップするかどうかに関係なく、クラスターリソースを残す場合があります。
4.9.4.2.1. Data Mover を使用したバックアップとリストアが成功した後のクラスターリソースの削除
Data Mover を使用したバックアップとリストアが成功した後、アプリケーションの namespace に残っている VolumeSnapshotBackup
または VolumeSnapshotRestore
CR を削除できます。
手順
Data Mover を使用したバックアップ後に、アプリケーションのnamespace (バックアップおよびリストアするアプリケーション PVC を含む namespace) に残っているクラスターリソースを削除します。
$ oc delete vsb -n <app_namespace> --all
Data Mover を使用するリストア後に残るクラスターリソースを削除します。
$ oc delete vsr -n <app_namespace> --all
必要に応じて、Data Mover を使用するバックアップおよびリストア後に残っている
VolumeSnapshotContent
リソースを削除します。$ oc delete volumesnapshotcontent --all
4.9.4.2.2. Data Mover を使用したバックアップとリストアが部分的に成功または失敗した後のクラスターリソースの削除
Data Mover を使用したバックアップおよびリストア操作が失敗するか、部分的にしか成功しない場合は、アプリケーションの namespace に存在する VolumeSnapshotBackup
(VSB) または VolumeSnapshotRestore
カスタムリソース定義 (CRD) をクリーンアップし、このコントローラーによって作成された余分なリソースをクリーンアップする必要があります。
手順
次のコマンドを入力して、Data Mover を使用したバックアップ操作後に残ったクラスターリソースをクリーンアップします。
アプリケーション namespace 上の VSB CRD を削除します。この namespace には、バックアップおよび復元するアプリケーション PVC が含まれています。
$ oc delete vsb -n <app_namespace> --all
VolumeSnapshot
CR を削除します。$ oc delete volumesnapshot -A --all
VolumeSnapshotContent
CR を削除します。$ oc delete volumesnapshotcontent --all
保護された namespace (Operator がインストールされている namespace) 上の PVC をすべて削除します。
$ oc delete pvc -n <protected_namespace> --all
namespace 上の
ReplicationSource
リソースをすべて削除します。$ oc delete replicationsource -n <protected_namespace> --all
次のコマンドを入力して、Data Mover を使用したリストア操作後に残ったクラスターリソースをクリーンアップします。
VSR CRD を削除します。
$ oc delete vsr -n <app-ns> --all
VolumeSnapshot
CR を削除します。$ oc delete volumesnapshot -A --all
VolumeSnapshotContent
CR を削除します。$ oc delete volumesnapshotcontent --all
namespace 上の
ReplicationDestination
リソースをすべて削除します。$ oc delete replicationdestination -n <protected_namespace> --all