mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
225 lines
5.4 KiB
Plaintext
225 lines
5.4 KiB
Plaintext
// Module included in the following assemblies:
|
|
//
|
|
// * backup_and_restore/application_backup_and_restore/installing/configuring-oadp-multiple-bsl.adoc
|
|
|
|
|
|
:_mod-docs-content-type: PROCEDURE
|
|
[id="oadp-multiple-bsl-use-case_{context}"]
|
|
= Configuring two backup BSLs with different cloud credentials
|
|
|
|
[role="_abstract"]
|
|
Configure two backup storage locations with different cloud credentials to back up applications to multiple storage targets. With this setup, you can distribute backups across different storage providers for redundancy.
|
|
|
|
|
|
.Prerequisites
|
|
|
|
* You must install the {oadp-short} Operator.
|
|
* You must configure two backup storage locations: AWS S3 and Multicloud Object Gateway (MCG).
|
|
* You must have an application with a database deployed on a Red Hat OpenShift cluster.
|
|
|
|
.Procedure
|
|
|
|
. Create the first `Secret` for the AWS S3 storage provider with the default name by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=<aws_credentials_file_name>
|
|
----
|
|
+
|
|
where:
|
|
+
|
|
`<aws_credentials_file_name>`:: Specifies the name of the cloud credentials file for AWS S3.
|
|
|
|
. Create the second `Secret` for MCG with a custom name by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc create secret generic mcg-secret -n openshift-adp --from-file cloud=<MCG_credentials_file_name>
|
|
----
|
|
+
|
|
where:
|
|
+
|
|
`<MCG_credentials_file_name>`:: Specifies the name of the cloud credentials file for MCG. Note the name of the `mcg-secret` custom secret.
|
|
|
|
. Configure the DPA with the two BSLs as shown in the following example.
|
|
+
|
|
.Example DPA
|
|
[source,yaml]
|
|
----
|
|
apiVersion: oadp.openshift.io/v1alpha1
|
|
kind: DataProtectionApplication
|
|
metadata:
|
|
name: two-bsl-dpa
|
|
namespace: openshift-adp
|
|
spec:
|
|
backupLocations:
|
|
- name: aws
|
|
velero:
|
|
config:
|
|
profile: default
|
|
region: <region_name>
|
|
credential:
|
|
key: cloud
|
|
name: cloud-credentials
|
|
default: true
|
|
objectStorage:
|
|
bucket: <bucket_name>
|
|
prefix: velero
|
|
provider: aws
|
|
- name: mcg
|
|
velero:
|
|
config:
|
|
insecureSkipTLSVerify: "true"
|
|
profile: noobaa
|
|
region: <region_name>
|
|
s3ForcePathStyle: "true"
|
|
s3Url: <s3_url>
|
|
credential:
|
|
key: cloud
|
|
name: mcg-secret
|
|
objectStorage:
|
|
bucket: <bucket_name_mcg>
|
|
prefix: velero
|
|
provider: aws
|
|
configuration:
|
|
nodeAgent:
|
|
enable: true
|
|
uploaderType: kopia
|
|
velero:
|
|
defaultPlugins:
|
|
- openshift
|
|
- aws
|
|
----
|
|
+
|
|
where:
|
|
+
|
|
`<region_name>`:: Specifies the AWS region for the bucket.
|
|
`<bucket_name>`:: Specifies the AWS S3 bucket name.
|
|
`region: <region_name>`:: Specifies the region, following the naming convention of the documentation of MCG.
|
|
`<s3_url>`:: Specifies the URL of the S3 endpoint for MCG.
|
|
`mcg-secret`:: Specifies the name of the custom secret for MCG storage.
|
|
`<bucket_name_mcg>`:: Specifies the MCG bucket name.
|
|
|
|
. Create the DPA by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc create -f <dpa_file_name>
|
|
----
|
|
+
|
|
where:
|
|
+
|
|
`<dpa_file_name>`:: Specifies the file name of the DPA you configured.
|
|
|
|
. Verify that the DPA has reconciled by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc get dpa -o yaml
|
|
----
|
|
|
|
. Verify that the BSLs are available by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc get bsl
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
NAME PHASE LAST VALIDATED AGE DEFAULT
|
|
aws Available 5s 3m28s true
|
|
mcg Available 5s 3m28s
|
|
----
|
|
|
|
. Create a backup CR with the default BSL.
|
|
+
|
|
[NOTE]
|
|
====
|
|
In the following example, the `storageLocation` field is not specified in the backup CR.
|
|
====
|
|
+
|
|
.Example backup CR
|
|
[source,yaml]
|
|
----
|
|
apiVersion: velero.io/v1
|
|
kind: Backup
|
|
metadata:
|
|
name: test-backup1
|
|
namespace: openshift-adp
|
|
spec:
|
|
includedNamespaces:
|
|
- <mysql_namespace>
|
|
defaultVolumesToFsBackup: true
|
|
----
|
|
+
|
|
where:
|
|
+
|
|
`<mysql_namespace>`:: Specifies the namespace for the application installed in the cluster.
|
|
|
|
. Create a backup by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc apply -f <backup_file_name>
|
|
----
|
|
+
|
|
where:
|
|
+
|
|
`<backup_file_name>`:: Specifies the name of the backup CR file.
|
|
|
|
. Verify that the backup completed with the default BSL by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc get backups.velero.io <backup_name> -o yaml
|
|
----
|
|
+
|
|
where:
|
|
+
|
|
`<backup_name>`:: Specifies the name of the backup.
|
|
|
|
. Create a backup CR by using MCG as the BSL. In the following example, note that the second `storageLocation` value is specified at the time of backup CR creation.
|
|
+
|
|
.Example backup `CR`
|
|
[source,yaml]
|
|
----
|
|
apiVersion: velero.io/v1
|
|
kind: Backup
|
|
metadata:
|
|
name: test-backup1
|
|
namespace: openshift-adp
|
|
spec:
|
|
includedNamespaces:
|
|
- <mysql_namespace>
|
|
storageLocation: mcg
|
|
defaultVolumesToFsBackup: true
|
|
----
|
|
+
|
|
where:
|
|
+
|
|
`<mysql_namespace>`:: Specifies the namespace for the application installed in the cluster.
|
|
`mcg`:: Specifies the second storage location.
|
|
|
|
. Create a second backup by running the following command:
|
|
+
|
|
[source, terminal]
|
|
----
|
|
$ oc apply -f <backup_file_name>
|
|
----
|
|
+
|
|
where:
|
|
+
|
|
`<backup_file_name>`:: Specifies the name of the backup CR file.
|
|
|
|
. Verify that the backup completed with the storage location as MCG by running the following command:
|
|
+
|
|
[source, terminal]
|
|
----
|
|
$ oc get backups.velero.io <backup_name> -o yaml
|
|
----
|
|
+
|
|
where:
|
|
+
|
|
`<backup_name>`:: Specifies the name of the backup. |