Paravirtualization allows multiple operating systems to run on hardware at the same time by making more efficient use of system resources, such as processors and memory, through effective resource sharing. Unlike full virtualization where a whole system is emulated (BIOS, disk, processor, NIC, etc.), the paravirtualization's management module (a hypervisor or virtual machine monitor) operates with an operating system that has been modified to work in a virtual machine.
The abstraction created with paravirtualization generally means operating systems will perform better than a full virtualization model where all elements must be emulated. However, this efficiency does come at the cost of flexibility and security. Flexibility is lost because the operating system must be modified to run with the paravirtualization, which means that a particular OS or distribution may not be readily available for the solution. For example, Red Hat Linux, Enterprise Linux or Windows Server may not be available as a guest OS for the particular solution. Some security is lost as the guest OS has much closer control of the underlying hardware, slightly increasing the risk of impacting the lower hardware level, which could lead to impacting all guest systems on the host.
Besides better performance, paravirtualization's efficiencies can also lead to better scaling. If a fully virtualized solution requires 10% processor utilization per guest instance per processor, then the fully virtualized solution would suggest that placing six guest OSes per processor would likely starve the equivalent of one guest OS whenever all six guest systems are busy and each requiring 10% CPU in addition to their overhead.
A paravirtualization requiring only two percent processor utilization per guest instance per processor could provide eight guest instances and still have the 10% per guest OS available. The following table summarizes this simplified example.
|Guest instances||Virtualization overhead||System processing needs||Total|
|Full virtualization||5||10% (50% total)||10% (50% total)||100%|
|Paravirtualization||8||2% (16% total)||10% (80% total)||96%|
These efficiencies will ensure future customer demand. The technology will, with time, also ensure virtualization is available to smaller operations since it will scale better on smaller systems.
Red Hat's support of the technology will ensure that it is available to both small shops and large data center environments. Red Hat is backing paravirtualization technology, and plans to support paravirtualization natively as part of Red Hat Enterprise Linux 5 using the Xen product.
When and where to use paravirtualization
Although better resource utilization is what gets virtualization into many shops, many administrators quickly realize that there are many more uses for the technology, especially in the area of system builds and disaster recovery. Here are several applications of the technology you may wish to consider:
- Development, test, production methodology – For environments that cannot separate development from test systems, the paravirtualization can provide partitioning to contain the environments from each other.
- Disaster recovery – Although often promised but seldom gained, many environments plan on using development and test systems in the case of a disaster scenario. This has seldom been practiced, or practiced efficiently due to impact to development cycles, challenges in moving data around, risks associated with migrating data and so on. Many solutions have made moving systems an automated task, especially for Web and light weight application servers. Disaster recover can be as simple as moving a guest instance until hardware can be repaired.
- Migrations – Migrations to new or other systems become faster and much easier. Migrations are effectively decoupled from the underlying hardware.
- Capacity management – Due to the ease of migrations, better capacity management based upon resource capability and resource availability can be executed. For example, a batch oriented system that is very heavily utilized at night, will lend itself well to an interactive application server that is used at night that would previously not be placed on the same server due to incompatibility of application or database interfaces.
Paravirtualization product considerations
As is true of all virtualization technology, the design and stability of the management tools determines how well the virtualization works and how well the particular solution is accepted and utilized. Things to consider when selecting a paravirtualization product are operating system support, system and/or data migration tools, hierarchical management interfaces, system monitoring and hypervisor stability.
As mentioned earlier, the OS must be supported on the particular paravirtualizaiton, since OS modifications must be made. Migration tools range from very simple tools that shut down the system and move the system image to where you need it, to enterprise level tools that easily move systems from hardware to hardware. The hierarchical management tool and monitoring tools will ideally match the migration tool and present the systems in a similar fashion (system, enterprise, interface, etc.)
The hypervisor is critical in the functioning of all guest OSes, therefore, its stability and ease of management must stay out of the way, since impact to the hypervisor can impact all systems.
About the author: Ronald McCarty is a freelance writer and consultant specializing in systems, network, and information security. He received his bachelor's degree in Computer and Information Systems at the University of Maryland's international campus at Schwaebisch Gmuend, Germany and his master's degree in Management with a specialization in information technology at Capella University. Ron's company, Your Net Guard offers IT consulting and integration services in the Dallas/Forth Worth area. He can be reached at firstname.lastname@example.org.