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: from a virtual appliance that contains one or more preconfigured virtual machines, or from a template. Alternatively, you can also create virtual machines 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?”.
Virtual appliances are similar to templates in that you can use them to quickly create virtual machines. The primary difference between virtual appliances and templates is that virtual appliances are packages created as a single .ova (Open Virtualization Format Archive) file or a set of .ovf (Open Virutalization Format) and .img (disk image) files. Virtual appliances can contain one or more virtual machines and include the virtual disks and the inter-connectivity between the virtual machines.
In previous releases of Oracle VM, virtual appliances were referred to as assemblies.
In the Oracle VM Manager Web Interface, templates and virtual appliances are located on a different tab to virtual machines. However, all configuration files and disk images are stored in the same location, including the configuration files and disk images that Oracle VM Manager creates for new virtual machines or templates.
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.11, “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.
A virtual machine can be defined as a virtualized operating system with its associated software and applications. It runs in one of three virtualization modes, also named domain types:
Hardware virtualized (HVM): An unmodified guest operating system executes in complete isolation. Instructions are trapped and emulated at the hardware level (Intel® VT-x/VT-i and AMD-V™). This means that a guest can run without specific modifications to allow for virtualization.
Paravirtualized (PVM): A software interface similar but not identical to the underlying hardware is presented to the guest operating system. Paravirtualization provides hooks for guest instructions so that hardware related tasks such as access to network resources, blocks and underlying files can be handled by the management domain instead of the virtual machine, often significantly improving performance, particularly for 32-bit environments. Paravirtualization requires that the guest kernel has support for and loads the PVM drivers to be made aware of the virtual environment.
Hardware virtualized with paravirtualized drivers (PVHVM): Similar to HVM but with additional paravirtualized drivers that are capable of handling I/O related processes directly within the management domain to increase VM performance. This provides the advantages of paravirtualization to an otherwise hardware virtualized guest. This domain type is typically used to run Microsoft Windows™ guests with a limited performance penalty.
While not necessary to have a fully functional Oracle VM deployment, Oracle VM Guest Additions can be installed into you virtual machines to allow you to communicate directly with a virtual machine from Oracle VM Manager. The Oracle VM Guest Additions package installs a daemon that runs within the virtual machine and which listens for messages from Oracle VM Manager. By installing this package, Oracle VM Manager is able to provide information about the actual virtual machine's configuration, such as its configured IP address. Furthermore, it is possible to configure virtual machines as they are started by sending configuration information from Oracle VM Manager directly to the virtual machine, triggering configuration scripts that are able to use the data. This facility enables you to control behavior within a virtual machine as different events outside of the virtual machine trigger these scripts.
The Oracle VM Guest Additions, and the way in which configuration scripts can be used in conjunction with Oracle VM's messaging subsystem, are discussed in detail in the Oracle VM Administrator's Guide.