3.6. 在受管集群中安装 OpenShift Data Foundation
要在两个 OpenShift Container Platform 集群之间配置存储复制,OpenShift Data Foundation Operator 必须首先安装在每个受管集群中。
先决条件
- 确保您已满足 OpenShift Data Foundation 外部部署的硬件要求。有关硬件要求的详情,请参阅 外部模式要求。
流程
- 在每个受管集群中安装和配置最新的 OpenShift Data Foundation 集群。
安装 Operator 后,使用选项 Full deployment type 和
Connect with external storage platform创建一个 StorageSystem,其中您的 后端存储类型是Red Hat Ceph Storage。具体步骤请参考 以外部模式部署 OpenShift Data Foundation。
将以下标记与
ceph-external-cluster-details-exporter.py脚本一起使用。您至少需要在
ceph-external-cluster-details-exporter.py 脚本中使用以下三个标记:- --rbd-data-pool-name
-
使用在为 OpenShift Container Platform 部署 RHCS 时创建的 RBD 池的名称。例如,池可以命名为
rbdpool。 - --rgw-endpoint
-
以 <
ip_address>:<port> 格式提供端点。它是在与您要配置的 OpenShift Container Platform 集群相同的站点上运行的 RGW 守护进程的 RGW IP。 - --run-as-user
- 每个站点使用不同的客户端名称。
如果在 RHCS 部署期间使用默认值,则以下标记
是可选的:- --cephfs-filesystem-name
-
使用在为 OpenShift Container Platform 在 RHCS 部署期间创建的 CephFS 文件系统的名称,默认的文件系统名称为
cephfs。 - --cephfs-data-pool-name
-
在用于 OpenShift Container Platform 的 RHCS 部署期间创建的 CephFS 数据池的名称时,默认的池称为
cephfs.data。 - --cephfs-metadata-pool-name
-
在用于 OpenShift Container Platform 的 RHCS 部署期间创建的 CephFS 元数据池的名称时,默认的池称为
cephfs.meta。
在 bootstrap 节点
ceph1上运行以下命令,以获取 datacenter1 和 datacenter2 中 RGW 端点的 IP:ceph orch ps | grep rgw.objectgw输出示例:
rgw.objectgw.ceph3.mecpzm ceph3 *:8080 running (5d) 31s ago 7w 204M - 16.2.7-112.el8cp rgw.objectgw.ceph6.mecpzm ceph6 *:8080 running (5d) 31s ago 7w 204M - 16.2.7-112.el8cphost ceph3.example.com host ceph6.example.com输出示例:
ceph3.example.com has address 10.0.40.24 ceph6.example.com has address 10.0.40.66使用在引导的节点
ceph1上为第一个 OpenShift Container Platform 受管集群cluster1配置的参数,运行ceph-external-cluster-details-exporter.py。python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name rbdpool --cephfs-filesystem-name cephfs --cephfs-data-pool-name cephfs.cephfs.data --cephfs-metadata-pool-name cephfs.cephfs.meta --<rgw-endpoint> XXX.XXX.XXX.XXX:8080 --run-as-user client.odf.cluster1 > ocp-cluster1.json注意根据您的环境修改 <rgw-endpoint> XXX.XXX.XXX。
使用在引导的节点
ceph1上为第一个 OpenShift Container Platform 受管集群cluster2配置的参数,运行ceph-external-cluster-details-exporter.py。python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name rbdpool --cephfs-filesystem-name cephfs --cephfs-data-pool-name cephfs.cephfs.data --cephfs-metadata-pool-name cephfs.cephfs.meta --rgw-endpoint XXX.XXX.XXX.XXX:8080 --run-as-user client.odf.cluster2 > ocp-cluster2.json注意根据您的环境修改 <rgw-endpoint> XXX.XXX.XXX。
-
将 bootstrap 集群(ceph1)
ocp-cluster1.json和ocp-cluster2.json中生成的两个文件保存到本地机器中。 -
在部署了外部 OpenShift Data Foundation 的
cluster1上,使用 OpenShift Container Platform 控制台上的文件ocp-cluster1.json的内容。 -
在部署了外部 OpenShift Data Foundation 的
cluster2上,使用 OpenShift Container Platform 控制台上的文件ocp-cluster2.json的内容。
-
将 bootstrap 集群(ceph1)
- 检查设置,然后选择 Create StorageSystem。
使用以下命令验证每个受管集群上的 OpenShift Data Foundation 部署是否成功:
$ oc get storagecluster -n openshift-storage ocs-external-storagecluster -o jsonpath='{.status.phase}{"\n"}'对于 Multicloud 网关(MCG):
$ oc get noobaa -n openshift-storage noobaa -o jsonpath='{.status.phase}{"\n"}'等待状态结果在 主受管集群和次受管集群 上都处于 Ready 状态。
-
在 OpenShift Web 控制台中,导航到 Installed Operators
OpenShift Data Foundation Storage System ocs-external-storagecluster-storagesystemResources。验证 StorageCluster的 Status 是否为Ready,并且其旁边都有一个绿色勾号标记。 为 RBD 和 CephFS 卷启用读取关联性,以便从最接近的数据中心提供。
在 Primary 受管集群上,标记所有节点。
$ oc label nodes --all metro-dr.openshift-storage.topology.io/datacenter=DC1执行以下命令启用读取关联性:
$ oc patch storageclusters.ocs.openshift.io -n openshift-storage ocs-external-storagecluster -p '{"spec":{"csi":{"readAffinity":{"enabled":true,"crushLocationLabels":["metro-dr.openshift-storage.topology.io/datacenter"]}}}}' --type=merge$ oc delete po -n openshift-storage -l 'app in (csi-cephfsplugin,csi-rbdplugin)'在二级受管集群中,标记所有节点:
$ oc label nodes --all metro-dr.openshift-storage.topology.io/datacenter=DC2执行以下命令启用读取关联性:
$ oc patch storageclusters.ocs.openshift.io -n openshift-storage ocs-external-storagecluster -p '{"spec":{"csi":{"readAffinity":{"enabled":true,"crushLocationLabels":["metro-dr.openshift-storage.topology.io/datacenter"]}}}}' --type=merge$ oc delete po -n openshift-storage -l 'app in (csi-cephfsplugin,csi-rbdplugin)'