本章介绍了在 RHEL OpenStack Platform 中管理镜像和存储所需的步骤。
虚拟机镜像(image)就是一个包括安装了可引导操作系统的虚拟磁盘的文件。虚拟机镜像可以有不同的格式,以下是 RHEL OpenStack Platform 支持的格式:
RAW - 没有进行结构化的磁盘镜像格式。
QCOW2 - QEMU 仿真程序支持的磁盘格式。
ISO - 保存在一个二进制文件中的、包括磁盘每个扇区中的数据的数据备份。
AKI - Amazon Kernel Image。
AMI - Amazon Machine Image。
ARI - Amazon RAMDisk Image。
VDI - VirtualBox 虚拟机监控程序和 QEMU 仿真程序支持的磁盘格式。
VHD - VMWare、VirtualBox 以及其它系统的虚拟机监控程序支持的通用磁盘格式。
VMDK - 一些通用虚拟机监控程序支持的磁盘格式。
因为 ISO 包括了已安装了操作系统的可引导文件系统,所以我们通常不认为 ISO 是一个虚拟机镜像格式。但是,您可以向处理其它虚拟机镜像文件一样处理 ISO。
为了下载红帽官方的 Red Hat Enterprise Linux 云镜像,您需要一个有效的 Red Hat Enterprise Linux 订阅:1.1. 镜像服务:新功能
RHEL OpenStack Platform 7 发行版本中的镜像服务包括以下新功能:
镜像转换 - 在导入镜像时调用任务 API 对镜像进行转换(在 Kilo 中只支持 qcow/raw 格式的转换)。
作为镜像导入流程的一部分,一个插件提供了对镜像进行转换的功能。这个插件可以根据用户的配置被启用或被禁用。因此,用户需要指定用于进行部署的首选镜像格式。
镜像服务(Image service)在接收到特定格式镜像的数据后会把这些数据保存在一个临时的存储中。然后,会触发转换插件来把这些数据转换为目标格式,并把转换后的数据保存在最终的存储位置中。当整个过程完成后,临时存储的镜像数据会被删除。因此,上传的原始镜像数据不会被镜像服务保留。
注意
镜像转换的过程只会在导入(import)一个镜像时才会被触发。在上传(upload)一个镜像时不会触发镜像的转换。例如:$ glance --os-image-api-version 2 task-create --type import --input '{"import_from_format": "qcow2", "import_from": "http://127.0.0.1:8000/test.qcow2", "image_properties": {"disk_format": "qcow2", "container_format": "bare"}}'
镜像內省(Image Introspection) - 每种格式的镜像本身都会包括一组元数据。
例如,一个 vmdk 包括以下参数:$ head -20 so-disk.vmdk
# Disk DescriptorFile
version=1
CID=d5a0bce5
parentCID=ffffffff
createType="streamOptimized"
# Extent description
RDONLY 209714 SPARSE "generated-stream.vmdk"
# The Disk Data Base
#DDB
ddb.adapterType = "buslogic"
ddb.geometry.cylinders = "102"
ddb.geometry.heads = "64"
ddb.geometry.sectors = "32"
ddb.virtualHWVersion = "4"
通过对 vmdk 进行內省,您可以方便地知道 disk_type 是 streamOptimized,adapter_type 是 buslogic。通过在镜像服务中对这些元数据进行提取,管理员不再需要了解所有元数据(除非需要覆盖其中的一些数据)。这些元数据参数对镜像的使用者非常有用。例如,在 Compute 节点中,对一个 streamOptimized 磁盘进行实例化的过程和对 flat 磁盘进行实例化的过程完全不同。现在,您可以在导入镜像的过程中,通过调用任务 API 进行镜像內省。
注意
在 Kilo 中,您只能內省 virtual_size 元数据参数。1.2. 管理镜像
OpenStack Image 服务 (glance) 提供了磁盘和服务器镜像的发现(discovery)、注册(registration)和分发(delivery)功能。您可以对服务器镜像进行复制或进行快照,然后进行保存。存储的镜像可以作为模板来快速设置并运行一个新服务器。1.2.1. 创建镜像
本节介绍了使用 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 ISO 文件手工创建 OpenStack 兼容的 .qcow2 格式镜像。1.2.1.1. 在 RHEL OpenStack Platform 中使用 KVM Guest 镜像
您可以使用一个已经准备就绪的 RHEL KVM g