One of the most important steps in mastering a new technology is learning the associated terminology or vocabulary. In the Information Technology (IT) field, this can be a very challenging step, as much of the terminology is often used inconsistently. This article defines many of the most commonly used terms in the virtualization vocabulary. These are considered core, high-level terms. These are straight forward, commonly accepted definitions.
Virtual Machine (VM)
A set of virtual hardware devices, including virtual CPU, virtual RAM, virtual I/O devices, and other virtual hardware devices. It resembles and behaves like a traditional, physical server and runs a traditional operating system (OS), such as Windows or Linux.
Many products and technologies today provide a platform on which VMs can be built and run. Although these technologies may have many fundamental differences, they tend to share these characteristics:
- Many VMs can run on each physical host concurrently.
- VMs running on the same host are isolated from one another.
- The OS installed on the VM is unaware that it is running in a VM.
- Administrators and users in one VM cannot access the underlying host OS or the guest OS of other VMs running on the same host.
A VM running a server OS such as a Windows Server or a Red Hat Enterprise Linux Server. A virtual server typically runs one server-based application.
A VM that is running a desktop OS such as Windows 7 or Red Hat Enterprise Desktop. A virtual desktop typically has one direct, concurrent user.
An object that represents the "gold standard" of a particular virtual server build or virtual desktop build, typically including a well-configured OS and applications. Administrators can quickly deploy new VMs by automatically copying the template to create the new VM.
VM Guest OS
The OS that runs in a VM.
Virtual Hardware Device (Virtual Device)
A software component that resembles and behaves like a specific hardware device. The guest OS and software applications in the VM behave as though the virtual hardware device is actually a physical hardware device. A VM is a set of virtual hardware devices that correspond to the set of devices found in traditional, physical servers, such as virtual CPUs, virtual RAM, virtual storage adapters, and virtual Ethernet adapters.
Virtual Network Interface Card (vNIC)
Software that resembles and behaves like a traditional Ethernet Adapter. It has a MAC address, and it receives and sends Ethernet packets.
Virtual SCSI Adapter
Software that resembles and behaves like a traditional SCSI adapter. It can generate SCSI commands and attach multiple virtual disks.
Virtual CPU (vCPU)
Software that resembles and behaves like a traditional, physical CPU. Depending on the underlying technology, vCPUs could be software-emulated or software-modified:
- Software Emulated - A process that resembles and behaves like a specific model of a physical CPU, which, in some cases, could be different than the model of underlying physical CPU in the host hardware.
- Software Modified - A process that provides a filtered, indirect connection to the underlying host CPU. Typically, the vCPU provides subsets of the instruction set and feature set that are available on the host CPU. The vCPU traps and modifies privileged commands but sends other commands directly to the hardware.
Resembles and behaves like a physical disk. It may be a file, a set of files, software, or some other entity, but to a VM, it appears to be a SCSI disk. For example, in Microsoft Hyper-V, virtual disks are referred to as VHD files with the file extension vhd.
Virtual Ethernet Switch (vSwitch)
Software that resembles and behaves like a physical Ethernet switch. It allows vNICS from multiple VMs to connect to virtual ports. It allows physical NICs to connect to virtual ports and serve as uplinks to the physical network. A vSwitch maintains a MAC address table and routes traffic to specific ports, rather than repeating traffic to all ports. It may include other features commonly found in physical Ethernet switches, such as VLANs.
A network provided by virtual switches. It may be an extension of a traditional network that is built on physical switches and VLANs, or it may be an isolated network formed strictly from virtual switches.
A collection of VMs, virtual networks and storage, and other virtual items that can deploy and run business applications, as an alternative to running applications directly on physical infrastructure. It allows IT personnel to install software applications in traditional OSs, such as Windows and Linux, without needing to know details of the underlying physical infrastructure. The OSs and applications run in VMs, in virtual networks, and on virtual storage.
Virtual Desktop Infrastructure (VDI)
A set of virtual desktops running on virtual infrastructure. VDI often involves detailed optimization at the physical infrastructure, virtual infrastructure, desktop OS, and application levels to allow close to native performance. VDI management software automatically brokers and connects users to their virtual desktops. VDI management software also automatically provisions virtual desktop pools from VM templates.
A complex system that provides a set of services to consumers, without requiring the consumer to understand any of the underlying complexities of the system. Although simple, this is a highly accepted definition of the term, even when used to describe non-IT clouds. For example, some people consider electricity, water, and cable television services to be provided by clouds.
Clouds provide some IT-based service, often utilizing virtual infrastructure. Businesses can use privately owned clouds, externally owned clouds, or both external and private clouds (hybrid clouds). Types of IT-based clouds include:
- Infrastructure as a Service (IaaS) - IaaS provides virtual infrastructure as a service where consumers can easily implement and utilize VMs without needing to understand, manage, or own the underlying physical infrastructure. Examples of public IaaS providers are Hosting.com (http://hosting.com) and RackSpace (http://rackspace.com)
- Software as a Service (SaaS) - SaaS provides software applications as a service where consumers can easily use applications without needing to understand, manage, or own the underlying server OSs, software applications, databases, or infrastructure. Examples of public SaaS are Google Apps (http://www.google.com/apps) and Salesforce CRM (http://www.salesforce.com/crm/).
- Platform as a Service (PaaS) - PaaS provides a software development platform as a service where consumers can easily build applications on a provided platform without any need to understand, manage, or own the underlying infrastructure. It allows developers to easily create applications that are easily portable. Examples of public PaaS are Microsoft Azure (http://www.windowsazure.com/en-us/) and Force.com (http://force.com).
A thin OS designed solely to provide virtualization. It drives physical hardware, executes VMs, and dynamically shares the underlying hardware with the associated virtual hardware. It is not intended to serve directly as a general-purpose OS, instead, it provides the platform on which VMs can run.
A software component that is aware that it is running in a VM. For example, a paravirtualized virtual device driver runs in a VM that communicates with the underlying host OS. Typically, a paravirtualized driver is optimized to share queues, buffers, or other data items with the underlying host OS to improve throughput and reduce latency.
For another example, Citrix XenServer runs paravirtualized OSs in VMs where the guest OS is modified to work very efficiently with the underlying hypervisor.
P2V (Physical to Virtual)
The migration of a traditional server, such as a specific Windows 2008 sever, from physical server hardware to a VM.
Typically refers to the action of copying one VM or VM template to create a new VM. During a clone operation, the VM files are typically copied, renamed, and modified to customize the new VM.
A point-in-time capture of the state of a VM. Snapshots allow the user to revert the VM to a previously captured state. A primary use is to undo changes that were made in a VM but are no longer wanted.
The movement of VMs from one resource to another, such as from host to host or datastore to datastore.
Live VM Migration
Live VM migrations occur while the VM is running.
Cold VM Migration
Cold VM migrations occur while the VM is shut down.
A state where a VM is competing for a scarce resource with other VMs or overhead processes. For example, if the memory capacity of a host is currently fully utilized, and some VMs attempt to demand more memory, then memory contention occurs and some VMs may begin to swap to disk.
Highly Available (HA)
A system or component that has some automatic protection in case of disruption. The protection may allow a small amount of unplanned downtime, but it will automatically correct the issue within a pre-determined time interval.
VM High Availability (VM HA)
Ensures that a VM is automatically made available, although the host on which it runs fails. VM HA may require an automatic reboot of the VM on another host.
A system or component that has automatic, state-full protection in case of failure. For example, some software applications are designed to replicate state to multiple servers and databases to provide a fault-tolerant application. The failure of a server does not result in any loss of state of the application or any disruption to the end user.
VM A VM that continues to run state-fully even if host hardware fails. This may be achieved by synchronizing the execution and state of multiple VMs running on multiple hosts.
A measurement, usually in percentages, by which the amount of provisioned virtual hardware is greater than the actual physical resources. For example, if a set of thin-provisioned virtual disks is configured for a total of 3 TB, but the datastore where they reside is only 2 TB, then the over-commitment is 150 percent.
Refers to a state where the actual, attempted resource usage exceeds the capacity of the actual hardware resources. For example, if a set of VMs stored in the same datastore generate more I/O than the underlying LUN can accommodate, then the datastore is over-committed.
VMs executed directly on a client system, such as the user's PC. Some virtualization products, such as VMware Workstation and Microsoft Virtual PC, are designed solely for running local VMs. Some VDI products allow virtual desktops to run remotely in the datacenter, but also allow the user to check and execute the virtual desktop locally on client systems.
A client device that has a very lean implementation of Windows or Linux and is mainly intended to allow the user to connect to a remote virtual desktop rather than to run applications natively.
A client device that is even leaner than a thin client. Typically, a zero client runs an embedded, proprietary OS and has no local disk. It is used to connect to remote virtual desktops.
Virtual Machine Manager (VMM)
Also called a virtual machine monitor, a process that controls the execution of a VM and brokers its use of virtual hardware with the underlying host. It notifies the host when the VM needs to access the physical resources.
CPU Hardware-Assisted Virtualization
These features are commonly provided on modern CPUs, allowing the host to offload some of the virtualization work to the CPU to improve performance.
- Intel-VT and AMD-V - These features provide hardware assist for the virtual CPUs by allowing the VMM to execute on the CPU at a level just below Ring 0, making its execution more efficient.
- Intel EPT and AMD-RVI - These features provide hardware assist for the virtual CPUs by allowing the translation of guest OS virtual memory pages to be cached on the CPU. These features improve the translation time and minimize the frequency in which the VM's guest OS must perform translations.
A packaged software application that runs in a virtualized, runtime environment, where the application perceives that it is natively installed. For example, a virtualized Windows-based application accesses a virtual Windows registry and virtual file system that are created at runtime by the runtime environment by overlaying modifications in the package on the native registry and file system.
A pre-built VM containing pre-installed software that can be easily implemented. Typically, the appliance is downloaded from a website as an OVF file, deployed into the virtual infrastructure, and easily configured using the console of the VM and a web browser. Most virtual appliances allow very simple implementation, relieving the customer of a complex installation and configuration.
Open VM Format (OVF)
A specification that can be used to export and import VMs from one virtual environment to another. Typically, virtual appliances are stored in the OVF format.
From the Global Knowledge white paper vTerminology: A Guide to Key Virtualization Terminology.