Glance是Openstack的镜像服务,主要为虚拟机提供镜像(image)。
什么是虚拟机镜像
虚拟机镜像是一个单独的文件,它是包含一个可引导的操作系统的虚拟磁盘。虚拟机磁盘有多种文件格式,常见的镜像文件格式如下:
- AKI/AMI/ARI - AWS的EC2默认的文件格式,它包含三部分:
- AKI(Amazon Kernel Image)- 虚拟层(hypervisor)的内核初始化引导文件,类似于linux的“vmlinuz”文件。
- AMI(Amazon Machine Image) - 裸格式(raw)的虚拟的镜像。
- ARI (Amazon Ramdisk Image) - 系统引导是可选的一个内存虚拟磁盘,类似于linux的“inittrd”文件。
- ISO - 一种遵循ISO 9660文件系统规范的CD和DVD常用的磁盘格式。
- OVF - DMTF标准组织定义的虚拟机封装格式。一个OVF包里打包了镜像文件、XML格式的.ovf metadata文件。OVF格式有多种表现方式,可以是离散的文件、tar包或者.ova文件。openstack不直接支持OVF格式,但是可以将OVF包里的镜像文件解压出来使用。
- QCOW2 - KVM hypervisor最常用的文件格式。相比于raw格式,它有以下优势:
- 使用稀疏模式,占用更少的磁盘空间
- 支持快照(snapshots)
- Raw - 最简单的文件格式,KVM和Xen默认支持的文件格式。
- VDI - Virtual-Box使用的镜像文件格式。Openstack不直接支持该文件格式,您需要手动的将这种镜像转换成openstack支持的镜像格式。
- VHD/VHDK - 微软Hyper-V使用的镜像文件格式。
- VMDK VMware ESXI 使用的镜像文件格式。
镜像的磁盘和容器的文件格式
当你安装了glance服务,你可以为镜像服务指定磁盘(disk)和容器(container)文件格式。
disk文件格式
disk format是虚拟机镜像的底层磁盘格式,虚拟设备供应商对于虚拟机磁盘映像中包含的信息提供有不同的文件格式,常见的有:
- aki/ami/ari
- iso
- qcow2
- raw
- vdi
- vhd/vhdx
- vmdx
container文件格式
container format 指定虚拟机镜像是否包含元数据,
openstack当前还不支持容器格式,如果你不确定的话请将容器格式设置为“bare”。
常见的容器格式有:
- aki/ami/ari
- bare - 镜像没有包含容器或者元数据
- docker
- ova
- ovf
我们会在以后单独专门讨论openstack的metadata服务。
获取镜像
最简单获取镜像的方式是下载各个运营商已经创建的好的镜像,大多数镜像里已经包括了“cloud-init”包,这个包主要用来注入ssh秘钥以及用户定制化配置。
CentOS 6 镜像下载地址
CentOS 7 镜像下载地址
cirros 镜像下载地址
Debian 镜像下载地址
Fedora 镜像下载地址
Microsoft Windows 镜像下载地址
Ubuntu 镜像下载地址
openSUSE 镜像下载地址
Red Hat 6 镜像下载地址
Red Hat 7 镜像下载地址
自定义镜像
当您决定自定义镜像时,你需要做以下工作以保证Openstack的功能正常:
- 引导时,支持磁盘分区和调整根分区(cloud-init)
- 没有硬编码的MAC地址信息
- SSH服务已开启
- 使用公钥登录虚拟机(cloud-init)
- 可注入用户数据和其他元数据(cloud-init)
- Xen支持的linux内核版本(Xen只支持3.0以下的linux内核)
- 关闭防火墙
cloud_init 的RedHat参考文档 http://cloudinit.readthedocs.io/en/latest/index.html
_cloud_init 的Ubuntu参考文档 https://help.ubuntu.com/community/CloudInit _