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. Table 10.1, “Flavor parameters” 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.
Table 10.1. Flavor parameters
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). |
How Do I Modify an Existing Flavor?
The OpenStack dashboard simulates the ability to modify a flavor
by deleting an existing flavor and creating a new one with the same
name.