1.2. 管理镜像
Image 服务(glance)为磁盘和服务器镜像提供发现、注册和交付服务。它提供了复制服务器镜像或快照的功能,并立即存储它。与安装服务器操作系统和单独配置服务相比,您可以使用存储的镜像作为模板来快速、一致地委托新的服务器。
1.2.1. 创建镜像
使用 Red Hat Enterprise Linux 7 ISO 文件、Red Hat Enterprise Linux 6 ISO 文件或 Windows ISO 文件,以 QCOW2 格式手动创建 Red Hat OpenStack Platform(RHOSP)兼容镜像。
1.2.1.1. 将 KVM 客户机镜像与 Red Hat OpenStack Platform 搭配使用
您可以使用可用的 RHEL KVM 客户机 QCOW2 镜像:
这些镜像使用 cloud-init
配置,且必须利用 ec2 兼容的元数据服务来置备 SSH 密钥才能正常工作。
未就绪 Windows KVM 客户机 QCOW2 镜像不可用。
对于 KVM 客户机镜像:
-
镜像中的
root
帐户已被禁用,但sudo
访问权限被授予一个名为cloud-user
的特殊用户。 -
没有为此镜像设置
root
密码。
通过将 !!
放入第二个字段,将 root
密码锁定在 /etc/shadow
中。
对于 RHOSP 实例,可从 RHOSP 仪表板或命令行生成 ssh 密钥对,并使用该组合以 root 身份对实例执行 SSH 公共身份验证。
启动实例时,此公钥注入到其中。然后,您可以使用您在创建密钥对时下载的私钥进行身份验证。
如果要创建自定义 Red Hat Enterprise Linux 或 Windows 镜像,请参阅创建 Red Hat Enterprise Linux 7 镜像、创建 Red Hat Enterprise Linux 6 镜像 或 第 1.2.1.2.3 节 “创建 Windows 镜像”。
1.2.1.2. 创建自定义 Red Hat Enterprise Linux 或 Windows 镜像
先决条件
- 创建镜像的 Linux 主机机器。这可以是您可以安装并运行 Linux 软件包的任何机器,但 undercloud 或 overcloud 除外。
启用 advanced-virt 软件仓库:
$ sudo subscription-manager repos --enable=advanced-virt-for-rhel-8-x86_64-rpms
libvirt, virt-manager 安装创建客户端操作系统所需的所有软件包:
$ sudo dnf module install -y virt
libguestfs 工具,用于安装一组用于访问和修改虚拟机镜像的工具:
$ sudo dnf install -y libguestfs-tools-c
- Red Hat Enterprise Linux 7 或 6 ISO 文件。如需更多信息,请参阅 RHEL 7.2 Binary DVD 或者 RHEL 6.8 Binary DVD 或者 Windows ISO 文件。如果您没有 Windows ISO 文件,请查看 Microsoft 评估中心 下载评估镜像。
-
文本编辑器,如果您要更改
kickstart
文件(仅限 RHEL)。
如果在 undercloud 上安装 libguestfs-tools
软件包,请禁用 iscsid.socket
,以避免与 undercloud 上的 tripleo_iscsid
服务冲突:
$ sudo systemctl disable --now iscsid.socket
1.2.1.2.1. 创建 Red Hat Enterprise Linux 7 镜像
使用 Red Hat Enterprise Linux 7 ISO 文件以 QCOW2 格式手动创建 Red Hat OpenStack Platform(RHOSP)兼容镜像。
您必须在主机中使用 [root@host]#
运行所有命令。
使用
virt-install
启动安装:[root@host]# qemu-img create -f qcow2 rhel7.qcow2 8G [root@host]# virt-install --virt-type kvm --name rhel7 --ram 2048 \ --cdrom /tmp/rhel-server-7.2-x86_64-dvd.iso \ --disk rhel7.qcow2,format=qcow2 \ --network=bridge:virbr0 --graphics vnc,listen=0.0.0.0 \ --noautoconsole --os-type=linux --os-variant=rhel7
这会启动实例并启动安装过程。
注意如果实例没有自动启动,请运行
virt-viewer
命令来查看控制台:[root@host]# virt-viewer rhel7
配置实例:
- 在初始安装程序引导菜单中,选择 Install Red Hat Enterprise Linux 7。
- 选择相应的 Language 和 Keyboard 选项。
- 当提示输入您的安装使用的设备类型时,请选择" 自动探测到的安装介质 "。
- 当提示输入安装目的地时,请选择 Local Standard Disks。对于其他存储选项,请选择 Automatically configure partitioning。
- 对于软件选择,请选择 Minimal Install。
- 对于网络和主机名,选择 eth0 作为网络,并为您的设备选择主机名。默认主机名为 localhost.localdomain。
在 Root Password 字段中输入密码,然后在 Confirm 字段中再次输入相同的密码。
- 结果
- 安装过程完成,并显示 Complete! 屏幕。
- 安装完成后,重启实例并以 root 用户身份登录。
更新
/etc/sysconfig/network-scripts/ifcfg-eth0
文件,使其只包含以下值:TYPE=Ethernet DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp NM_CONTROLLED=no
- 重启机器。
使用 Content Delivery Network 注册机器。
# sudo subscription-manager register # sudo subscription-manager attach --pool=Valid-Pool-Number-123456 # sudo subscription-manager repos --enable=rhel-7-server-rpms
更新系统:
# dnf -y update
安装
cloud-init
软件包:# dnf install -y cloud-utils-growpart cloud-init
编辑
/etc/cloud/cloud.cfg
配置文件并在cloud_init_modules
add 下:- resolv-conf
当实例首次引导时,
resolv-conf
选项会自动配置resolv.conf
。此文件包含与实例相关的信息,如名称服务器
、域和
其他选项。将以下行添加到
/etc/sysconfig/network
,以避免访问 EC2 元数据服务出现问题:NOZEROCONF=yes
要确保控制台消息显示在仪表板和
nova
控制台输出的 Log 选项卡中,请在/etc/default/grub
文件中添加以下引导选项:GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
运行
grub2-mkconfig
命令:# grub2-mkconfig -o /boot/grub2/grub.cfg
输出如下:
Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-229.7.2.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-229.7.2.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-121.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-121.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-b82a3044fb384a3f9aeacf883474428b Found initrd image: /boot/initramfs-0-rescue-b82a3044fb384a3f9aeacf883474428b.img done
取消注册实例,以便生成的镜像不包含此实例的订阅详情:
# subscription-manager repos --disable=* # subscription-manager unregister # dnf clean all
关闭实例:
# poweroff
使用
virt-sysprep
命令重置并清理镜像,以便它可用于在没有问题的情况下创建实例:[root@host]# virt-sysprep -d rhel7
通过将磁盘镜像中的任何可用空间转换为主机中的可用空间来减少镜像大小:
[root@host]# virt-sparsify --compress /tmp/rhel7.qcow2 rhel7-cloud.qcow2
这会在运行该命令的位置创建一个新的
rhel7-cloud.qcow2
文件。
rhel7-cloud.qcow2
镜像文件已准备好上传到镜像服务。有关使用仪表板将此镜像上传到 RHOSP 部署的更多信息,请参阅 第 1.2.2 节 “上传镜像”。
1.2.1.2.2. 创建 Red Hat Enterprise Linux 6 镜像
使用 Red Hat Enterprise Linux 6 ISO 文件以 QCOW2 格式手动创建 Red Hat OpenStack Platform(RHOSP)兼容镜像。
您必须在主机中使用 [root@host]#
运行所有命令。
使用
virt-install
启动安装:[root@host]# qemu-img create -f qcow2 rhel6.qcow2 4G [root@host]# virt-install --connect=qemu:///system --network=bridge:virbr0 \ --name=rhel6 --os-type linux --os-variant rhel6 \ --disk path=rhel6.qcow2,format=qcow2,size=10,cache=none \ --ram 4096 --vcpus=2 --check-cpu --accelerate \ --hvm --cdrom=rhel-server-6.8-x86_64-dvd.iso
这会启动实例并启动安装过程。
注意如果实例没有自动启动,请运行
virt-viewer
命令来查看控制台:[root@host]# virt-viewer rhel6
配置实例:
在初始安装程序引导菜单中,选择" 安装或升级现有系统 "并按照安装提示进行操作。接受默认设置。
磁盘安装程序提供了在安装前测试您的安装介质的选项。选择 OK 来运行测试,或选择 Skip 以继续进行测试。
- 选择相应的 Language 和 Keyboard 选项。
- 当提示输入您的安装使用的设备类型时,请选择 Basic Storage Devices。
-
为您的设备选择一个主机名。默认主机名为
localhost.localdomain
。 -
设置 时区和
root
密码。 - 根据磁盘中的空间,从哪个安装类型中选择您 想到的安装类型? 窗口。
- 选择 安装 SSH 服务器的基本服务器安装。
- 安装过程已完成,并显示 Red Hat Enterprise Linux 安装的完整 屏幕。
-
重启实例,然后以
root
用户身份登录。 更新
/etc/sysconfig/network-scripts/ifcfg-eth0
文件,使其只包含以下值:TYPE=Ethernet DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp NM_CONTROLLED=no
- 重启机器。
使用 Content Delivery Network 注册机器:
# sudo subscription-manager register # sudo subscription-manager attach --pool=Valid-Pool-Number-123456 # sudo subscription-manager repos --enable=rhel-6-server-rpms
更新系统:
# dnf -y update
安装
cloud-init
软件包:# dnf install -y cloud-utils-growpart cloud-init
编辑
/etc/cloud/cloud.cfg
配置文件,并在cloud_init_modules
下添加以下内容。- resolv-conf
当实例首次引导时,
resolv-conf
选项会自动配置resolv.conf
配置文件。此文件包含与实例相关的信息,如名称服务器
、域
及其他选项。要防止网络问题,请创建
/etc/udev/rules.d/75-persistent-net-generator.rules
:# echo "#" > /etc/udev/rules.d/75-persistent-net-generator.rules
这可防止
/etc/udev/rules.d/70-persistent-net.rules
文件被创建。如果创建/etc/udev/rules.d/70-persistent-net.rules
,在从快照引导时网络可能无法正常工作,则网络接口会被创建为eth1
而不是eth0
,且没有分配 IP 地址。将以下行添加到
/etc/sysconfig/network
,以避免访问 EC2 元数据服务出现问题:NOZEROCONF=yes
要确保控制台消息显示在仪表板和
nova
控制台输出的 Log 选项卡中,请在/etc/grub.conf
文件中添加以下引导选项:console=tty0 console=ttyS0,115200n8
取消注册虚拟机,以便生成的镜像不包含此实例的同一订阅详情:
# subscription-manager repos --disable=* # subscription-manager unregister # dnf clean all
关闭实例:
# poweroff
使用
virt-sysprep
命令重置并清理镜像,以便它可用于在没有问题的情况下创建实例:[root@host]# virt-sysprep -d rhel6
使用
virt-sparsify
命令减少镜像大小。这个命令将磁盘镜像中的任何可用空间重新转换为主机中的可用空间:[root@host]# virt-sparsify --compress rhel6.qcow2 rhel6-cloud.qcow2
这会在运行该命令的位置创建一个新的
rhel6-cloud.qcow2
文件。注意根据镜像,根据应用到实例的类别中的磁盘空间,手动调整实例分区。
rhel6-cloud.qcow2
镜像文件已准备好上传到镜像服务。有关使用仪表板将此镜像上传到 RHOSP 部署的更多信息,请参阅 第 1.2.2 节 “上传镜像”。
1.2.1.2.3. 创建 Windows 镜像
使用 Windows ISO 文件以 QCOW2 格式手动创建 Red Hat OpenStack Platform(RHOSP)兼容镜像。
您必须在主机中使用 [root@host]#
运行所有命令。
流程
使用
virt-install
启动安装:[root@host]# virt-install --name=<name> \ --disk size=<size> \ --cdrom=<path> \ --os-type=windows \ --network=bridge:virbr0 \ --graphics spice \ --ram=<ram>
替换
virt-install
参数的以下值:- <name> the the Windows 实例的名称。
- <size>用于 GB 的 disk 大小。
- <path> the the Windows 安装 ISO 文件的路径。
<RAM> the requested of RAM 数量(以 MB 为单位)。
注意--os-type=windows
参数确保为 Windows 客户机正确配置了时钟,并启用其 Hyper-V enlightenment 功能。您还必须在镜像元数据中设置os_type=windows
,然后才能将镜像上传到镜像服务。
virt-install
默认将客户机镜像保存为/var/lib/libvirt/images/
<name&
gt; .qcow2
。如果您要在其他位置保留客户机镜像,请更改--disk
选项的参数:--disk path=<filename>,size=<size>
将 <filename> 替换为存储实例镜像的文件的名称,以及可选的路径。例如,
path=win8.qcow2,size=8
在当前工作目录中创建一个名为win8.qcow2
的 8 GB 文件。提示如果客户端没有自动启动,请运行
virt-viewer
命令查看控制台:[root@host]# virt-viewer <name>
有关如何安装 Windows 的更多信息,请参阅相关的 Microsoft 文档。
-
要允许新安装的 Windows 系统使用虚拟化硬件,您可能需要安装 VirtIO 驱动程序。要做到这一点,首先安装镜像,该镜像必须作为 CD-ROM 驱动器附加到 Windows 实例。要安装
virtio-win
软件包,您必须将 VirtIO ISO 镜像添加到实例中,并安装 VirtIO 驱动程序。如需更多信息,请参阅 配置和管理虚拟化 指南中的 为 Windows 虚拟机安装 KVM 半虚拟驱动程序。 要完成配置,请在 Windows 系统上下载并执行 Cloudbase-Init。在 Cloudbase-Init 安装结束时,选择 Run Sysprep 和 Shutdown 复选框。
Sysprep
工具通过生成操作系统 ID(供某些 Microsoft 服务使用)使 guest 唯一。重要红帽对 Cloudbase-Init 不提供技术支持。如果您遇到问题,请参阅 联系 Cloudbase Solutions。
当 Windows 系统关闭时,& lt;name>.qcow2
镜像文件已准备好上传到镜像服务。有关使用仪表板或命令行将此镜像上传到 RHOSP 部署的更多信息,请参阅 第 1.2.2 节 “上传镜像”。
libosinfo 数据
计算服务已弃用支持使用 libosinfo 数据来设置默认设备模型。反之,使用以下镜像元数据属性为实例配置最佳虚拟硬件:
-
os_distro
-
os_version
-
hw_cdrom_bus
-
hw_disk_bus
-
hw_scsi_model
-
hw_vif_model
-
hw_video_model
-
hypervisor_type
有关这些元数据属性的更多信息,请参阅 镜像配置参数。
1.2.2. 上传镜像
- 在仪表板中,选择 Project > Compute > Images。
- 点 Create Image。
- 填写这些值,再单击 创建镜像。
字段 | 备注 |
---|---|
Name | 镜像的名称。名称在项目内必须是唯一的。 |
描述 | 用于标识镜像的简短描述。 |
镜像源 | 镜像源:镜像位置或镜像文件.根据您的选择,下一个字段会显示。 |
镜像位置或镜像文件 |
|
格式 | 镜像格式(如 qcow2)。 |
架构 | 镜像架构。例如,将 i686 用于 32 位构架,或使用 x86_64 进行 64 位构架。 |
最小磁盘(GB) | 引导镜像所需的最小磁盘大小。如果没有指定此字段,则默认值为 0(无最小值)。 |
最小 RAM(MB) | 引导镜像所需的最小内存大小。如果没有指定此字段,则默认值为 0(无最小值)。 |
公开 | 若选中,请将镜像设置为公共镜像,供有权访问该项目的所有用户。 |
protected | 如果选中,请确保只有具有特定权限的用户才能删除此镜像。 |
镜像上传成功后,其状态为 active
,这表示该镜像可用。请注意,镜像服务可以处理在启动上传时使用的 Identity service token 生命周期间需要很长时间的大镜像。这是因为镜像服务首先使用身份服务创建信任,以便在上传完成时获取和使用新令牌,以及更新镜像的状态。
您也可以使用 glance image-create
命令和 property
选项,以上传镜像。可以在命令行中使用更多值。有关完整列表,请参阅 附录 A, 镜像配置参数。
1.2.3. 更新镜像
- 在仪表板中,选择 Project > Compute > Images。
从列表中选择 Edit Image。
注意只有以
admin
用户身份登录时,才可使用 Edit Image 选项。当您以demo
用户身份登录时,您可以选择启动实例或 创建卷。- 更新字段并点击 Update Image。您可以更新以下值 - 名称、描述、内核 ID、ramdisk ID、架构、格式、最小磁盘、最小 RAM、公共、保护。
- 单击下拉菜单并选择 Update Metadata 选项。
- 通过向右列添加项目来指定元数据。在左侧列中,有来自镜像服务元数据目录的元数据定义。选择 Other 来使用您选择的键添加元数据,然后在完成后点击 Save。
您也可以使用 glance image-update
命令和 property
选项来更新镜像。在命令行中有多个值 ; 有关完整的列表,请参阅 附录 A, 镜像配置参数。
1.2.4. 导入镜像
您可以使用以下两种方法之一将镜像导入到镜像服务(glance):
-
使用
web-download
从 URI 导入镜像。 -
使用
glance-direct
从本地文件系统导入镜像。
web-download
方法被默认启用。云管理员配置导入方法。您可以运行 glance import-info
命令来列出可用的导入选项。
1.2.4.1. 从远程 URI 导入镜像
您可以使用 web-download
方法从远程 URI 复制镜像。
创建镜像并指定要导入的镜像的 URI:
$ glance image-create-via-import \ --container-format <CONTAINER FORMAT> \ --disk-format <DISK-FORMAT> \ --name <NAME> \ --import-method web-download \ --uri <URI>
-
将
<CONTAINER FORMAT
> 替换为您要为镜像设置的容器格式(None, ami, ari, aki, bare, ovf, ovf, ova, docker)。 -
将
<DISK-FORMAT
> 替换为您要为镜像设置的磁盘格式(None, ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso, ploop)。 -
将
<NAME
> 替换为您的镜像的描述性名称。 -
将
<URI
> 替换为镜像的 URI。
-
将
您可以使用
glance image-show <IMAGE_ID>
; 命令检查镜像的可用性。-
将
<IMAGE_ID
> 替换为您在镜像创建过程中提供的 ID。
-
将
镜像服务 Web 下载
方法使用两阶段进程来执行导入:
-
Web 下载
方法创建镜像记录。 -
Web 下载
方法从指定的 URI 检索镜像。
URI 受可选的 denylist 和 allowlist 过滤。
镜像属性注入插件可能会向镜像注入元数据属性。这些注入属性决定镜像实例在其上启动的计算节点。
1.2.4.2. 从本地卷导入镜像
glance-direct
方法创建映像记录,它会生成镜像 ID。镜像从本地卷上传到镜像服务后,它将存储在暂存区域中,并在通过任何配置的检查后处于活动状态。在高可用性(HA)配置中使用 glance-direct
方法需要共享的暂存区域。
如果一个常见的暂存区域不存在,使用 glance-direct
方法的上传可能会在 HA 环境中失败。在 HA 主动环境中,API 调用分发到镜像服务控制器。下载 API 调用可以发送到与 API 调用不同的控制器来上传镜像。
glance-direct 方法使用三个不同的调用来导入镜像:
-
Glance image-create
-
Glance image-stage
-
Glance image-import
您可以使用 glance image-create-via-import
命令在一个命令中执行所有这些调用:
$ glance image-create-via-import --container-format <CONTAINER FORMAT> --disk-format <DISK-FORMAT> --name <NAME> --file </PATH/TO/IMAGE>
-
将 &
lt;CONTAINER FORMAT>
;, <DISK-FORMAT
> , <NAME
> , 和 </PATH/TO/IMAGE
> 替换为您的镜像的相关值。
镜像从暂存区域移到后端位置后,会列出该镜像。但是,可能需要过些时间,镜像才会变为活跃状态。
您可以使用 glance image-show <IMAGE_ID>
; 命令检查镜像的可用性。
-
将
<IMAGE_ID
替换为您在镜像创建过程中提供的 ID。
1.2.5. 删除镜像
- 在仪表板中,选择 Project > Compute > Images。
- 选择您要删除的镜像并点 Delete Images。
1.2.6. 隐藏或隐藏镜像
您可以从提供给用户的常规列表中隐藏公共镜像。例如,您可以隐藏过时的 CentOS 7 镜像,只显示最新版本以简化用户体验。用户可以发现并使用隐藏的镜像。
隐藏镜像:
glance image-update <image_id> --hidden 'true'
要创建隐藏的镜像,请将 --hidden
参数添加到 glance image-create
命令。
取消隐藏镜像:
glance image-update <image_id> --hidden 'false'
1.2.8. 启用镜像转换
启用 GlanceImageImportPlugins
参数后,您可以上传 QCOW2 镜像,而镜像服务可将其转换为 RAW。
当您使用 Red Hat Ceph Storage RBD 来存储镜像和引导 Nova 实例时,会自动启用镜像转换。
要启用镜像转换,请创建一个包含以下参数值的环境文件,并使用 openstack overcloud deploy
命令中的 -e
选项包括新的环境文件:
+
parameter_defaults: GlanceImageImportPlugins:'image_conversion'
1.2.9. 将镜像转换为 RAW 格式
Red Hat Ceph Storage 可以存储,但不支持使用 QCOW2 镜像来托管虚拟机(VM)磁盘。
当您上传 QCOW2 镜像并从中创建虚拟机时,计算节点会下载镜像,将镜像上传到 RAW,并将它重新上传到 Ceph,然后使用它。此过程会影响创建虚拟机所需的时间,特别是在创建并行虚拟机期间。
例如,在同时创建多个虚拟机时,将转换的镜像上传到 Ceph 集群可能会影响已在运行的工作负载。上传过程会使 IOPS 的工作负载 启动并破坏存储响应能力。
要更有效地引导 Ceph 中的虚拟机(临时后端或从卷启动),glance 镜像格式必须是 RAW。
流程
将镜像转换为 RAW 可能会生成大于原始 QCOW2 镜像文件的镜像。在转换前运行以下命令,以确定最终的 RAW 镜像大小:
qemu-img info <image>.qcow2
将镜像从 QCOW2 转换为 RAW 格式:
qemu-img convert -p -f qcow2 -O raw <original qcow2 image>.qcow2 <new raw image>.raw
1.2.9.1. 在镜像服务(glance)中配置磁盘格式
您可以使用 GlanceDiskFormats
参数配置镜像服务(glance)来启用或禁用磁盘格式。
流程
-
以
stack
用户身份登录 undercloud 主机。 提供 undercloud 凭证文件:
$ source ~/stackrc
在环境文件中包括
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
在
openstack overcloud deploy
命令中包含新配置的环境文件,以及与您环境相关的其他环境文件:$ openstack overcloud deploy --templates \ -e <overcloud_environment_files> \ -e <new_environment_file> \ …
-
将
<overcloud_environment_files
> 替换为属于部署一部分的环境文件列表。 -
将
<new_environment_file
> 替换为包含新配置的环境文件。
-
将
有关 RHOSP 中可用磁盘格式的更多信息,请参阅 第 1 章 Image 服务(glance)。
1.2.10. 以 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
命令,以列出可用的镜像导入方法。