4.7. 在 Hub 集群上创建灾难恢复策略
OpenShift 灾难恢复策略(DRPolicy)资源指定参与灾难恢复解决方案和所需的复制间隔的 OpenShift Container Platform 集群。DRPolicy 是一个集群范围的资源,用户可以应用到需要灾难恢复解决方案的应用程序。
ODF MultiCluster Orchestrator Operator 通过 Multicluster Web console 促进每个 DRPolicy 和相应的 DRClusters 的创建。
先决条件
- 确保至少一组两个受管集群。
流程
-
在 OpenShift 控制台中,导航到 All Clusters
Data Services disaster recovery。 - 在 Overview 选项卡中,点 Create a disaster recovery policy 或 navigate to Policies 标签页,点 Create DRPolicy。
-
输入 Policy name。确保每个 DRPolicy 都有一个唯一名称(例如:
ocp4bos1-ocp4bos2-5m)。 - 从与此新策略关联的受管集群列表中选择两个集群。
-
复制策略根据所选的 OpenShift 集群自动设置为
异步,同步调度 选项将变为可用。 设置同步调度。
重要对于每个需要的复制间隔,必须使用唯一名称(如
ocp4bos1-ocp4bos2-10m)创建新的 DRPolicy。可以选择同一集群,但 Sync 调度 可以用分钟/小时/天内使用不同的复制间隔配置。最小值为一分钟。可选 :展开 高级设置,并选中对恢复和 克隆 PersistentVolumeClaims 的启用灾难恢复支持(仅适用于 Data Foundation)。如需了解更多详细信息,请参阅克隆和恢复 RBD 卷的灾难恢复保护。
注意这个选项只应用于发现的应用程序。
- 点 Create。
验证 DRPolicy 是否已成功创建。在 Hub 集群中,为创建的每个 DRPolicy 资源运行这个命令,使用您的唯一名称替换 <drpolicy_name>。
$ oc get drpolicy <drpolicy_name> -o jsonpath='{.status.conditions[].reason}{"\n"}'输出示例:
Succeeded创建 DRPolicy 时,也会创建两个 DRCluster 资源。验证所有三个资源并且状态显示为
Succeeded最多需要 10 分钟。注意DRPolicy 不支持编辑
SchedulingInterval、ReplicationClassSelector、VolumeSnapshotClassSelector和DRClusters字段值。验证对象存储桶可以从 Hub 集群、Primary 受管集群和 Secondary 受管集群访问。
获取 Hub 集群上的 DRClusters 的名称。
$ oc get drclusters输出示例:
NAME AGE ocp4bos1 4m42s ocp4bos2 4m42s检查 S3 访问每个受管集群上创建的每个存储桶。使用 DRCluster 验证命令,使用您的唯一名称替换 <drcluster_name>。
注意DRClusters 不支持编辑
Region和S3ProfileName字段值。$ oc get drcluster <drcluster_name> -o jsonpath='{.status.conditions[2].reason}{"\n"}'输出示例:
Succeeded注意确保为在 Hub 集群中的两个 DRClusters 运行命令。
验证 OpenShift DR Cluster operator 已成功在 Primary 受管集群和 Secondary 受管集群上成功安装。
$ oc get csv,pod -n openshift-dr-system | egrep 'odr|ramen'输出示例:
clusterserviceversion.operators.coreos.com/odr-cluster-operator.v4.19.3-rhodf Openshift DR Cluster Operator 4.19.3-rhodf odr-cluster-operator.v4.19.2-rhodf Succeeded pod/ramen-dr-cluster-operator-77bf74849c-rfn85 2/2 Running 0 7h20m您还可以验证
OpenShift DR Cluster Operator是否在每个受管集群的 OperatorHub 上成功安装。验证
StorageClusterPeer是否 在主受管集群和次受管集群上 处于Peered状态:注意<managedcluser_name> 是指 RHACM 中的 ManagedCluster 名称。在主 受管集群中,使用 二级受管集群 名称。在 二级受管集群 中,使用 主受管集群 名称。$ oc get storageclusterpeer <managedcluser_name>-peer -n openshift-storage -oyaml | yq '.status.state输出示例:
Peered注意创建初始 DRPolicy 时,VolSync operator 会在每个受管集群的
volsync-system项目中自动安装。VolSync 用于在两个集群之间设置卷复制,以保护基于 CephFS 的 PVC。复制功能默认为启用。验证 OpenShift Data Foundation 镜像 Primary 受管集群和 Secondary 受管集群中的
daemon健康的状态。$ oc get cephblockpoolradosnamespaces ocs-storagecluster-cephblockpool-builtin-implicit -n openshift-storage -o jsonpath='{.status.mirroringStatus.summary}{"\n"}'输出示例:
{"daemon_health":"OK","group_health":"OK","group_states":{},"health":"OK","image_health":"OK","image_states":{},"states":{}}Importantdaemon_health和health从 Warning 变为 OK 可能需要最多 10 分钟。如果状态最终未变为 OK,则使用 RHACM 控制台验证受管集群之间的 Submariner 连接是否仍然处于健康状态。在所有值都变为 OK 之前不要继续。