2.7. 启用镜像转换

您可以通过启用 GlanceImageImportPlugins 参数,将 QCOW2 镜像上传到镜像服务(glance)。然后,您可以将 QCOW2 镜像转换为 RAW 格式。

注意

当使用 Red Hat Ceph Storage RADOS 块设备(RBD)来存储镜像和引导 Nova 实例时,镜像转换会自动启用。

要启用镜像转换,请创建一个包含以下参数值的环境文件。在 openstack overcloud deploy 命令中使用 -e 选项的新环境文件:

parameter_defaults:
  GlanceImageImportPlugins:'image_conversion'

使用镜像服务命令行客户端进行镜像管理。

2.7.1. 将镜像转换为 RAW 格式

Red Hat Ceph Storage 可以存储,但不支持使用 QCOW2 镜像来托管虚拟机(VM)磁盘。

当您上传 QCOW2 镜像并从中创建虚拟机时,计算节点会下载镜像,将镜像转换为 RAW,然后将其上传到 Ceph,然后使用它。这个过程会影响创建虚拟机所需的时间,特别是在并行虚拟机创建过程中。

例如,当您同时创建多个虚拟机时,上传转换的镜像到 Ceph 集群可能会影响已在运行的工作负载。上传过程可能会使 IOPS 的工作负载以及存储响应速度导致。

要在 Ceph 中更有效地引导虚拟机(临时后端或从卷引导),glance 镜像格式必须是 RAW。

流程

  1. 将镜像转换为 RAW 可能会产生大于原始 QCOW2 镜像文件的镜像。在转换前运行以下命令,以确定最终 RAW 镜像大小:

    qemu-img info <image>.qcow2
  2. 将镜像从 QCOW2 转换为 RAW 格式:

    qemu-img convert -p -f qcow2 -O raw <original qcow2 image>.qcow2 <new raw image>.raw

2.7.1.1. 在 Image 服务(glance)中配置磁盘格式.

您可以使用 GlanceDiskFormats 参数配置镜像服务(glance)以启用或禁用磁盘格式。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 提供 undercloud 凭证文件:

    $ source ~/stackrc
  3. 在环境文件中包含 GlanceDiskFormats 参数,如 glance_disk_formats.yaml

    parameter_defaults:
      GlanceDiskFormats:
        - <disk_format>
    • 例如,使用以下配置只启用 RAW 和 ISO 磁盘格式:

      parameter_defaults:
        GlanceDiskFormats:
        - raw
        - iso
    • 使用以下示例配置拒绝 QCOW2 磁盘镜像:

      parameter_defaults:
        GlanceDiskFormats:
        - raw
        - iso
        - aki
        - ari
        - ami
  4. openstack overcloud deploy 命令中包含新配置的环境文件以及与您环境相关的任何其他环境文件:

    $ openstack overcloud deploy --templates \
      -e <overcloud_environment_files> \
      -e <new_environment_file> \
      …
    • <overcloud_environment_files > 替换为属于部署的环境文件列表。
    • <new_environment_file > 替换为包含新配置的环境文件。

有关 RHOSP 中可用磁盘格式的更多信息,请参阅 镜像配置参数

2.7.2. 以 RAW 格式存储镜像

启用 GlanceImageImportPlugins 参数后,运行以下命令以 RAW 格式存储之前创建的镜像:

$ glance image-create-via-import \
    --disk-format qcow2 \
    --container-format bare \
    --name NAME \
    --visibility public \
    --import-method web-download \
    --uri http://server/image.qcow2
  • 对于 --name,将 NAME 替换为映像的名称;这是 Glance image-list 中将显示的名称
  • 对于 --uri,将 http://server/image.qcow2 替换为 QCOW2 镜像的位置和文件名。
注意

此命令示例创建镜像记录并使用 web-download 方法导入它。glance-api 在导入过程中从 --uri 位置下载镜像。如果 web-download 不可用,glanceclient 无法自动下载镜像数据。运行 glance import-info 命令来列出可用的镜像导入方法。