Virtualization improves IT resource utilization by treating your company's physical resources as pools from which virtual resources can be dynamically allocated.
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
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
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.
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.
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 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.
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.
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:
- Ease of deployment,
- Manageability and automation,
- Support and maintainability,
- Reliability, availability, and serviceability
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.
Links for this series:
- The PowerVM site.
- Red Hat Enterprise Virtualization 3.0 Administration Guide.
- VMware's Quick Start Guide version 5.17 | version 4.15.
- VMware vSphere overview.
- Getting Started with Xen Deployment online book.
- List of KVM documentation.
- Red Hat Enterprise Virtualization 3.0 Administration Guide (for help with KVM).
- IBM Director's Virtualization Manager can let you manage all your z/VM virtualized systems from the same console.
- In the developerWorks cloud developer resources, discover and share knowledge and experience of application and services developers building their projects for cloud deployment.
- Join a cloud computing group on developerWorks.
- Read all the great cloud blogs on developerWorks.
- Join the developerWorks community, a professional network and unified set of community tools for connecting, sharing, and collaborating.
Dig deeper into Cloud computing on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Crazy about Cloud? Sign up for our monthly newsletter and the latest cloud news.
Software development in the cloud. Register today to create a project.
Deploy public cloud instances in as few as 5 minutes. Try the SoftLayer public cloud instance for one month.