Simply installing processors with virtualization extensions does not always guarantee optimum performance or best host server stability; you must enable a variety of BIOS settings to manage details of the processors' virtualization behavior. The options allow IT professionals to configure host platforms to use virtualization features that best support the computing needs of virtual machines and to disable unneeded features to ensure stability. Let's consider some of the most common virtualization options found in server BIOS.
BIOS settings allow technicians to enable or disable the processors' virtualization extensions. You should never assume that processors such as Intel VT or AMD-V's capabilities are enabled by default. Motherboards like Intel's S2600GZ/GL server board disable Intel VT by default, and the option to enable virtualization extensions is only available if all of the installed processors support virtualization extensions. With the option disabled, the server will continue to run in the traditional nonvirtualized mode (one server; one workload). Remember that changing this option is a major change to the hardware, and you may need to power cycle the server before the change takes effect.
Enable I/O virtualization
While ordinary virtualization extensions allow the virtualization of processor and memory resources, additional virtualization features are typically needed to virtualize I/O activities such as DMA transfers and device interrupts. By virtualizing I/O resources, the server can potentially improve the way the I/O resources are secured and allocated to virtual machines (VMs). Intel calls these I/O virtualization extensions VT-d. I/O virtualization is also a part of AMD-V extensions.
Since some I/O devices or subsystems do not fully support I/O virtualization, the BIOS may disable this feature -- and typically does by default to ensure the best system stability and device interoperability. However, if every server component or subsystem is capable of supporting virtualized I/O, a technician can enable I/O virtualization such as Intel VT for Directed I/O. This option normally appears underneath the overall virtualization setting and is only available if all of the processors support virtualization extensions.
Enable interrupt remapping
I/O virtualization changes the way I/O resources are assigned to workloads. When I/O virtualization is enabled, the system's interrupt table is abstracted before being reported to the hypervisor. This allows more flexibility and control over the way system interrupts are allocated and dealt with at the hardware level. Interrupt remapping is often enabled by default once I/O virtualization is enabled, but you should specifically verify that the interrupt remapping feature is available and active. In some cases, interrupt remapping may be forced on, and you may have to disable this feature by disabling I/O virtualization entirely.
Enable coherency support
Coherency essentially means consistency -- the idea that the same settings and attributes are used the same way between different processors or other devices. I/O virtualization does not require coherency, but system stability can be enhanced by using coherency. However, the extra work needed to maintain coherency may lower server performance slightly. This is why coherency settings are often disabled by default. If coherency is enabled, be sure to consider the effects on system performance.
Enable address translation services
Address translation services (ATS) allows the virtualized system to remap direct memory access (DMA) requests to memory and handle DMA data transfers in very granular page sizes such as 4 KB. With I/O virtualization enabled, ATS is often enabled by default. If not, you can enable ATS, allowing the virtualized server and hypervisor to exercise better control over DMA transfers to and from memory without the processor intervening directly. This boosts system flexibility, but may add some latency due to translation activities.
Enable pass-through DMA
DMA is primarily used to allow external devices, such as PCIe network interface cards, to access the server's memory without using a processor to move the data. When I/O is virtualized, direct memory access activity can also be virtualized, allowing VMs to directly exchange data with external devices without the intervention of a processor. The feature is typically enabled by default, but it is important for the motherboard chipset, BIOS and all external devices to fully support I/O virtualization before enabling this type of feature.
Modern servers do a good job of detecting and configuring hardware automatically, and BIOS settings are usually a good mix of stability and performance. Even so, IT professionals can ensure top performance by verifying and enabling I/O virtualization on the server hardware when all server components support it.
Remember to always benchmark a server before making any changes, and approach every change to server BIOS setup methodically; change only one setting at a time and be sure to re-benchmark the system after each change to gauge performance. Thorough testing under load in a lab environment will verify the system's stability before rolling out changes to a production environment.