Hypervisors, virtualization, and the cloud: Learn about hypervisors, system virtualization, and how it works in a cloud environment

Learn about hypervisor types and system virtualization, and how to determine which hypervisor meets your needs. Virtualization, which involves a shift in thinking from physical to logical, improves IT resource utilization by treating your company's physical resources as pools from which virtual resources can be dynamically allocated. Using virtualization in your environment, you are able to consolidate resources such as processors, storage, and networks into a virtual environment. System virtualization creates many virtual systems within a single physical system; virtual systems are independent operating environments that use virtual resources. System virtualization is most commonly implemented with hypervisor technology; hypervisors are software or firmware components that are able to virtualize system resources.

In this series, the author provides a round-up look at the features, deployment processes, and VM management issues for five hypervisors that help establish system virtualization within the cloud — PowerVM™, VMware ESX Server, Xen, KVM, and z/VM®.

Bhanu P Tholeti (btholeti@in.ibm.com), Systems Engineer and Architect, IBM

Bhanuprakash has worked in the software industry for the past 10 years on various technologies and products such as application development for Pocket PCs, web-based applications, video streaming solutions, and products like Tivoli Workload Scheduler, WebSphere Data Interchange, Tivoli Service Automation Manager, and Tivoli Provisioning Manager. He is part of IBM SmartCloud Enterprise+, working on cloud infrastructures and hypervisors.



23 September 2011

Also available in Chinese Russian Japanese

Virtualization improves IT resource utilization by treating your company's physical resources as pools from which virtual resources can be dynamically allocated.

About this series

This series starts with a background on hypervisor types and system virtualization, and then describes the features of five hypervisors, their deployment processes, and the management issues you might encounter.

Use this series as a simple starting point for understanding the hypervisor's role in virtualization in the cloud or explore the individual articles to help you determine which hypervisor is best suited for your cloud needs.

Virtualization involves a shift in thinking from physical to logical, treating IT resources as logical resources rather than separate physical resources. Using virtualization in your environment, you are able to consolidate resources such as processors, storage, and networks into a virtual environment which provides the following benefits:

  • Consolidation to reduce hardware cost.
  • Optimization of workloads.
  • IT flexibility and responsiveness.

Virtualization is the creation of flexible substitutes for actual resources — substitutes that have the same functions and external interfaces as their actual counterparts but that differ in attributes such as size, performance, and cost. These substitutes are called virtual resources; their users are typically unaware of the substitution.

Virtualization is commonly applied to physical hardware resources by combining multiple physical resources into shared pools from which users receive virtual resources. With virtualization, you can make one physical resource look like multiple virtual resources.

Furthermore, virtual resources can have functions or features that are not available in their underlying physical resources.

System virtualization creates many virtual systems within a single physical system. Virtual systems are independent operating environments that use virtual resources. Virtual systems running on IBM® systems are often referred to as logical partitions or virtual machines. System virtualization is most commonly implemented with hypervisor technology.

Hypervisors are software or firmware components that can virtualize system resources

Figure 1. Virtualization, a shift in thinking from the physical to the logical
Virtualization shifts thinking from physical to logical domains

Now let's look at the types of hypervisors.

Hypervisors in general

There are two types of hypervisors:

  • Type 1 hypervisor
  • Type 2 hypervisor

Type 1 hypervisors run directly on the system hardware. Type 2 hypervisors run on a host operating system that provides virtualization services, such as I/O device support and memory management. Figure 2 shows how type 1 and type 2 hypervisors differ.

Figure 2. Differences between type 1 and 2 hypervisors
Differences between type 1 and 2 hypervisors

