6.3. 直接从 Red Hat Ceph RADOS Block Device (RBD)配置镜像下载
当镜像服务(glance)将 Red Hat Ceph RADOS Block Device (RBD)用作后端,并且计算服务(nova)使用基于文件的本地临时存储时,您可以将计算服务配置为直接从 RBD 镜像存储库下载镜像,而无需使用镜像服务 API。这可减少在实例引导时将镜像下载到 Compute 节点镜像缓存所需的时间,从而缩短实例启动时间。
先决条件
- 镜像服务后端是 Red Hat Ceph RADOS 块设备(RBD)。
- 计算服务将基于文件的本地临时存储用于镜像缓存和实例磁盘。
-
oc命令行工具已安装在您的工作站上。 -
以具有
cluster-admin权限的用户身份登录 Red Hat OpenStack Services on OpenShift (RHOSO)。 -
您已选择了
OpenStackDataPlaneNodeSetCR,用于定义您要直接从 RBD 配置镜像下载的节点。有关创建OpenStackDataPlaneNodeSetCR 的更多信息,请参阅 Deploying Red Hat OpenStack Services on OpenShift 指南中的使用预置备节点创建 OpenStackDataPlaneNodeSet CR。
流程
创建或更新名为
nova-extra-config的ConfigMapCR,并设置 [glance] 下的参数的值,以指定镜像服务 RBD 后端,以及计算服务等待连接到镜像服务 RBD 后端的最长时间,以秒为单位:apiVersion: v1 kind: ConfigMap metadata: name: nova-extra-config namespace: openstack data: 33-nova-image-rbd.conf: | [glance] enable_rbd_download=True rbd_user=openstack rbd_pool=images rbd_ceph_conf=/etc/ceph/ceph.conf rbd_connect_timeout=5有关创建
ConfigMap对象的更多信息,请参阅 在节点中创建和使用 配置映射 。创建新的
OpenStackDataPlaneDeploymentCR,以在 data plane 节点上配置服务并部署数据平面,并将它保存到工作站上名为compute_image_rbd_deploy.yaml的文件中:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: compute-image-rbd在
compute_image_rbd_deploy.yamlCR 中,指定nodeSets使其包含您要部署的所有OpenStackDataPlaneNodeSetCR。确保包含您选择的 OpenStackDataPlaneNodeSet CR,它定义了您要直接从 RBD 配置镜像下载的节点。警告您无法在节点集合中重新配置节点的子集。如果需要这样做,您必须缩减节点设置并从之前删除的节点创建新节点集。
警告如果您的部署有多个节点集,对
nova-extra-config.yamlConfigMap的更改可能会直接影响多个节点集,具体取决于节点集和DataPlaneServices的配置方式。要检查节点集是否使用nova-extra-configConfigMap,因此会受到重新配置的影响,请完成以下步骤:-
检查节点集的服务列表,并查找指向 nova 的
DataPlaneService的名称。 确保
DataPlaneService的edpmServiceType字段的值设置为nova。如果
DataPlaneService的dataSources列表包含名为nova-extra-config的configMapRef,则此节点会使用此ConfigMap,因此会受到此ConfigMap中的配置更改的影响。如果某些受影响的节点集合不应重新配置,您必须创建一个新的DataPlaneService,指向这些节点集的独立ConfigMap,并在所需的节点集中使用该自定义服务。
apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: compute-image-rbd spec: nodeSets: - openstack-edpm - compute-image-rbd - ... - <nodeSet_name>-
将
<nodeSet_name> 替换为您要包含在 data plane 部署中的 'OpenStackDataPlaneNodeSet'CR 的名称。
-
检查节点集的服务列表,并查找指向 nova 的
-
保存
compute_image_rbd_deploy.yaml部署文件。 部署数据平面:
$ oc create -f compute_image_rbd_deploy.yaml验证 data plane 是否已部署:
$ oc get openstackdataplanenodeset NAME STATUS MESSAGE compute-image-rbd True Deployed访问
openstackclient的远程 shell,并验证部署的 Compute 节点是否在 control plane 上可见:$ oc rsh -n openstack openstackclient $ openstack hypervisor list