虚拟机映像(简称映像)是包含安装有可引导操作系统的虚拟磁盘的单个文件。映像提供虚拟机文件系统的模板。
除了系统信息显示板以外,您还可以使用 glance 和 nova 命令行客户机或者映像服务和计算 API 来管理映像。
nova image-list 命令显示可用映像的列表。创建 VM 实例时,您将使用映像的名称或 ID。
$ nova image-list +--------------------------------------+-------------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+-------------------------+--------+--------+ | e422aae1-b0ba-618c-85d3-a214059800e2 | Solaris Kernel Zone | ACTIVE | | | e82aa857-ec92-4859-f530-deb89274863e | Solaris Non-global Zone | ACTIVE | | +--------------------------------------+-------------------------+--------+--------+
glance image-list 命令还显示其他信息,包括磁盘格式、容器格式和映像大小:
$ glance image-list --human-readable
nova image-show 和 glance image-show 命令显示有关指定映像的更多信息:
$ nova image-show 'Solaris Kernel Zone' +--------------------------+--------------------------------------+ | Property | Value | +--------------------------+--------------------------------------+ | OS-EXT-IMG-SIZE:size | 1547458560 | | created | 2014-06-29T15:40:49Z | | id | e422aae1-b0ba-618c-85d3-a214059800e2 | | metadata architecture | x86_64 | | metadata hypervisor_type | solariszones | | metadata vm_mode | solariszones | | minDisk | 0 | | minRam | 0 | | name | Solaris Kernel Zone | | progress | 100 | | status | ACTIVE | | updated | 2014-06-29T15:40:55Z | +--------------------------+--------------------------------------+ $ glance image-show 'Solaris Kernel Zone' +----------------------------+--------------------------------------+ | Property | Value | +----------------------------+--------------------------------------+ | Property 'architecture' | x86_64 | | Property 'hypervisor_type' | solariszones | | Property 'vm_mode' | solariszones | | checksum | b2fc9560c15603c7663326db82d5ddaa | | container_format | bare | | created_at | 2014-06-29T15:40:49.108578 | | deleted | False | | disk_format | raw | | id | e422aae1-b0ba-618c-85d3-a214059800e2 | | is_public | True | | min_disk | 0 | | min_ram | 0 | | name | Solaris Kernel Zone | | owner | 7461d4a9f5a64af9a01ae4e84e08c182 | | protected | False | | size | 1547458560 | | status | active | | updated_at | 2014-06-29T15:40:55.769756 | +----------------------------+--------------------------------------+
在 Solaris 中,OpenStack 映像为统一归档文件并且必须运行 Oracle Solaris 11.2。使用 archiveadm 命令,您可以从运行 Oracle Solaris 11.2 的全局、非全局和内核区域创建新的统一归档文件。将映像上载到 Glance 系统信息库以供 OpenStack 使用。
统一归档文件可以是克隆归档文件,也可以是恢复归档文件。创建基于当前活动的引导环境的克隆归档文件,或者创建包括所有引导环境和系统配置信息的恢复归档文件。克隆归档文件不包括 OS 实例的任何系统配置信息。对于克隆归档文件,安装程序将强制进行重新配置,或者您可以在系统配置 (system configuration, SC) 的配置文件中提供配置。例如,克隆归档文件也不包括非活动的 BE。如果您需要完整的系统,则使用恢复统一归档文件。有关统一归档文件的更多信息,请参见在 Oracle Solaris 11.2 中使用统一归档文件进行系统恢复和克隆。
以下命令捕获正在运行的名为 myzone 的非全局区域的统一归档文件:
global# zonecfg -z myzone create global# zoneadm -z myzone install global# zlogin myzone \ 'sed /^PermitRootLogin/s/no$/without-password/ \ < /etc/ssh/sshd_config > /system/volatile/sed.$$ ; \ cp /system/volatile/sed.$$ /etc/ssh/sshd_config' global# archiveadm create -z myzone /var/tmp/myzone.uar
您还可以通过创建现有 VM 实例的快照来创建 OpenStack 映像。使用 nova image-create 命令通过创建运行中 VM 实例的快照来创建映像。
除了创建映像以用于创建 VM 实例以外,您可能还要使用定制映像进行数据备份或者挽救 VM 实例。挽救映像是当 VM 实例处于 rescue 模式时引导的特殊映像类型。挽救映像允许管理员挂载 VM 实例的文件系统以更正问题。
OpenStack 映像服务 Glance 为磁盘和服务器映像提供存储、搜索、注册和交付服务。注册表服务器是向客户机提供映像元数据信息的映像服务。映像高速缓存由映像服务用于在本地主机上获取映像,而非每次请求映像时从映像服务器重新下载映像。
下面的命令将之前部分创建的统一归档文件上载到 Glance 系统信息库中。将 raw 用作格式类型。确保指定 architecture 属性。
global# glance image-create --container-format bare --disk-format raw \ --is-public true --name "Oracle Solaris 11.2 x86 NGZ" \ --property architecture=x86_64 \ --property hypervisor_type=solariszones \ --property vm_mode=solariszones < /var/tmp/myzone.uar
glance image-create 命令可以上载映像并同时设置所有属性值。下面的脚本显示如何确保在 architecture 属性设置为当前主机的体系结构的情况下上载映像:
#!/bin/ksh # Upload Unified Archive image to glance with proper Solaris decorations arch=$(archiveadm info -p $1|grep ^archive|cut -d '|' -f 4) if [[ "$arch" == "i386" ]]; then imgarch=x86_64 else imgarch=sparc64 fi name=$(basename $1 .uar) export OS_USERNAME=glance export OS_PASSWORD=glance export OS_TENANT_NAME=service export OS_AUTH_URL=http://controller-name:5000/v2.0 glance image-create --name $name --container-format bare --disk-format raw --owner service --file $1 --is-public True --property architecture=$imgarch --property hypervisor_type=solariszones --property vm_mode=solariszones --progress