はじめに
本記事では、OpenShift API for Data Protection (OADP) を利用している環境において、新しいオブジェクトストレージへ移行する場合など、バックアップ先のバケットを切り替える必要が生じた場合の切り替え手順を示します。
目次
検証環境
- OADP version: 1.3, 1.4
- Object Storage: MinIO
- Data Mover: kopia
バックアップ先の切り替え手順
既存のBackupRepositoryの定義を念のためバックアップしておきます。
# oc get backuprepository -n openshift-adp <repostiory_name> -o yaml > <repository name>.yaml
BackupRepositoryを削除します。削除する理由は、BackupRepositoryの定義が残ったままだと、バックアップ先切り替え設定後も古いバケット内のデータを参照しようとして、バックアップが失敗してしまうためです。
# oc delete backuprepository -n openshfit-adp <repository_name>
Data Protection ApplicationのbucketLocations部分の定義を新しいバックアップ先の情報に変更します。(credentialも必要に応じて更新します)
backupLocations:
- name: default
velero:
provider: aws
default: true
objectStorage:
bucket: backup-new
prefix: velero
config:
region: minio
s3Url: http://192.168.0.1:8080
s3ForcePathStyle: "true"
insecureSkipTLSVerify: "true"
profile: "backupStorage"
credential:
key: cloud
name: cloud-credentials
既存のData Protection Applicationを一旦削除します。
# oc delete -f dpa.yaml
変更したyamlファイルを適用して、新しいバックアップ先を有効化します。
# oc apply -f dpa.yaml
新しいバックアップ先にバックアップが取れるか確認するためのyamlを用意します。
# cat << EOF > backup.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.yaml
backup.velero.io/backup-test-1 created
対象namespaceの全PVについて、datauploadsのSTATUSがCompletedになっていれば、バックアップが成功しています。
# oc get datauploads -A
NAMESPACE NAME STATUS STARTED BYTES DONE TOTAL BYTES STORAGE LOCATION AGE NODE
openshift-adp backup-test-1-xd4gp Completed 4s 3485696 3485696 default 114s worker1.example.com
まとめ
新しいオブジェクトストレージへの移行などに伴うOADPのバックアップ先の切り替え手順を検証しました。BackupRepositoryを削除せずに、Data Protection Applicationの設定を変更するだけだと、古いバケットのデータを参照しにいこうとしてバックアップに失敗するので、その点注意する必要があります。