第 7 章 在边缘部署存储
您可以使用 Red Hat OpenStack Platform director 扩展分布式计算节点部署,以使用 Red Hat OpenStack Platform 和 Ceph Storage 的优点在边缘包含分布式镜像和持久性存储。
7.1. 使用存储部署边缘站点
部署中心站点后,构建边缘站点并确保每个边缘位置主要连接到自己的存储后端,以及中央位置的存储后端。
spine 和 leaf network configuration 应当包含在这一配置中,以及 ceph 需要的 storage
和 storage_mgmt
网络。如需更多信息,请参阅 Spine leaf 网络。
您必须在中央位置和存储网络之间具有连接,以便您可以在站点之间移动 glance 镜像。
确保中央位置可以在每个边缘站点与 mons
和 osds
通信。但是,您应该以站点位置边界终止存储管理网络,因为存储管理网络用于 OSD 重新平衡。
流程
从中央
堆栈导出堆栈信息。在运行此命令前,您必须部署中央
堆栈:openstack overcloud export \ --config-download-dir /var/lib/mistral/central/ \ --stack central \ --output-file ~/dcn-common/central-export.yaml
注意config-download-dir
值默认为/var/lib/mistral/<stack>/
。创建
central_ceph_external.yaml
文件。此环境文件将 DCN 站点连接到中央 hub Ceph 集群,因此信息特定于前面步骤中部署的 Ceph 集群。sudo -E openstack overcloud export ceph \ --stack central \ --config-download-dir /var/lib/mistral \ --output-file ~/dcn-common/central_ceph_external.yaml
当在没有 Red Hat OpenStack Platform director 的情况下部署 Ceph 时,无法运行
openstack overcloud export ceph
命令。手动创建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
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
文件中显示的参数的更多信息,请参阅 创建自定义环境文件。
为镜像服务配置覆盖创建
~/dcn0/glance.yaml
文件:parameter_defaults: GlanceEnabledImportMethods: web-download,copy-image GlanceBackend: rbd GlanceStoreDescription: 'dcn0 rbd glance store' GlanceBackendID: dcn0 GlanceMultistoreConfig: central: GlanceBackend: rbd GlanceStoreDescription: 'central rbd glance store' CephClientUserName: 'openstack' CephClusterName: central
使用与可用硬件相关的配置参数配置
ceph.yaml
文件。cat > /home/stack/dcn0/ceph.yaml << EOF parameter_defaults: CephClusterName: dcn0 CephAnsibleDisksConfig: osd_scenario: lvm osd_objectstore: bluestore devices: - /dev/sda - /dev/sdb CephPoolDefaultSize: 3 CephPoolDefaultPgNum: 128 EOF
有关更多信息,请参阅 映射 Ceph Storage 节点磁盘布局。
使用包含根据您的环境要求调整的以下参数的文件实现系统性能优化:
cat > /home/stack/dcn0/tuning.yaml << EOF parameter_defaults: CephAnsibleExtraConfig: is_hci: true CephConfigOverrides: osd_recovery_op_priority: 3 osd_recovery_max_active: 3 osd_max_backfills: 1 ## Set relative to your hardware: # DistributedComputeHCIParameters: # NovaReservedHostMemory: 181000 # DistributedComputeHCIExtraConfig: # nova::cpu_allocation_ratio: 8.2 EOF
-
有关为
CephAnsibleExtraConfig
设置值的更多信息,请参阅设置 ceph-ansible 组变量。 -
有关为
CephConfigOverrides
设置值的更多信息,请参阅自定义 Ceph Storage 集群。
-
有关为
在
site-name.yaml
环境文件中为站点配置命名约定。Nova 可用区和 Cinder 存储可用区必须匹配。部署带有存储的边缘站点时,包括CinderVolumeCluster
参数。当 cinder-volume 部署为 active/active (在边缘站点需要)时,使用此参数。作为最佳实践,将 Cinder 集群名称设置为与可用区匹配:cat > /home/stack/central/site-name.yaml << EOF parameter_defaults: ... NovaComputeAvailabilityZone: dcn0 NovaCrossAZAttach: false CinderStorageAvailabilityZone: dcn0 CinderVolumeCluster: dcn0
生成用于 dcn0 部署的
roles.yaml
文件,例如:openstack overcloud roles generate DistributedComputeHCI DistributedComputeHCIScaleOut -o ~/dcn0/roles_data.yaml
通过为每个角色创建
~/dcn0/roles-counts.yaml
文件来设置每个角色中的数量系统。在使用超融合基础架构(HCI)时,您必须将三个节点分配给 DistributedComputeHCICount 角色,以满足 Ceph Mon 和
GlanceApiEdge
服务的要求。parameter_defaults: ControllerCount: 0 ComputeCount: 0 DistributedComputeHCICount: 3 DistributedComputeHCIScaleOutCount: 1 # Optional DistributedComputeScaleOutCount: 1 # Optional
检索边缘站点的容器镜像:
sudo openstack tripleo container image prepare \ --environment-directory dcn0 \ -r ~/dcn0/roles_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ ... -e /home/stack/dcn-common/central-export.yaml \ -e /home/stack/containers-prepare-parameter.yaml \ --output-env-file ~/dcn0/dcn0-images-env.yaml
注意您必须在
openstack tripleo container image prepare
命令中包含用于部署的所有环境文件。部署边缘站点:
openstack overcloud deploy \ --stack dcn0 \ --templates /usr/share/openstack-tripleo-heat-templates/ \ -r ~/dcn0/roles_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/dcn-hci.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/nova-az-config.yaml \ -e ~/dnc0/dcn0-images-env.yaml \ .... -e ~/dcn-common/central-export.yaml \ -e ~/dcn-common/central_ceph_external.yaml \ -e ~/dcn0/dcn_ceph_keys.yaml \ -e ~/dcn0/role-counts.yaml \ -e ~/dcn0/ceph.yaml \ -e ~/dcn0/site-name.yaml \ -e ~/dcn0/tuning.yaml \ -e ~/dcn0/glance.yaml
注意您必须在
openstack overcloud deploy
命令中包含用于配置网络配置的 heat 模板。为边缘架构设计需要 spine 和 leaf 网络。如需了解更多详细信息,请参阅 Spine Leaf Networking。