2.7 What are Virtual Machines?

The entire Oracle VM environment is designed for the purpose of running and deploying virtual machines. They are, therefore, a significant component within the Oracle VM architecture. Virtual machines offer different levels of support for virtualization at the level of the operating system, often affecting performance and the availability of particular functionalities afforded by system drivers. The different types of virtualization support are referred to as virtualization modes.

Virtual machine images and configuration data are usually stored within storage repositories on shared storage that is connected to all of the Oracle VM Servers in a server pool. If the server pool has been configured to take advantage of load balancing, the virtual machine can be started on any Oracle VM Server in the pool, because all of the files required to run it are available to all of the servers. Equally, in the case of failover, if a server in a clustered server pool should become unavailable, the virtual machine can be automatically restarted on another Oracle VM Server in the pool.

Virtual machines can be created from different types of resources: either from a template or assembly containing preconfigured virtual machines, or from scratch using an ISO file (image) of an installation DVD. Booting a virtual machine using PXE, or network boot for a paravirtualized guest, is also possible.

The creation of a virtual machine from template is based on cloning: the template is imported as an archive, unpacked and stored as a virtual machine configuration file with images of its disks, which are cloned to create a new instance in the form of a virtual machine. In the same way, an existing virtual machine can be cloned to create a new virtual machine, or cloned to create a new template. Cloning is discussed in further detail in Section 7.6, “How does Cloning Work?”.

Assemblies are often described as a template of a group of virtual machines, or a collection of multiple virtual machine templates. In actual fact, an assembly is a more recent format used by Oracle to publish Oracle VM templates. This means that an assembly is equally capable of containing a single virtual machine. In the Oracle VM Manager Web Interface, templates appear on a different tab to virtual machines of the storage repository, but their configuration files and disk images are stored in the same location as those of other virtual machines and templates. Assemblies are stored separately, but when a virtual machine or template is created, the resulting configuration files and disk images are stored in the same location.

Creating a virtual machine from a virtual DVD (image file, ISO) is different depending on the virtualization mode. For hardware virtualized guests the standard installer provided in the image is used, so no allowance for PV drivers is given. When creating a hardware virtualized guest, you can assign an ISO file located on a storage repository so that the new virtual machine immediately boots from the virtual DVD. Conversely, a PVM guest cannot simply boot from DVD since there is no virtual DVD device loaded at this stage, and uses an ISO file mounted remotely, accessing it via NFS, HTTP or FTP. The distinction here is that a hardware virtualized machine has an emulated BIOS, while a PVM guest does not.

Virtual machine resources are stored in storage repositories. The contents and structure of storage repositories is described in detail in Chapter 4, Understanding Repositories.

When a virtual machine is running, it can be accessed through a console, which allows it to be used as a regular operating system. For more information on the console, see Section 7.10, “Accessing the Virtual Machine Console”.

The next few sections provide an overview of many of the concepts specific to virtual machines. A more detailed look at virtual machines is covered later in Chapter 7, Understanding Virtual Machines.