Support for processing units

A flavor is an OpenStack construct that is used to describe virtual hardware configurations for virtual servers.

By separating hardware configuration from an image:
  • Administrators have the flexibility to assign various sizes to an instance at deployment time.
  • Administrators can deploy multiple virtual machines from one image. They do not need permutations of the image that specifies the processor, memory or disk size.
OpenStack flavors currently contain the following customizable attributes:
  • Number of virtual processors.
  • Amount of RAM.
  • Ephemeral storage disk size.

These attributes are sufficient for the x86 hypervisors that are currently supported by OpenStack, but PowerVC also requires processing units. Processing units is a unit of measure for shared processing power across one or more virtual processors; more can be read about this technology shared processor in the IBM® Power Systems Hardware IBM Knowledge Center. Processing units is a necessary input to PowerVC when you try to create a virtual machine. As such, OpenStack flavors were extended to contain an attribute for processing. This attribute is used by both the EGO placement engine (to determine a suitable host) and the PowerVC compute driver (to create the virtual machine).

Processing units are passed by using the extra_specs extension. Here is an example in JSON:
"flavor":  {
               "ram": 400,
               "vcpus": 1,
               "disk": 1,
               "extra_specs": {
                   "powervm:proc_units" : 0.5
                }
}