第 6 章 配置镜像服务(glance)


Image 服务(glance)为磁盘和服务器镜像提供发现、注册和交付服务。它提供复制或存储服务器镜像快照的功能。您可以将存储的镜像用作模板,比安装服务器操作系统和单独配置服务,快速、一致地编写新的服务器。

您可以为镜像服务配置以下后端(存储):

  • 使用 Red Hat Ceph Storage 时,RADOS 块设备(RBD)是默认后端。有关更多信息,请参阅配置 control plane 以使用 Red Hat Ceph Storage 集群
  • Block Storage (cinder)。
  • Object Storage (swift)。
  • S3.
  • NFS.
  • RBD 多存储.您可以将多个存储与分布式边缘架构一起使用,以便您可以在每个边缘站点拥有一个镜像池。

先决条件

  • 在工作站上安装了 oc 命令行工具。
  • 以具有 cluster-admin 权限的用户身份登录到可访问 RHOSO 控制平面的工作站。

6.1. 为镜像服务配置块存储后端

您可以使用 Block Storage 服务(cinder)作为存储后端来配置 Image 服务(glance)。

先决条件

流程

  1. 打开 OpenStackControlPlane CR 文件 openstack_control_plane.yaml,并在 glance 模板中添加以下参数,将块存储服务配置为后端:

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackControlPlane
    spec:
      ...
      glance:
        template:
          glanceAPIs:
            default:
              replicas: 3 # Configure back end; set to 3 when deploying service
          ...
          customServiceConfig: |
            [DEFAULT]
            enabled_backends = default_backend:cinder
            [glance_store]
            default_backend = default_backend
            [default_backend]
            description = Default cinder backend
            cinder_store_auth_address = {{ .KeystoneInternalURL }}
            cinder_store_user_name = {{ .ServiceUser }}
            cinder_store_password = {{ .ServicePassword }}
            cinder_store_project_name = service
            cinder_catalog_info = volumev3::internalURL
            cinder_use_multipath = true
    ...
    Copy to Clipboard Toggle word wrap
    • replicas 设置为 3 以实现跨 API 的高可用性。
  2. 更新 control plane:

    $ oc apply -f openstack_control_plane.yaml -n openstack
    Copy to Clipboard Toggle word wrap
  3. 等待 RHOCP 创建与 OpenStackControlPlane CR 相关的资源。运行以下命令来检查状态:

    $ oc get openstackcontrolplane -n openstack
    Copy to Clipboard Toggle word wrap

    当状态为 "Setup complete" 时,会创建 OpenStackControlPlane 资源。

    提示

    -w 选项附加到 get 命令的末尾,以跟踪部署进度。

6.1.1. 启用从卷支持的镜像创建多个实例或卷

将块存储服务(cinder)用作镜像服务(glance)的后端时,每个镜像都以卷(镜像卷)存储在 glance 用户拥有的块存储服务项目中。

当用户要从卷支持的镜像创建多个实例或卷时,镜像服务主机必须附加到镜像卷,以便多次复制数据。但是,这会导致性能问题,有些实例或卷不会被创建,因为默认情况下,块存储卷无法多次附加到同一主机。但是,大多数块存储后端支持卷 multi-attach 属性,这使得卷能够多次附加到同一主机。因此,您可以通过为启用此多附件属性的 Image 服务后端创建 Block Storage 卷类型来防止这些性能问题,并将镜像服务配置为使用这个 multi-attach 卷类型。

注意

默认情况下,只有 Block Storage 项目管理员可以创建卷类型。

流程

  1. 从您的工作站访问 OpenStackClient pod 的远程 shell:

    $ oc rsh -n openstack openstackclient
    Copy to Clipboard Toggle word wrap
  2. 为启用 multi-attach 属性的镜像服务后端创建块存储卷类型,如下所示:

    $ openstack volume type create glance-multiattach
    $ openstack volume type set --property multiattach="<is> True"  glance-multiattach
    Copy to Clipboard Toggle word wrap

    如果您没有为此卷类型指定后端,则块存储调度程序服务决定在创建每个镜像卷时要使用的后端,因此这些卷可能会保存在不同的后端。您可以通过在这个卷类型中添加 volume_backend_name 属性来指定后端的名称。您可能需要要求您的块存储管理员为 multi-attach 卷类型提供正确的 volume_backend_name。在本例中,我们使用 iscsi 作为后端名称。

    $ openstack volume type set glance-multiattach --property volume_backend_name=iscsi
    Copy to Clipboard Toggle word wrap
  3. 退出 openstackclient pod:

    $ exit
    Copy to Clipboard Toggle word wrap
  4. 打开 OpenStackControlPlane CR 文件,openstack_control_plane.yaml。在 glance 模板中,将以下参数添加到 customServiceConfig 的末尾,[default_backend] 部分将镜像服务配置为使用块存储 multi-attach 卷类型:

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackControlPlane
    spec:
      ...
      glance:
        template:
          ...
          customServiceConfig: |
          ...
          [default_backend]
          ...
            cinder_volume_type = glance-multiattach
    ...
    Copy to Clipboard Toggle word wrap
  5. 更新 control plane:

    $ oc apply -f openstack_control_plane.yaml -n openstack
    Copy to Clipboard Toggle word wrap
  6. 等待 RHOCP 创建与 OpenStackControlPlane CR 相关的资源。运行以下命令来检查状态:

    $ oc get openstackcontrolplane -n openstack
    Copy to Clipboard Toggle word wrap

    当状态为 "Setup complete" 时,会创建 OpenStackControlPlane 资源。

    提示

    -w 选项附加到 get 命令的末尾,以跟踪部署进度。

6.1.2. 用于配置块存储后端的参数

您可以在 OpenStackControlPlane CR 文件中的 glance 模板的 customServiceConfig 的末尾添加以下参数。

Expand
表 6.1. 镜像服务的块存储后端参数
parameter = 默认值类型使用的描述

cinder_use_multipath = False

布尔值

当部署支持多路径时,设置为 True

cinder_enforce_multipath = False

布尔值

设置为 True,以在多路径没有运行时中止卷附加以进行镜像传输。

cinder_mount_point_base = /var/lib/glance/mnt

字符串值

指定代表挂载点的绝对路径的字符串,即镜像服务挂载 NFS 共享的目录。

注意

这个参数仅在为镜像服务使用 NFS Block Storage 后端时才适用。

cinder_do_extend_attached = False

布尔值

当镜像为 > 1 GB 时,设置为 True,以优化为每个镜像创建所需卷大小的块存储进程。

块存储服务会创建初始 1 GB 卷,并以 1 GB 递增扩展卷大小,直到它包含整个镜像的数据。当此参数没有被添加或设置为 False 时,扩展卷的增量进程会非常耗时,这需要卷随后被分离,如果它仍然小于镜像大小,则扩展为 1 GB,然后重新附加。通过将此参数设为 True,此进程通过在卷附加时执行这些连续 1 GB 卷扩展来优化。

注意

这个参数需要您的 Block Storage 后端来支持附加的(使用)卷的扩展。有关支持哪些功能的详情,请查看您的后端驱动程序文档。

cinder_volume_type = __DEFAULT__

字符串值

指定可用于为镜像创建卷而优化的块存储卷类型名称。例如,您可以创建一个卷类型,允许从卷支持的镜像创建多个实例或卷。如需更多信息,请参阅创建多重附加卷类型

如果没有使用此参数,则使用默认块存储卷类型创建卷。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat