风格是 VM 实例类型,或虚拟硬件模板。风格指定一组虚拟机资源,例如虚拟 CPU 的数目、内存量以及为 VM 实例分配的磁盘空间。在 Solaris 上,风格还包括底层区域的标记:solaris 表示非全局区域,solaris-kz 表示内核区域。实例风格的一个示例为具有 16 个虚拟 CPU 和 16384 MB RAM 的内核区域。
有关风格的一般信息,请参见《OpenStack Cloud Administrator Guide》(《OpenStack 云管理员指南》)中的 "Flavors"(风格)部分。
nova flavor-list 命令显示可用风格的列表。创建 VM 实例时,您将使用风格的名称或 ID。要在风格列表中包括 extra-specs,请为 nova flavor-list 命令指定 --extra-specs 选项。有关 extra_specs 值的更多信息,请参见修改风格规范。
在下面的示例中,输出中省略了 RXTX_Factor 和 Is_Public 列以节省空间。有关这些列的信息,请参见《OpenStack Command-Line Interface Reference》(《OpenStack 命令行界面参考》)。
$ nova flavor-list +----+-----------------------------+-----------+------+-----------+------+-------+ | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | +----+-----------------------------+-----------+------+-----------+------+-------+ | 1 | Oracle Solaris | | | | | | | | kernel zone - tiny | 2048 | 10 | 0 | | 1 | | 10 | Oracle Solaris | | | | | | | | non-global zone - xlarge | 16384 | 80 | 0 | | 32 | | 2 | Oracle Solaris | | | | | | | | kernel zone - small | 4096 | 20 | 0 | | 4 | | 3 | Oracle Solaris | | | | | | | | kernel zone - medium | 8192 | 40 | 0 | | 8 | | 4 | Oracle Solaris | | | | | | | | kernel zone - large | 16384 | 40 | 0 | | 16 | | 5 | Oracle Solaris | | | | | | | | kernel zone - xlarge | 32768 | 80 | 0 | | 32 | | 6 | Oracle Solaris | | | | | | | | non-global zone - tiny | 2048 | 10 | 0 | | 1 | | 7 | Oracle Solaris | | | | | | | | non-global zone - small | 3072 | 20 | 0 | | 4 | | 8 | Oracle Solaris | | | | | | | | non-global zone - medium | 4096 | 40 | 0 | | 8 | | 9 | Oracle Solaris | | | | | | | | non-global zone - large | 8192 | 40 | 0 | | 16 | +----+-----------------------------+-----------+------+-----------+------+-------+
以下命令显示有关指定风格的详细信息。第一个版本的命令指定风格名称,而第二个版本指定风格 ID。这两个命令的输出完全相同。
$ nova flavor-show 'Oracle Solaris kernel zone - large' $ nova flavor-show 4 +----------------------------+------------------------------------+ | Property | Value | +----------------------------+------------------------------------+ | name | Oracle Solaris kernel zone - large | | ram | 16384 | | OS-FLV-DISABLED:disabled | False | | vcpus | 16 | | extra_specs | {u'zonecfg:brand': u'solaris-kz'} | | swap | | | os-flavor-access:is_public | True | | rxtx_factor | 1.0 | | OS-FLV-EXT-DATA:ephemeral | 0 | | disk | 40 | | id | 4 | +----------------------------+------------------------------------+
要更改风格规范,请使用 flavor-key 子命令修改 extra_specs 值。
nova flavor-key flavor action key=value [key=value ...]
风格的名称或 ID。
set 或 unset
key 是规范的名称。value 是该规范的新值。如果 action 为 unset,则仅指定 key。
$ nova flavor-key 4 set zonecfg:bootargs=-v $ nova flavor-show 4 +----------------------------+------------------------------------------------+ | Property | Value | +----------------------------+------------------------------------------------+ | name | Oracle Solaris | | | kernel zone - large | | ram | 16384 | | OS-FLV-DISABLED:disabled | False | | vcpus | 16 | | extra_specs | {u'zonecfg:brand': | | | u'solaris-kz', u'zonecfg:bootargs': u'-v'} | | swap | | | os-flavor-access:is_public | True | | rxtx_factor | 1.0 | | OS-FLV-EXT-DATA:ephemeral | 0 | | disk | 40 | | id | 4 | +----------------------------+------------------------------------------------+
以下属性在内核区域和非全局区域都受支持:
zonecfg:bootargs
zonecfg:brand
zonecfg:hostid
以下属性仅在非全局区域中受支持:
zonecfg:file-mac-profile
zonecfg:fs-allowed
zonecfg:limitpriv
其他区域配置属性在 OpenStack 中不受支持。有关这些区域配置属性的信息,请参见 zonecfg(1M) 手册页。
$ nova flavor-key 4 set sc_profile=/system/volatile/profile/sc_profile.xml
nova flavor-key 命令仅允许您修改或添加 extra_specs 值。要修改现有风格的其他规范,例如 RAM 量,必须删除该风格并使用相同的名称创建修改后的风格。有关删除和创建风格的信息,请参见《OpenStack Admin User Guide》(《OpenStack 管理员用户指南》)。