Object Storagge Disaster Recovery
The Ceph RGW Multi-Site feature is a cross-cluster asynchronous data replication mechanism designed to synchronize object storage data between geographically distributed Ceph clusters, providing High Availability (HA) and Disaster Recovery (DR) capabilities.
Terminology
Prerequisites
- Prepare two clusters available for deploying Rook-Ceph (Primary and Secondary clusters) with network connectivity between them.
- Both clusters must use the same platform version (v3.12 or later).
- Ensure no Ceph object storage is deployed on either the Primary or Secondary cluster.
- Refer to the Create Storage Service documentation to deploy Operator and create clusters. Do not proceed with object storage pool creation via the wizard after cluster creation. Instead, use CLI tools for configuration as described below.
Procedures
This guide provides a synchronization solution between two Zones in the same ZoneGroup.
Create Object Storage in Primary Cluster
This step creates the Realm, ZoneGroup, Primary Zone, and Primary Zone's gateway resources.
Execute the following commands on the Control node of the Primary cluster:
Parameter:
<realm-name>: Realm name.<zonegroup-name>: ZoneGroup name.<primary-zone-name>: Primary Zone name.<object-store-name>: Gateway name.
Configure External Access for Primary Zone
-
Obtain the UID of the ObjectStore {#uid}
Parameters
<object-store-name>: Gateway name configured in Step 1.
-
Create an external access Service
Parameters:
-
Add external endpoints to the CephObjectZone.
Parameters:
<zone-name>: Primary Zone name configured here.<external-endpoint>: External address obtained from the Primary cluster.
Obtain access-key and secret-key
Parameters:
<realm-name>: Realm name configured here.
Create Secondary Zone and Configure Realm Sync
This section explains how to create the Secondary Zone and configure synchronization by pulling Realm information from the Primary cluster.
Execute the following commands on the Control node of the Secondary cluster:
Parameters:
<access-key>: AK obtain from here.<secret-key>: SK obtain fromhere.<realm-endpoint>: External address obtained from the Primary cluster.<realm-name>: Realm.<zone-group-name>: ZoneGroup.<secondary-zone-name>: Name of the secondary zone.<secondary-object-store-name>: Name of the secndary Gateway.
Configure External Access for Secondary Zone
-
Obtain UID of Secondary Gateway {#uids}
Parameters:
<secondary-object-store-name>: Name of the Gateway in Secondary cluster.
-
Create an external access Service
Parameters:
<secondary-object-store-name>: Secondary Gateway.<secondary-object-store-uid>: Secondary Gateway UID.
-
Add external endpoints to the Secondary CephObjectZone
Parameters:
<secondary-zone-name>: Name of the Secondary Zone.<secondary-zone-external-endpoint>: External address obtained from the Secondary cluster.
Failover
When the Primary cluster fails, it is necessary to promote the Secondary Zone to the Primary Zone. After the switch, the Secondary Zone's gateway can continue to provide object storage services.
Procedures
Execute the following commands in the rook-ceph-tools` pod of the Secondary cluster
Parameters
<realm-name>: Realm name.<zone-group-name>: Zone Group name.<secondary-zone-name>: Secondary Zone name.
Related operations
Obtaine External address
-
Access Platform Management.
-
In the left navigation bar, click Storage Management > Distributed Storage.
-
In the Cluster Information tab, scroll down to the Storage Pool area, click on the ⋮ next to the object storage pool and select View Address.