7.5. 在边缘使用预安装的 Red Hat Ceph Storage 集群
您可以将 Red Hat OpenStack Platform 配置为使用已存在的 Ceph 集群。这称为外部 Ceph 部署。
先决条件
- 您必须有一个预安装的 Ceph 集群,它与 DCN 站点本地,以便不会超过延迟要求。
流程
在 Ceph 集群中创建以下池。如果要在中央位置部署,请包含
backups
和metrics
池:[root@ceph ~]# ceph osd pool create volumes <_PGnum_> [root@ceph ~]# ceph osd pool create images <_PGnum_> [root@ceph ~]# ceph osd pool create vms <_PGnum_> [root@ceph ~]# ceph osd pool create backups <_PGnum_> [root@ceph ~]# ceph osd pool create metrics <_PGnum_>
将 <_PGnum_> 替换为放置组数量。您可以使用 每个池的 Ceph Placement Groups (PG)计算器 来确定合适的值。
在 Ceph 中创建 OpenStack 客户端用户,以提供 Red Hat OpenStack Platform 环境对适当池的访问权限:
ceph auth add client.openstack mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rwx pool=images'
保存返回的 Ceph 客户端密钥。在配置 undercloud 时,使用此键作为
CephClientKey
参数的值。注意如果您在中央位置运行此命令,并计划使用 Cinder 备份或遥测服务,请在命令中添加 allow rwx pool=backups,在命令中允许 pool=metrics。
保存 Ceph Storage 集群的文件系统 ID。Ceph 配置文件的
[global]
部分中的fsid
参数的值是文件系统 ID:[global] fsid = 4b5c8c0a-ff60-454b-a1b4-9747aa737d19 ...
在配置 undercloud 时,使用这个值作为
CephClusterFSID
参数的值。在 undercloud 上,创建一个环境文件来配置节点以连接到非受管 Ceph 集群。使用可识别的命名惯例,如 ceph-external-<SITE>.yaml,其中 SITE 是部署的位置,如 ceph-external-central.yaml、ceph-external-dcn1.yaml 等。
parameter_defaults: # The cluster FSID CephClusterFSID: '4b5c8c0a-ff60-454b-a1b4-9747aa737d19' # The CephX user auth key CephClientKey: 'AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ==' # The list of IPs or hostnames of the Ceph monitors CephExternalMonHost: '172.16.1.7, 172.16.1.8, 172.16.1.9' # The desired name of the generated key and conf files CephClusterName: dcn1
- 将之前保存的值用于 CephClusterFSID 和 CephClientKey 参数。
- 使用 Ceph 监视器中以逗号分隔的 ip 地址列表,作为 CephExternalMonHost 参数的值。
-
您必须在边缘站点间为
CephClusterName
参数选择一个唯一值。重新使用名称将导致配置文件被覆盖。
如果您使用 Red Hat OpenStack Platform director 部署 Red Hat Ceph Storage,您可以将 ceph 配置导出到环境文件
central_ceph_external.yaml
。此环境文件将 DCN 站点连接到中央 hub Ceph 集群,因此信息特定于上一步中部署的 Ceph 集群:sudo -E openstack overcloud export ceph \ --stack central \ --output-file /home/stack/dcn-common/central_ceph_external.yaml
如果中央位置从外部部署 Red Hat Ceph Storage,则无法使用
openstack overcloud export ceph
命令生成central_ceph_external.yaml
文件。您必须手动创建 central_ceph_external.yaml 文件:parameter_defaults: CephExternalMultiConfig: - cluster: "central" fsid: "3161a3b4-e5ff-42a0-9f53-860403b29a33" external_cluster_mon_ips: "172.16.11.84, 172.16.11.87, 172.16.11.92" keys: - name: "client.openstack" caps: mgr: "allow *" mon: "profile rbd" osd: "profile rbd pool=vms, profile rbd pool=volumes, profile rbd pool=images" key: "AQD29WteAAAAABAAphgOjFD7nyjdYe8Lz0mQ5Q==" mode: "0600" dashboard_enabled: false ceph_conf_overrides: client: keyring: /etc/ceph/central.client.openstack.keyring
创建一个环境文件,其中包含与每个站点的类似详细信息,其具有非受管 Red Hat Ceph Storage 集群用于中央位置。
openstack overcloud export ceph
命令不适用于带有非受管 Red Hat Ceph Storage 集群的站点。当您更新中央位置时,此文件将允许存储集群位于边缘站点的中央位置作为二级位置parameter_defaults: CephExternalMultiConfig: cluster: dcn1 … cluster: dcn2 …
在部署 overcloud 时,使用 external-ceph.yaml、ceph-external-<SITE>.yaml 和 central_ceph_external.yaml 环境文件:
openstack overcloud deploy \ --stack dcn1 \ --templates /usr/share/openstack-tripleo-heat-templates/ \ -r ~/dcn1/roles_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/dcn-storage.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/nova-az-config.yaml \ -e /home/stack/dnc1/ceph-external-dcn1.yaml \ .... -e /home/stack/overcloud-deploy/central/central-export.yaml \ -e /home/stack/dcn-common/central_ceph_external.yaml \ -e /home/stack/dcn1/dcn_ceph_keys.yaml \ -e /home/stack/dcn1/role-counts.yaml \ -e /home/stack/dcn1/ceph.yaml \ -e /home/stack/dcn1/site-name.yaml \ -e /home/stack/dcn1/tuning.yaml \ -e /home/stack/dcn1/glance.yaml
- 部署所有边缘位置后重新部署中央位置。