将镜像添加到 Glance 时,必须指定虚拟机镜像的磁盘格式
和容器格式
是什么。磁盘和容器格式可以在每个部署的基础上进行配置。本文件打算为 disk_format
和 container_format
的特定值的含义建立一个全球的标准。
磁盘格式
虚拟机镜像的磁盘格式是底层磁盘镜像
的格式。虚拟设备供应商使用不同的格式来布置虚拟机磁盘镜像中包含的信息。
可以把镜像的磁盘格式设置为下列之一:
raw
这是一种非结构化的磁盘镜像格式。
Raw镜像格式是最简单的一种,KVM和Xen hypervisors都支持它。你可以把Raw镜像看作是一个块设备文件的比特等价物,就像有人用dd
命令把/dev/sda
复制到一个文件中一样。
vhd
这是VHD(虚拟硬盘,Virtual Hard Disk)磁盘格式,是VMware、Xen、Microsoft、VirtualBox和其他公司的虚拟机monitors所使用的一种常见磁盘格式。
vhdx
这是VHDX格式,是vhd格式的增强版。它支持更大的磁盘大小,并在断电时防止数据损坏。
vmdk
VMDK(虚拟机磁盘,Virtual Machine Disk)格式被许多常见的虚拟机监控器所支持,例如VMware ESXi hypervisor。
vdi
VDI(虚拟磁盘镜像,Virtual Disk Image)格式的镜像文件被VirtualBox虚拟机监视器和QEMU模拟器所支持。
iso
ISO格式是以只读的ISO 9660(也被称为ECMA-119)文件系统格式化的磁盘镜像,通常用于CD和DVD。
ploop
Virtuozzo支持并用于运行操作系统容器的一种磁盘格式。
qcow2
QCOW2(QEMU copy-on-write version 2)格式通常用于KVM hypervisor。它使用稀疏表示法,所以镜像的大小比相同虚拟磁盘的原始格式文件要小。它可以动态扩展并支持写时拷贝。
AKI/AMI/ARI
AKI/AMI/ARI
格式是亚马逊EC2支持的初始镜像格式。镜像由三个文件组成,每个文件都有自己特定的disk_format标识符。
aki
这表明存储在Glance中的是一个亚马逊内核镜像(AKI)。它是一个内核文件,管理程序最初会加载这个文件来启动镜像。对于Linux机器,这将是一个vmlinuz文件。
ari
这表明Glance中存储的是Amazon Ramdisk Image(ARI)。它是在启动时挂载的一个可选的ramdisk文件。对于Linux机器,这将是一个initrd
文件。
ami
这表明存储在Glance中的是一个亚马逊机器镜像(AMI)。它是一个原始格式的虚拟机镜像。
容器格式
容器格式指的是虚拟机镜像是否为文件格式,其中也包含关于实际虚拟机的元数据。
请注意以下事项:
Glance没有验证
container_format
镜像属性是否准确描述了镜像数据有效载荷。不要以为所有OpenStack服务都能处理Glance定义的所有容器格式。
请查阅消费你的镜像的服务的文档,看看该服务支持哪些容器格式。
你可以将你的镜像的容器格式设置为以下之一:
bare(裸金属)
该镜像没有容器或元数据包装。
ovf
OVF(开放虚拟化格式,Open Virtualization Format)是一种虚拟机的包装格式,由分布式管理任务组(DMTF)标准小组定义。一个OVF包包含一个或多个镜像文件,一个包含虚拟机信息的.ovf
XML元数据文件,以及可能还有其他文件。
OVF包可以以不同的方式分发。例如,它可以作为一组不连续的文件分发,或作为一个具有.ova
(开放虚拟设备/应用程序,open virtual appliance/application)扩展名的tar
文件。
aki
这表明 Glance 中存储的是 Amazon 内核镜像。
ari
这表明Glance中存储的是一个亚马逊的ramdisk镜像。
ami
这表明存储在Glance中的是一个亚马逊机器镜像。
ova
这表明存储在Glance中的是一个OVA tar
文件,也就是说,一个OVF包包含在一个tar归档文件中。
docker
这表明存储在Glance中的是容器文件系统的Docker tar。
compressed(压缩的)
未指定压缩文件的确切格式。消费服务负责分析数据负载并确定特定的压缩格式。特定的 OpenStack 服务可能只支持特定的格式。
你可能会假设任何使用“压缩”容器格式创建镜像的 OpenStack 服务都能够使用该镜像。
有关详细信息,请参阅将使用镜像的服务的文档。