1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OADPで特定のPVを対象から除外してバックアップ

Posted at

はじめに

本記事では、OpenShift上のアプリケーションをOpenShift API for Data Protection (OADP) によりバックアップする際、特定のPVを除外してバックアップする機能を検証します。

目次

  1. 検証環境
  2. 前提条件
  3. OADPで特定のPVをexcludeしてバックアップ
  4. まとめ
  5. 参考文献

検証環境

以下のように、OpenShiftのアプリケーションを外部のオブジェクトストレージにバックアップできる環境に対して、OADPの機能検証を行います。
本検証では、クラスタを構成する全てのノードをIBM Powerサーバ (ppc64le) のLPARに構築しています。OpenShiftの永続ストレージはIBM Storage Scale、オブジェクトストレージはMinIOを使用しています。

ocp-oadp-env.png

CNSAによりOpenShiftからIBM Storage Scaleを永続ストレージとして使用するための環境構築手順はこちらの記事、OADPによりアプリケーションをオブジェクトストレージにバックアップする環境構築手順はこちらの記事をご参照ください。

前提条件

以下の作業が完了していることを想定しています。

  • OpenShiftクラスタが構築済み
  • ストレージ側のScaleクラスタが構築済み
  • ストレージ側のScaleクラスタにファイルシステムが作成済み
  • ストレージ側のScaleクラスタ内のnsd nodeにScale GUIを構成済み
  • OpenShiftクラスタにCNSAをインストール・構成済み
  • OADPがインストール・構成済み

OADPで特定のPVをexcludeしてバックアップ

bastion nodeへSSHログインします。

# ssh root@<BASTION_NODE>

動作確認用にプロジェクトを作成します。

# oc new-project test1

プロジェクト内にPVCを作成します。(この例では、data1, data2, data3を作成しています)

# oc apply -f pvc_data1.yaml
persistentvolumeclaim/data1 created
# oc apply -f pvc_data2.yaml
persistentvolumeclaim/data2 created
# oc apply -f pvc_data3.yaml
persistentvolumeclaim/data3 created

プロジェクト内に上記PVを使用するPodを作成します。

# oc apply -f app.yaml
deployment.apps/test1-app created

3つのPVが正常に作成されたことを確認します。

# oc get pvc
NAME       STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                     AGE
data1      Bound    pvc-09d20fad-2b3b-4b4d-9148-0bed3c5d9972   100Gi      RWO            ibm-spectrum-scale-csi-fileset   5d21h
data2      Bound    pvc-f41d4ca9-efe8-42fc-81d5-1fcfe50284f0   200Gi      RWO            ibm-spectrum-scale-csi-fileset   6d17h
data3      Bound    pvc-28fcadb2-f01a-4492-89c6-ad3f4feab96c   300Gi      RWO            ibm-spectrum-scale-csi-fileset   6d17h

3つのPVのうち、data2とdata3をバック対象から除外するように、exclude-from-backupラベルをPVCとPVに設定します。

# oc -n test1 label pvc/data2 velero.io/exclude-from-backup=true
persistentvolumeclaim/data2 labeled
# oc -n test1 label pv/pvc-f41d4ca9-efe8-42fc-81d5-1fcfe50284f0 velero.io/exclude-from-backup=true
persistentvolume/pvc-f41d4ca9-efe8-42fc-81d5-1fcfe50284f0 labeled
# oc -n test1 label pvc/data3 velero.io/exclude-from-backup=true
persistentvolumeclaim/data3 labeled
# oc -n test1 label pv/pvc-28fcadb2-f01a-4492-89c6-ad3f4feab96c  velero.io/exclude-from-backup=true
persistentvolume/pvc-28fcadb2-f01a-4492-89c6-ad3f4feab96c labeled

動作確認用に作成したtest1というnamespaceに対して、バックアップを取得します。

# cat << EOF > backup_test1.yaml
apiVersion: velero.io/v1
kind: Backup
metadata:
  name: backup-test-1
  namespace: openshift-adp
spec:
  storageLocation: default
  includedNamespaces:
  - test1
EOF
# oc apply -f backup_test1.yaml
backup.velero.io/backup-test-1 created

取得したsnapshotを確認します。

# oc get volumesnapshotcontents
NAME                                               READYTOUSE   RESTORESIZE    DELETIONPOLICY   DRIVER                      VOLUMESNAPSHOTCLASS                     VOLUMESNAPSHOT                              VOLUMESNAPSHOTNAMESPACE                   AGE
snapcontent-0fa20379-7bb4-443a-81ac-cf3b452c5c35   true         107374182400   Retain           spectrumscale.csi.ibm.com   ibm-spectrum-scale-snapshot-class       velero-database-gzgwn                       test1                                 6d16h

Scaleクラスタのnsd nodeからsnapshotを確認します。 (Storage Scaleのmmlssnapshotコマンドの出力の中に、作成した3つのPVCが含まれるかを調べます)

# ssh <NSD_NDOE> "/usr/lpp/mmfs/bin/mmlssnapshot fs1 | grep -e pvc-09d20fad-2b3b-4b4d-9148-0bed3c5d9972 -e pvc-f41d4ca9-efe8-42fc-81d5-1fcfe50284f0 -e pvc-28fcadb2-f01a-4492-89c6-ad3f4feab96c"
snapshot-0fa20379-7bb4-443a-81ac-cf3b452c5c35 9         Valid   Mon Jul 22 19:31:22 2024  Mon Jul 22 19:31:22 2024 pvc-09d20fad-2b3b-4b4d-9148-0bed3c5d9972 

3つのPVのうち、2つのPVがバックアップ対象から除外され、data1 (pvc-09d20fad-2b3b-4b4d-9148-0bed3c5d9972) のみsnapshotが取得されています。

まとめ

OpenShift上のアプリケーションをOADPによりバックアップする際に、exclude-from-backupラベルを特定のPVC及びPVに設定することにより、バックアップ対象から除外されることを確認できました。

参考文献

1
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?