An Introduction to Virtualization
From openSUSE
Virtualization software allows you to abstract your software servers from the physical hardware server. With server farms becoming more the norm, having 100's of entry level servers, many companies are looking at using more powerful servers that host multiple virtual servers. It should be noted that virtual software can be very helpful on the desktop for development and testing of programs. We will concentrate on server based software and solutions for this discussion.
For discussion purposes, assume that the actual servers have 1Ghz processor, 1GB of memory, and a 100GB hard disk.
For discussion purposes, assume that the host server has a 3Ghz processor, 3GB of memory, and a 300GB hard disk.
Your first thought might be "isn't the Actual Server setup faster?". Yes and no. Virtual machines (VM) are great at doing resource allocation. For instance, what if Actual Server 1 & 2 are running at 20% capacity and Actual Server 3 is running at 98% capacity? Wouldn't it be great to give some of the wasted resources of server one and two to server three? With virtualization, you can do that. You could setup VM 1 and 2 to have 512 mb memory and using a smaller part of the hard drive, while VM 2 is using 1.5 GB memory and more hard disk space. The virtual host will automatically allocate processor resources as they are available across all the VMs. The Actual Server 3 is starving for resources, but in the VM Server environment, the third VM is running along with only using 60% of capacity.
Virtual servers are are not only used for resource management. That is probably the biggest advantage to companies with server farms. But small to medium size companies often use virtualization to save space. Specifically, why have 4 computers running different server software for different purposes, when you can run just one? For instance, a small company might need a general server (Windows Server 2003), a web server (openSuse Linux located in the DMZ), a DB server for the accounting department (Oracle on 64bit Red Hat Linux), and a utility DB (MySQL on openSuse Linux). Three different operating system running 4 different kinds of servers. Resource allocation will benefit here too, but the primary benefit is not having a small server farm and still having the flexibility to run the server OS that best fits the programs needs.
There are currently 4 major server virtualization software products available on the market today. The commercial and free products from VMware currently dominates the market. The open source community has not been sitting idlely by. Both XenSource and OpenVZ are considered mission critical ready and are deployed all over world. Micorsoft has also entered the market with MS Virtual Server. This being a Linux site, we will be focusing our discussion on the three that allow you to deploy a virtual server on Linux: VMware, Xen, and OpenVZ.
Virtualization Terminology
- Virtual machine server or VM Server refers to a physical computer running software that hosts, creates, and controls virtual machines. It is sometimes referred to as a host, domain 0, dom0, or privileged domain. Much like the concept of a Web Server, the term VM Server may be used to refer to the computer/software combination or just the software.
- Virtual machine refers to an instance of virtual hardware and the operating system that runs on that instance of virtual hardware. A virtual machine could be running any type of software, such as server, client, or desktop. It is often called a virtual computer, guest, domain U, domU, or unprivileged domain.
- VT processor refers to a processor that supports virtualization technology, such as Intel VT or AMD Virtualization. Some VM Server software require VT capable processors to function or require them in certain modes of operation.
Virtual Machine Modes
There are three primary VM modes: Full Virtualization, Paravirtualization, and Virtual Private Servers.
- Fully virtual: Complete emulation of all hardware devices. Although it requires special computer hardware, most operating systems can run in fully virtual mode because the VMM emulates all computer devices to fool the operating system into thinking it has exclusive access to an entire computer. This complete emulation of computer hardware demands more CPU resources from the VM Server. As a result, an operating system running in full virtualization mode runs slower.
- Paravirtual: Selective emulation of hardware devices. A paravirtualized operating system can run in paravirtual mode, which does not require complete emulation and therefore requires less management overhead. For example, VM-aware operating systems do not require an emulated graphics card, so the VM Server does not need to emulate video data. As a result, an operating system running in paravirtual mode demands fewer CPU resources and has better performance. It also requires no special computer hardware. The host and virtual OSs need to be of the same kernel version and type (32bit or 64bit).
- Virtual Private Servers: Also referred to as Virtual Environments (VE), offers the least flexibility in the choice of operating system: both the guest and host OSes must be Linux (although Linux distributions can be different in different VPS). There really are no VMs using this method, but more of a virtual wall between application maintained by the OS. This operating system-level virtualization provides better performance, scalability, density, dynamic resource management, and ease of administration than Full and Para virtualization.
External Links
This page is part of:
- An Introduction to Virtualization
- OpenVZ Virtual Machine Overview
- VMware Virtual Machine Overview
- Xen Virtual Machine Overview
- VirtualBox Virtual Machine Overview
Passed QA check: Fsundermeyer 13:24, 15 June 2009 (UTC)