The hypervisors described in this series are supported by various hardware platforms and in various cloud environments:

  • PowerVM: A feature of IBM POWER5, POWER6, and POWER7 servers, support provided for it on IBM i, AIX®, and Linux®.
  • VMware ESX Server: A "bare metal" embedded hypervisor, VMware ESX's enterprise software hypervisors run directly on server hardware without requiring an additional underlying operating system.
  • Xen: A virtual-machine monitor for IA-32, x86-64, Itanium, and ARM architectures, Xen allows several guest operating systems to execute on the same computer hardware concurrently. Xen systems have a structure with the Xen hypervisor as the lowest and most privileged layer.
  • KVM: A virtualization infrastructure for the Linux kernel, KVM supports native virtualization on processors with hardware virtualization extensions. Originally, it supported x86 processors, but now supports a wide variety of processors and guest operating systems including many variations of Linux, BSD, Solaris, Windows®, Haiku, ReactOS, and the AROS Research Operating System (there's even a modified version of qemu that can use KVM to run Mac OS X).
  • z/VM: The current version of IBM's virtual machine operating systems, z/VM runs on IBM's zSeries and can be used to support large numbers (thousands) of Linux virtual machines.

All of these hypervisors are supported by IBM hardware.

The individual linked articles describe in detail the features, functionalities, and methods to deploy and manage the virtual systems with corresponding hypervisors.


Choosing the right hypervisor

One of the best ways to determine which hypervisor meets your needs is to compare their performance metrics. These include CPU overhead, amount of maximum host and guest memory, and support for virtual processors.

But metrics alone should not determine your choice. In addition to the capabilities of the hypervisor, you must also verify the guest operating systems that each hypervisor supports.

If you are running heterogeneous systems in your service network, then you must select the hypervisor that has support for the operating systems you currently run. If you run a homogeneous network based on Windows or Linux, then support for a smaller number of guest operating systems might fit your needs.

All hypervisors are not made equal, but they all offer similar features. Understanding the features they have as well as the guest operating systems each supports is an essential aspect of any hardware virtualization hypervisor selection process. Matching this data to your organization's requirements will be at the core of the decision you make. (To get started with this process, explore the details of each hypervisor.)

The following factors should be examined before choosing a suitable hypervisor.

Virtual machine performance

Virtual systems should meet or exceed the performance of their physical counterparts, at least in relation to the applications within each server. Everything beyond meeting this benchmark is profit.

Ideally, you want each hypervisor to optimize resources on the fly to maximize performance for each virtual machine. The question is how much you might be willing to pay for this optimization. The size or mission-criticality your project generally determines the value of this optimization.

Memory management

Look for support for hardware-assisted memory virtualization. Memory overcommit and large page table support in the VM guest and hypervisor are preferred features; memory page sharing is an optional bonus feature you might want to consider.

High availability

Each major vendor has its own high availability solution and the way each achieves it may be wildly different, ranging from very complex to minimalist approaches. Understanding both the disaster prevention and disaster recovery methods for each system is critical. You should never bring any virtual machine online without fully knowing the protection and recovery mechanisms in place.

Live migration

Live migration is extremely important for users; along with support for live migration across different platforms and the capability to simultaneously live migrate two or more VMs, you need to carefully consider what the individual hypervisor offers in this area.

Networking, storage, and security

In networking, hypervisors should support network interface cards (NICs) teaming and load balancing, Unicast isolation, and support for the standard (802.1Q) virtual local area network (VLAN) trunking.

Each hypervisor should also support iSCSI- and Fibre Channel-networked storage and enterprise data protection software support with some preferences for tools and APIs, Fibre Channel over Ethernet (FCoE), and virtual disk multi-hypervisor compatibility.

Management features

Look for such management features as Simple Network Management Protocol (SNMP) trap capabilities, integration with other management software, and fault tolerance of the management server — these features are invaluable to a hypervisor.

A few suggestions ...

Now I don't want to influence your choice of hypervisor (after all, your needs and requirements are unique), but here are a few general suggestions from my experience with implementation of hypervisors for cloud-based workloads:

  • For UNIX®-based workloads, business-critical applications comprised of heavy transactions where performance is the paramount requirement, the PowerVM hypervisor is capable of handling that sort of load.
  • If you're running business-critical applications on System X (x86 servers for Windows and Linux), VMware ESX works quite well.
  • If your applications aren't particularly business critical, you might try KVM or Xen (the startup costs for these is relatively inexpensive too).

You can even try out some of the freeware VMs like Xen and KVM.


In conclusion

IT managers are increasingly looking at virtualization technology to lower IT costs through increased efficiency, flexibility, and responsiveness. As virtualization becomes more pervasive, it is critical that virtualization infrastructure can address the challenges and issues faced by an enterprise datacenter in the most efficient manner.

Any virtualization infrastructure looking for mainstream adoption in data centers should offer the best-of-breed combination of several important enterprise readiness capabilities:

  • Maturity
  • Ease of deployment,
  • Manageability and automation,
  • Support and maintainability,
  • Performance,
  • Scalability,
  • Reliability, availability, and serviceability
  • Security

This article introduced the concept of system virtualization and hypervisors, demonstrated the role a hypervisor plays in system virtualization, and offered some topic areas to consider when choosing a hypervisor to support your cloud virtualization requirements.

Resources

Learn

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Cloud computing on developerWorks


  • Bluemix Developers Community

    Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.

  • developerWorks Labs

    Experiment with new directions in software development.

  • DevOps Services

    Software development in the cloud. Register today to create a project.

  • Try SoftLayer Cloud

    Deploy public cloud instances in as few as 5 minutes. Try the SoftLayer public cloud instance for one month.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Cloud computing
ArticleID=758352
ArticleTitle=Hypervisors, virtualization, and the cloud: Learn about hypervisors, system virtualization, and how it works in a cloud environment
publish-date=09232011