5.3. 集成外部 Ceph
您可以部署分布式计算节点(DCN)架构的中心位置,并集成预先部署的 Red Hat Ceph Storage 解决方案。当您在没有 director 的情况下部署 Red Hat Ceph Storage 时,director 没有环境中 Red Hat Ceph 存储的信息。您无法运行 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 与 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)可用区和 Block Storage (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/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
文件中显示的参数的更多信息,请参阅 创建自定义环境文件。