5.3. 集成外部 Ceph
您可以部署分布式计算节点(DCN)架构的中心位置,并集成预部署的 Red Hat Ceph Storage 解决方案。当您在没有 director 的情况下部署 Red Hat Ceph Storage 时,director 没有在您的环境中有关 Red Hat Ceph Storage 的信息。您无法运行 openstack overcloud export ceph 命令
,必须手动创建 central_ceph_external.yaml
。
先决条件
-
您必须创建特定于环境的
network_data.yaml
和vip_data.yaml
文件。您可以在/usr/share/openstack-tripleo-heat-templates/network-data-samples
中找到示例文件。 -
您必须创建一个特定于您的环境的
overcloud-baremetal-deploy.yaml
文件。有关更多信息,请参阅为 overcloud 置备裸机节点。 - 位于中央位置和每个可用区的 Ceph 集群的硬件,或者在需要存储服务的每个地理位置。
以下是部署两个或多个堆栈的示例:
-
一个堆栈位于中央位置,称为
central
。 -
一个堆栈位于名为
dcn0
的边缘站点。 -
部署的其他堆栈与
dcn0
类似,如dcn1、
dcn2
等。
流程
您可以按照与现有 Red Hat Ceph Storage 集群集成中的内容,安装中央位置,使其与预先存在的 Red Hat Ceph Storage 解决方案集成。将 Red Hat Ceph Storage 与 DCN 部署的中央站点集成没有特殊要求,但在部署 overcloud 前,您仍需要完成 DCN 具体步骤:
- 以 stack 用户身份登录 undercloud。
查找 stackrc 文件:
[stack@director ~]$ source ~/stackrc
生成环境文件 ~/central/central-images-env.yaml
sudo openstack tripleo container image prepare \ -e containers.yaml \ --output-env-file ~/central/central-images-env.yaml
在主目录中,为您计划部署的每个堆栈创建目录。使用它来分隔针对其相应站点设计的模板。将中央位置的
network_data.yaml
、vip_data.yaml
和overcloud-baremetal-deploy.yaml
模板移到/home/stack/central/
。mkdir /home/stack/central mkdir /home/stack/dcn0 mkdir /home/stack/dcn1 mv network_data.yaml /home/stack/central mv vip_data.yaml /home/stack/central mv overcloud-baremetal-deploy.yaml /home/stack/central
为 overcloud 置备网络。此命令为 overcloud 网络使用一个定义文件作为输入。您必须使用命令中的输出文件来部署 overcloud:
openstack overcloud network provision \ --output /home/stack/central/overcloud-networks-deployed.yaml \ /home/stack/central/network_data.yaml
为 overcloud 置备虚拟 IP。此命令使用虚拟 IP 的定义文件作为输入。您必须使用命令中的输出文件来部署 overcloud:
openstack overcloud network vip provision \ --stack central \ --output /home/stack/central/overcloud-vip-deployed.yaml \ /home/stack/central/vip_data.yaml
置备裸机实例。该命令为裸机节点使用一个定义文件作为输入。您必须使用命令中的输出文件来部署 overcloud:
openstack overcloud node provision \ --stack central \ --network-config \ -o /home/stack/central/deployed_metal.yaml \ /home/stack/central/overcloud-baremetal-deploy.yaml
在
site-name.yaml
环境文件中为站点配置命名约定。Compute (nova)可用区和块存储(cinder)可用区必须匹配:cat > /home/stack/central/site-name.yaml << EOF parameter_defaults: NovaComputeAvailabilityZone: central ControllerExtraConfig: nova::availability_zone::default_schedule_zone: central NovaCrossAZAttach: false CinderStorageAvailabilityZone: central GlanceBackendID: central EOF
使用类似如下的内容配置
external-ceph.yaml
模板:parameter_defaults: CinderEnableIscsiBackend: false CinderEnableRbdBackend: true CinderEnableNfsBackend: false NovaEnableRbdBackend: true GlanceBackend: rbd GlanceBackendID: central GlanceEnabledImportMethods: web-download,copy-image GlanceStoreDescription: 'central rbd glance store' CinderRbdPoolName: "openstack-cinder" NovaRbdPoolName: "openstack-nova" GlanceRbdPoolName: "openstack-images" CinderBackupRbdPoolName: "automation-backups" GnocchiRbdPoolName: "automation-metrics" CephClusterFSID: 38dd387e-837a-437c-891c-7fc69e17a3c CephClusterName: central CephExternalMonHost: 10.9.0.1,10.9.0.2,10.9.0.3 CephClientKey: "AQAKtECeLemfiBBdQp7cjNYQRGW9y8GnhhFZg==" CephClientUserName: "openstack
部署中央位置:
openstack overcloud deploy \ --stack central \ --templates /usr/share/openstack-tripleo-heat-templates/ \ -n /home/stack/central/network-data.yaml \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/podman.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/nova-az-config.yaml \ -e /home/stack/central/overcloud-networks-deployed.yaml \ -e /home/stack/central/overcloud-vip-deployed.yaml \ -e /home/stack/central/deployed_metal.yaml \ -e /home/stack/central/external-ceph.yaml \ -e /home/stack/central/overcloud-networks-deployed.yaml \ -e /home/stack/central/central_roles.yaml
为中央位置部署 overcloud 后,导出并放置在
/home/stack/overcloud-deploy
目录中的额外堆栈部署所需的数据。确保存在这个 control-plane-export.yaml 文件:stat ~/overcloud-deploy/control-plane/control-plane-export.yaml
创建名为
central_ceph_external.yaml
的环境文件,其中包含有关 Red Hat Ceph Storage 部署的详细信息。此文件可以传递给边缘站点的额外堆栈部署。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
fsid
参数是 Ceph Storage 集群的文件系统 ID:这个值在[global]
部分的集群配置文件中指定:[global] fsid = 4b5c8c0a-ff60-454b-a1b4-9747aa737d19 ...
key
参数是 openstack 帐户的 ceph 客户端密钥:[root@ceph ~]# ceph auth list ... [client.openstack] key = AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw== caps mgr = "allow *" caps mon = "profile rbd" caps osd = "profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups, profile rbd pool=metrics" ...
有关示例
central_ceph_external.yaml
文件中显示的参数的更多信息,请参阅 创建自定义环境文件。
其他资源