Bookmark this page

Chapter 8. Adapting to Virtualization Improvements

Abstract

Goal Describe the new features and management tools for virtualization management.
Objective
  • Describe the new capabilities introduced in the new Q35 emulation.

Sections Configuring Virtual Machines (and Guided Exercise)
Lab Adapting to Virtualization Improvements

Configuring Virtual Machines

Objectives

After completing this section, students should be able to describe the new capabilities introduced in the new Q35 emulation.

Updated QEMU Emulation

The Kernel-based Virtual Machine (KVM) kernel module and the QEMU emulator are the basis of virtualization in Red Hat Enterprise Linux 8. In this release, QEMU can now emulate the Intel Q35 motherboard chipset, which offers a better hardware platform for modern virtualized operating systems.

New Q35 Virtual Machine Type

  • In addition to the previous Intel 440FX machine type, QEMU now emulates the Intel Q35 chipset and features.

  • Q35 chipset emulation provides more current hardware devices than previously available.

  • Q35 provides a PCI Express bus and supports secure boot.

  • Q35 supports PCI Express pass-through and simplifies physical to virtual (p2v) migrations.

QEMU now emulates the Intel Q35 chipset and its associated Intel ICH9 (I/O controller hub) chipset.

The previous chipset provided only PCI ports (which are difficult to map to physical PCI-E ports), but the ICH9 chipset provides a PCI Express (PCI-E) bus. This supports PCI-E pass-through by directly mapping a PCI-E port inside the virtual machine to a PCI-E port on the host system.

Select the chipset to emulate when creating the virtual machine. If using the web console, virt-install, or virt-manager, the tool automatically chooses the Q35 chipset when a recent, supported operating system is selected.

Note

The web console replaces virt-manager, which is deprecated. Red Hat recommends the web console for virtual machine management. In a subsequent release, virt-manager will be removed.

For RHEL 7, RHEL 8, Microsoft Windows 2016, and Microsoft Windows 10 virtual machines, QEMU emulates the Q35 chipset. For RHEL 6 virtual machines, QEMU emulates the Intel 440FX chipset. The following screen capture shows the selection of the operating system in the web console.

Figure 8.1: Operating system selection in the web console

When you import a virtual machine from a system with an older version of QEMU, you may have to force the previous Intel 440FX chipset emulation. This is because the virtualized operating system already uses drivers for that chipset. If you choose the Q35 chipset emulation, which presents a new hardware model, the virtualized operating system may not have the appropriate drivers installed to use the emulated hardware.

You get the chipset emulation that a virtual machine uses in its XML file definition, in the os section. The following example shows a virtual machine using the new Q35 chipset emulation.

[user@demo ~]$ virsh dumpxml webserver1
<domain type='kvm' id='5'>
  <name>webserver1</name>
  <uuid>f6fbe32f-ef6c-4d8a-8db0-96551c82444b</uuid>
  <metadata>
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
      <libosinfo:os id="http://redhat.com/rhel/8.0"/>
    </libosinfo:libosinfo>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-rhel7.6.0'>hvm</type>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
  </os>
...output omitted...

The following example shows a virtual machine using the old Intel 440FX chipset emulation.

[user@demo ~]$ virsh dumpxml myrhel6
<domain type='kvm' id='7'>
  <name>myrhel6</name>
  <uuid>51ffc808-d3d0-4220-adc9-32adea33d218</uuid>
  <metadata>
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
      <libosinfo:os id="http://redhat.com/rhel/5.0"/>
    </libosinfo:libosinfo>
  </metadata>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.6.0'>hvm</type>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
  </os>
...output omitted...

List the supported chipset emulations with the virsh capabilities command.

[user@demo ~]# virsh capabilities
  <guest>
    <os_type>hvm</os_type>
    <arch name='x86_64'>
      <wordsize>64</wordsize>
      <emulator>/usr/libexec/qemu-kvm</emulator>
      <machine maxCpus='240'>pc-i440fx-rhel7.6.0</machine>
      <machine canonical='pc-i440fx-rhel7.6.0' maxCpus='240'>pc</machine>
      <machine maxCpus='240'>pc-i440fx-rhel7.0.0</machine>
      <machine maxCpus='384'>pc-q35-rhel7.6.0</machine>
      <machine canonical='pc-q35-rhel7.6.0' maxCpus='384'>q35</machine>
...output omitted...

The previous output from a RHEL 8 system shows that QEMU supports both the Q35 and the Intel 440FX chipset emulation. The pc machine type is an alias for the i440FX emulation, and the q35 machine type is an alias for the Q35 emulation.

Figure 8.2: Virtualization overview

Virtual Machine Management in the Web Console

  • The web console in RHEL 8 offers basic functionality for administering virtual machines. Install the cockpit-machines package to enable the web console component for managing virtual machines.

  • For more advanced configurations, use the Libvirt tools such as virsh or virt-install.

  • The virt-manager graphical interface is still available but deprecated, and will be removed in a subsequent release.

RHEL Virtualization Available as a Module

  • For convenience, you can install the virtualization software using the new yum module command.

  • The virt Yum module has one stream called rhel and a single default profile.

  • A separate virt stream will be shipped in another repository for layered products such as Red Hat Virtualization (RHV), which are able to receive major updates on a different cadence than RHEL major releases usually allow.

  • You can also install the virtualization packages individually using traditional yum commands.

The virt Yum module has one stream called rhel and a single default profile.

[user@demo ~]$ yum module list
Name          Stream           Profiles            Summary
virt          rhel [d][e]      common [d]          Virtualization module
...output omitted...

SCSI-3 Persistent Reservations with Virtio-SCSI

Supporting SCSI-3 Persistent Reservations with Virtio-SCSI

  • On Red Hat Enterprise Linux 8, both QEMU and Libvirt support SCSI-3 persistent reservations on storage-devices presented to VMs through Virtio-SCSI backed by direct-attached LUNs.

  • Virtual machines can share Virtio-SCSI storage devices and use SCSI-3 PRs to control access.

  • Storage devices managed with device-mapper-multipath can be passed through to VMs to use SCSI-3 PRs, and the host manages PR actions across all paths.

References

For more information on virtualization, refer to the Configuring and managing virtualization guide at https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/

For more information on SCSI-3 Persistent Reservations, refer to the How can I view, create, and remove SCSI persistent reservations and keys? article at https://access.redhat.com/solutions/43402

Revision: rh354-8.0-0e36520