7.1. Version-Dependent Capabilities
The capabilities
element contains any number of version
elements which describe capabilities that are dependent on a compatiblity level.
The following representation shows capabilities specific to Red Hat Enterprise Virtualization Manager 3.0
and 2.2
respectively:
<capabilities>
<version major="3" minor="0">
...
</version>
<version major="2" minor="2">
...
</version>
...
</capabilities>
Each version
contains a series of capabilities dependent on the version specified. This includes:
The current
element signifies if the version
specified is the most recent supported compatibility level. The value is either a boolean true
or false
.
<capabilities>
<version major="3" minor="0">
...
<current>true</current>
...
</version>
</capabilities>
Each version
contains a list of compatible features
.
<capabilities>
<version major="3" minor="0">
...
<features>
<transparent_hugepages>true</transparent_hugepages>
</features>
...
</version>
</capabilities>
Each cluster is configured with a minimal CPU type that all hosts in that cluster must support. Guests running on hosts within the cluster all run on this CPU type, ensuring that every guest can be live migrated to any host within the cluster.
Red Hat Enterprise Virtualization has a set of supported CPU types to choose from when configuring a cluster. Each CPU has the following properties:
<capabilities>
<version major="3" minor="0">
...
<cpus>
<cpu id="Intel Xeon w/o XD/NX">
<level>2</level>
</cpu>
<cpu id="Intel Xeon">
<level>3</level>
</cpu>
...
</cpus>
...
</version>
</capabilities>
Red Hat Enterprise Virtualization platform provides a list of supported power_managers
for host fencing configuration. Each power_management
option contains the following properties:
<capabilities>
<version major="3" minor="0">
...
<power_managers>
<power_management type="alom">
<options>
<option type="bool" name="secure"/>
<option type="int" name="port"/>
</options>
</power_management>
<power_management type="apc">
<options>
<option type="bool" name="secure"/>
<option type="int" name="port"/>
<option type="int" name="slot"/>
</options>
</power_management>
<power_management type="bladecenter">
<options>
<option type="bool" name="secure"/>
<option type="int" name="port"/>
<option type="int" name="slot"/>
</options>
</power_management>
...
</power_managers>
...
</version>
</capabilities>
The fence_types
element defines fence_type
options to fence a troublesome host and reduce power usage.
<capabilities>
<version major="3" minor="0">
...
<fence_types>
<fence_type>manual</fence_type>
<fence_type>restart</fence_type>
<fence_type>start</fence_type>
<fence_type>stop</fence_type>
<fence_type>status</fence_type>
</fence_types>
...
</version>
</capabilities>
The storage_types
element defines the available physical storage_type
options.
<capabilities>
<version major="3" minor="0">
...
<storage_types>
<storage_type>iscsi</storage_type>
<storage_type>fcp</storage_type>
<storage_type>nfs</storage_type>
<storage_type>local</storage_type>
</storage_types>
...
</version>
</capabilities>
7.1.7. Storage Domain Types
The storage_domain_types
element shows the available storage_domain_type
options a user creates in a virtualization environment.
<capabilities>
<version major="3" minor="0">
...
<storage_domain_types>
<storage_domain_type>data</storage_domain_type>
<storage_domain_type>iso</storage_domain_type>
<storage_domain_type>export</storage_domain_type>
</storage_domain_types>
...
</version>
</capabilities>
7.1.8. Virtual Machine Types
The vm_types
element defines each virtual machine type (vm_type
) available for creation in a virtual environment.
<capabilities>
<version major="3" minor="0">
...
<vm_types>
<vm_type>desktop</vm_type>
<vm_type>server</vm_type>
</vm_types>
...
</version>
</capabilities>
Each virtual machine boots from a selected device. The boot_devices
element lists such boot_device
options.
<capabilities>
<version major="3" minor="0">
...
<boot_devices>
<boot_device>cdrom</boot_device>
<boot_device>hd</boot_device>
<boot_device>network</boot_device>
</boot_devices>
...
</version>
</capabilities>
Access to a virtual machine through Red Hat Enterprise Virtualization Manager requires a display protocol. The display_types
element lists each display_type
protocol.
<capabilities>
<version major="3" minor="0">
...
<display_types>
<display_type>vnc</display_type>
<display_type>spice</display_type>
</display_types>
...
</version>
</capabilities>
A virtual machine requires a network interface to connect to a network. The nic_types
element defines the supported NIC types available. Each nic_type
depends on the drivers available for different types of virtual machines. VirtIO drivers are available for Red Hat Enterprise Linux 4.8 and above, and for Windows virtual machines. Windows supports rtl8139 without the need for drivers. Other Linux machines, or earlier versions of Red Hat Enterprise Linux, use e1000 or rtl8139.
<capabilities>
<version major="3" minor="0">
...
<nic_types>
<nic_type>e1000</nic_type>
<nic_type>virtio</nic_type>
<nic_type>rtl8139</nic_type>
<nic_type>rtl8139_virtio</nic_type>
</nic_types>
...
</version>
</capabilities>
Each virtual machine requires a virtual disk for storage. The disk_types
element lists the available virtual disk_type
options.
<capabilities>
<version major="3" minor="0">
...
<disk_types>
<disk_type>data</disk_type>
<disk_type>shared</disk_type>
<disk_type>swap</disk_type>
<disk_type>system</disk_type>
<disk_type>temp</disk_type>
<disk_types
...
</version>
</capabilities>
The disk_interfaces
element lists disk_interface
options for emulated protocols to interface with virtual disks.
<capabilities>
<version major="3" minor="0">
...
<disk_interfaces>
<disk_interface>ide</disk_interface>
<disk_interface>scsi</disk_interface>
<disk_interface>virtio</disk_interface>
</disk_interfaces>
...
</version>
</capabilities>
7.1.15. Virtual Machine Affinities
Virtual machines migrate between hosts in a cluster. The vm_affinities
element defines each available migration affinity
for virtual machines.
<capabilities>
<version major="3" minor="0">
...
<vm_affinities>
<affinity>migratable</affinity>
<affinity>user_migratable</affinity>
<affinity>pinned</affinity>
</vm_affinities>
...
</version>
</capabilities>
7.1.16. Custom Properties
The custom_properties
element lists a set of environment variables for a virtual environment. The virtual environment uses these variables as parameters for event-triggered VDSM scripts. Each custom_property
includes attributes for a property name
and a regular expression (regexp
) to define the format of the property value.
<capabilities>
<version major="3" minor="0">
...
<custom_properties>
<custom_property name="sap_agent" regexp="^(true|false)$"/>
<custom_property name="sndbuf" regexp="^[0-9]+$"/>
<custom_property name="vhost"
regexp="^(([a-zA-Z0-9_]*):(true|false))(,(([a-zA-Z0-9_]*):(true|false)))*$"/>
<custom_property name="viodiskcache"
regexp="^(none|writeback|writethrough)$"/>
</custom_properties>
...
</version>
</capabilities>
The boot_protocol
element lists each possible IP assignment boot_protocol
for hosts when booting.
<capabilities>
<version major="3" minor="0">
...
<boot_protocols>
<boot_protocol>dhcp</boot_protocol>
<boot_protocol>static</boot_protocol>
</boot_protocols>
...
</version>
</capabilities>
A Red Hat Enterprise Virtualization Manager determines whether to migrate virtual machines on a non-operational host using one of the on_error
options the in the error_handling
element.
<capabilities>
<version major="3" minor="0">
...
<error_handling>
<on_error>migrate</on_error>
<on_error>do_not_migrate</on_error>
<on_error>migrate_highly_available</on_error>
</error_handling>
...
</version>
</capabilities>