A virtual machine (VM) 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™), providing limited overhead for guest modifications.
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, significantly improving performance. As a result, PVM offers superior performance to its HVM counterpart. 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.
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 VM via PXE, or network boot for a PVM guest, is also possible.
The creation of a VM from template is based on cloning: the template is imported as an archive, unpacked and stored as a VM configuration file with images of its disks, which are cloned to create a new instance in the form of a VM. In the same way, an existing VM can be cloned to create a new VM, and to a new template as well. Cloning is discussed in further detail in Section 7.9, “Cloning a Virtual Machine or Template”.
Assemblies can be described as a template of a group of virtual machines, or a collection of multiple VM templates. In the Oracle VM Manager user interface, templates and assemblies appear in different tabs of the storage repository, but their VM configuration files and disk images are stored in the same location as those of other virtual machines and templates.
Creating a VM from a virtual DVD (image file, ISO) is different depending on the virtualization mode. With HVM the standard installer provided in the image is used, so no allowance for PV drivers is given. To allow the installer to be modified on the fly the image must be expanded and then the Oracle VM Server can cause the PV drivers to be used. When creating an HVM guest, you can assign an ISO file located on a storage repository so that the new VM immediately boots from the virtual DVD. Conversely, a PVM guest cannot simply boot from DVD out of nothing, and uses an ISO file mounted remotely, accessing it via NFS, HTTP or FTP.
As mentioned in this section and in Section 2.6, “Storage”, virtual machine resources are stored in storage repositories. The contents and structure of storage repositories is described in detail in Section 7.5, “Virtual Machine Resources”.
Once a VM is running, it can be accessed through a VNC console, which allows it to be used as a regular pc. All operations on the VM are executed through Oracle VM Manager, as described in Section 7.10, “Managing Virtual Machines”.