Virtual hardware templates are called "flavors" in OpenStack, defining sizes for RAM,
disk, number of cores, and so on. The default install provides five flavors. These are
configurable by admin users (the rights may also be delegated to other users by
redefining the access controls for compute_extension:flavormanage
in
/etc/nova/policy.json
on the nova-api
server). To get the
list of available flavors on your system, run:
$ nova flavor-list +----+-----------+-----------+------+-----------+\+-------+-\+-------------+ | ID | Name | Memory_MB | Disk | Ephemeral |/| VCPUs | /| extra_specs | +----+-----------+-----------+------+-----------+\+-------+-\+-------------+ | 1 | m1.tiny | 512 | 1 | 0 |/| 1 | /| {} | | 2 | m1.small | 2048 | 10 | 20 |\| 1 | \| {} | | 3 | m1.medium | 4096 | 10 | 40 |/| 2 | /| {} | | 4 | m1.large | 8192 | 10 | 80 |\| 4 | \| {} | | 5 | m1.xlarge | 16384 | 10 | 160 |/| 8 | /| {} | +----+-----------+-----------+------+-----------+\+-------+-\+-------------+
The nova flavor-create
command allows authorized users to create new flavors. Additional flavor manipulation commands can be shown with the command:
$ nova help | grep flavor
Flavors define a number of parameters, resulting in the
user having a choice of what type of virtual machine to run—just
like they would have if they were purchasing a physical server.
The table lists the elements that can be set. Note
in particular extra_specs
, which can be used to
define free-form characteristics, giving a lot of flexibility beyond
just the size of RAM, CPU, and Disk.
Column |
Description |
ID |
A unique numeric ID. |
Name |
A descriptive name, such as xx.size_name, is conventional but not required, though some third-party tools may rely on it. |
Memory_MB |
Virtual machine memory in megabytes. |
Disk |
Virtual root disk size in gigabytes. This is an ephemeral disk the base image is copied into. You don't use it when you boot from a persistent volume. The "0" size is a special case that uses the native base image size as the size of the ephemeral root volume. |
Ephemeral |
Specifies the size of a secondary ephemeral data disk. This is an empty, unformatted disk and exists only for the life of the instance. |
Swap |
Optional swap space allocation for the instance. |
VCPUs |
Number of virtual CPUs presented to the instance. |
RXTX_Factor |
Optional property that allows created servers to have a different bandwidth cap from that defined in the network they are attached to. This factor is multiplied by the rxtx_base property of the network. Default value is 1.0 (that is, the same as the attached network). |
Is_Public |
Boolean value that indicates whether the flavor is available to all users or private. Private flavors do not get the current tenant assigned to them. Defaults to True. |
extra_specs |
Additional optional restrictions on which compute nodes the flavor can run on. This is implemented as key-value pairs that must match against the corresponding key-value pairs on compute nodes. Can be used to implement things like special resources (such as flavors that can run only on compute nodes with GPU hardware). |