Chapter 7 Understanding Virtual Machines

The purpose of Oracle VM is to provide an infrastructure that virtual machines are able to run on, and which is easy to manage, configure and maintain. In this chapter we explore the different types of virtual machines that are supported; how virtual machines work within an Oracle VM environment; how virtual machines can be created, moved and migrated; and how to provision resources for a virtual machine.

The terms domain, guest and virtual machine are often used interchangeably, but they have subtle differences. A domain is a configurable set of resources, including memory, virtual CPUs, network devices and disk devices, in which virtual machines run. A domain is granted virtual resources and can be started, stopped and restarted independently of other domains and of the host server itself. A guest is a virtualized operating system running within a domain. A guest operating system may be paravirtualized, hardware virtualized, or hardware virtualized with paravirtualized drivers. A description of these different virtualization modes is provided in Section 7.1, “What are Virtualization Modes or Domain Types?”.

Multiple guests can run on the same Oracle VM Server. A virtual machine is a guest operating system and its associated application software. For the sake of simplicity, we use the term virtual machine to encompass domain, guest and virtual machine. They are synonymous with each other and may be used interchangeably.

An operating system installed in a virtual machine is known as a guest operating system. Oracle VM supports a variety of guest operating systems including Linux, Oracle Solaris and Microsoft Windows™. For a list of the supported guest operating systems, see the Oracle VM Release Notes. Guest operating system installation is described in Section 7.2, “How is a Guest OS Installed on a Virtual Machine?”.

You can use Oracle VM Manager to create virtual machines using:

  • ISO files in a repository (hardware virtualized only).

  • Mounted ISO files on an NFS, HTTP or FTP server (paravirtualized only).

  • Virtual machine templates (by cloning a template).

  • Existing virtual machine (by cloning the virtual machine).

  • Virtual machine assemblies.

Virtual machines require most of these installation resources to be in a storage repository, managed by Oracle VM Manager, with the exception of mounted ISO files for paravirtualized guests. See Section 7.3, “Where are Virtual Machine Resources Stored?” for information on how these resources are stored within a repository.

When you create a virtual machine that requires network connectivity, or a paravirtualized machine which requires network connectivity to perform the operating system install, you generate some virtual network interfaces that can be bridged to a network defined on the Oracle VM Server. More information on provisioning networking for your virtual machines is provided in Section 7.4, “What Networking is Available for Virtual Machines?”.

In cases where you require multiple virtual machines that are identical in make up, you might consider cloning a virtual machine or template. This process is described in more detail in Section 7.6, “How does Cloning Work?”. Equally, you may need to move a virtual machine from one server or server pool to another, this process is known as migration and is discussed in Section 7.7, “How Can a Virtual Machine be Moved or Migrated?”

Oracle VM provides a messaging facility that allows messages to be sent backwards and forwards between Oracle VM Manager and a guest operating system. This makes it possible to automate configuration actions when a virtual machine boots, to obtain information about the internal status of a virtual machine, and to trigger events within a virtual machine based on changes within the Oracle VM environment. This messaging facility is described in some detail in Section 7.9, “Sending Messages to Virtual Machines”.

In some cases, usually due to software licensing requirements, you may require that virtual machines are hard partitioned using CPU pinning. This feature allows you to pin a virtual machine to a specific physical CPU to prevent it from running on alternate systems. This is an advanced feature and is described in Section 7.14, “Setting Hard Partitioning for Virtual Machine CPUs”.