6.5. 配置 NFS 后端
您可以使用 NFS 作为存储后端来配置 Image 服务(glance)。NFS 不对镜像服务是原生的。当您挂载用于镜像服务的 NFS 共享时,镜像服务会将数据写入文件系统,但不会验证 NFS 共享的可用性。
如果您使用 NFS 作为镜像服务的后端,请参阅以下最佳实践来降低风险:
- 使用可靠的生产级 NFS 后端。
-
确保网络可供部署镜像服务的 OpenShift (RHOSO)控制平面上的 Red Hat OpenStack Services 使用,并且镜像服务具有指向网络的
NetworkAttachmentDefinition自定义资源(CR)。此配置可确保镜像服务 pod 可以访问 NFS 服务器。 - 设置导出权限。写入权限必须存在于用作存储的共享文件系统中。
- 限制:
在 OpenShift 上的 Red Hat OpenStack Services (RHOSO)中,您无法在 pod 规格中设置客户端 NFS 挂载选项。您可以使用以下方法之一设置 NFS 挂载选项:
- 设置服务器端挂载选项。
-
使用
/etc/nfsmount.conf。 - 使用带有挂载选项的 PersistentVolume 挂载 NFS 卷。
流程
打开
OpenStackControlPlaneCR 文件openstack_control_plane.yaml,并在spec部分添加extraMounts参数,以添加 NFS 共享的导出路径和 IP 地址。该路径映射到/var/lib/glance/images,其中镜像服务 API (glanceAPI)存储并检索镜像:apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane metadata: name: openstack ... spec: extraMounts: - extraVol: - extraVolType: Nfs mounts: - mountPath: /var/lib/glance/images name: nfs propagation: - Glance volumes: - name: nfs nfs: path: <nfs_export_path> server: <nfs_ip_address> name: r1 region: r1 ...-
将
<nfs_export_path> 替换为 NFS 共享的导出路径。 -
将
<nfs_ip_address> 替换为 NFS 共享的 IP 地址。此 IP 地址必须是覆盖网络的一部分,该网络可由镜像服务访问。
-
将
在
glance模板中添加以下参数,将 NFS 配置为后端:... spec: extraMounts: ... glance: template: glanceAPIs: default: type: single replicas: 3 # Configure back end; set to 3 when deploying service ... customServiceConfig: | [DEFAULT] enabled_backends = <backend_name>:file [glance_store] default_backend = <backend_name> [<backend_name>] filesystem_store_datadir = /var/lib/glance/images databaseInstance: openstack ...-
将
replicas设置为3以实现跨 API 的高可用性。 将
<backend_name> 替换为默认后端的名称。注意配置 NFS 后端时,您必须将
类型设置为单个。默认情况下,镜像服务具有外部 API 服务的分割部署类型,该服务可通过 Identity 服务(keystone)的公共和管理员端点访问,该服务可以通过 Identity 服务的内部端点访问。对于文件后端,分割部署类型无效,因为不同的 pod 访问同一文件共享。
-
将
更新 control plane:
$ oc apply -f openstack_control_plane.yaml -n openstack等待 RHOCP 创建与
OpenStackControlPlaneCR 相关的资源。运行以下命令来检查状态:$ oc get openstackcontrolplane -n openstack当状态为 "Setup complete" 时,会创建
OpenStackControlPlane资源。提示将
-w选项附加到get命令的末尾,以跟踪部署进度。