 | Level: Intermediate Ruth Willenborg (rewillen@us.ibm.com), Senior Technical Staff Member, IBM
25 Oct 2006 Although the concept isn't new, there is more interest in virtualization now than ever before. The benefits of subdividing one physical server into several virtual ones include server consolidation, isolation, rapid provisioning, and even performance. New improvements in hardware and virtualization technologies now offer the opportunity to also improve installation, configuration, deployment processes -- and even how you work on your laptop. From the IBM WebSphere Developer Technical Journal.
Machine liberation
When I told a friend of mine I was running IBM® DB2® Express for Linux® on my laptop, I got the response I expected: a mixture of shock and disbelief. How could I have gotten over my UNIX®-phobia that quickly? The truth is, my laptop is still running Windows® XP and all my day to day applications still run on Windows. However, I have added a VMware Server to my laptop, enabling me to run Linux or Windows virtual machine images without fear of compromising my Windows installation.
I am actually quite surprised at how liberating the idea of running virtual machines is. I no longer worry before trying out new software. When I want to try the latest IBM WebSphere driver I can just start up a virtual machine. I don't have to worry that the new version might conflict with my golden installation. Virtual machines provide a level of isolation I've never had on my own desktop.
Of course, virtualization is not a new concept - IBM eServer zSeries® and IBM eServer pSeries® customers have been doing this stuff for years. However, there is an undeniable new level of interest. Whether this interest is spurred from the release of XEN™, the increasing capabilities of x86 servers making virtualization more attractive, the push to lower management costs through server consolidation, or whatever else, I've heard more interest in virtualization than ever before.
There are many different types of virtualization (see Resources) and they have correspondingly different benefits and challenges. I like to break virtualization into three categories:
- 1 to M - where 1 physical server is subdivided into many virtual servers. This is the classic server consolidation pattern.
- M to 1 - where many virtual servers are consolidated and treated as one resource pool. This is the classic grid computing pattern.
- M to M - which combines both of these patterns.
I am going to focus here on the 1 to M scenarios, like what I have on my laptop. This classic 1 to M usage pattern offers several advantages, including server consolidation, application isolation, and rapid provisioning.
Advantages
Server consolidation
The 1 to M scenario consolidates multiple workloads onto one server, thereby reducing the number of physical servers to purchase and manage, as well as reducing space and power requirements. In many shops, separate servers are dedicated for different WebSphere applications and different environments (development, test, production). This is especially true on x86 hardware, where the result is often many separate servers running at low utilization (less than 20%). As x86 servers become increasingly more powerful and able to support high performing virtualization solutions, these environments are perfect candidates for consolidation to reduce hardware and administrative costs.
Isolation
Though workloads can be consolidated without virtualization, the isolation provided by virtual machines provides important characteristics. With virtual machines, each application runs independently, within its own operating system environment and without interfering with other workloads. For example, if a virtual machine operating system crashes, applications in other virtual machines continue to run.
This isolation supports multiple people working independently against applications on the same physical server. For example, the isolation provided by virtual machines is ideal in test scenarios, enabling the execution of multiple tests, in parallel and in isolation. In fact, isolation provides the flexibility to run different versions of operating systems and application on the same physical server. This is extremely useful for testing scenarios and for incrementally rolling out upgrades.
Rapid provisioning
In addition to server consolidation and isolation, virtual machines provide an opportunity to significantly improve the installation, configuration, and deployment process. A virtual machine can be transferred from one physical server to another without requiring reinstallation. Leveraging this capability enables a central team to install and configure an application once, and easily deploy identical virtual machines to many users. Common problems such as users configuring products incorrectly or incompatibilities between applications installed on the same machine are eliminated. A standard environment also simplifies debugging.
Some virtual machine-specific configuration is often required. For example, to deploy a cluster of WebSphere Application Servers, each virtual machine node needs to be configured for a different host name. This can be done by changing the host name on the virtual machine and then creating the corresponding WebSphere profile. Scripts to automate these steps can be incorporated into the virtual machine start-up process.
Once a set of images is deployed, these images can also be moved between users without requiring reinstallation. For example, a developer can send his exact development image into test. A tester who identifies a problem can snapshot the virtual machine for a developer to debug. Images can be moved from test to performance test to production quickly and seamlessly with a much lower risk of incompatibilities. The virtualization layer standardizes the underlying hardware interfaces, so virtual machines can be moved seamlessly across different hardware platforms. In addition, because the image captures a ready to run configuration, common problems caused from fresh installations failing to properly replicate configuration parameters are eliminated.
Hierarchies of images can be created and stored to quickly re-provision an environment. For example, a tester can use the hardware one day to test on a specific operating system version and quickly swap out to run a different operating system version the next day. Images can be saved away, and brought back easily for regression or debug purposes.
Considerations
Performance
Many of the advantages of virtualization apply across development, test, and production environments. However, performance is clearly a significant consideration before moving to a virtualized production environment. The High Performance On Demand Solutions Team and VMware recently did a set of performance tests (see Resources) and the results are quite encouraging. The experiments compared the performance running multiple WebSphere applications on a physical server with running separate WebSphere Application Server images within VMware images. For these tests, the WebSphere tier was virtualized, but the application database remained on physical hardware.
The results of these tests demonstrated only a small overhead from virtualization. Performance was best when the number of virtual machines was kept at or less than the number of physical CPUs. Based on these results, if you have low-volume WebSphere applications spread across a lot of physical servers, you may want to consider consolidating these using virtualization.
Though these experiments were run on VMware ESX Server, other virtualization technologies, including XEN (see Resources), are expected to have low overhead. Naturally, you'll want to verify the performance of your applications in a virtual environment before deploying into production. Depending on your performance requirements, you can also mix physical and virtual servers - leaving the higher volume and more performance sensitive applications on physical servers.
Conclusion
Improvements in hardware and virtualization technologies provide a prime opportunity to look at adopting virtualization. Virtualization provides potential cost savings through server consolidation as well as significant opportunities to improve installation, configuration, and deployment processes through the use of virtual images.
Resources
About the author  | 
|  | Ruth Willenborg is a Senior Technical Staff member in IBM's WebSphere Technology Institute working on virtualization. Prior to this assignment, Ruth was the manager of the WebSphere Performance team responsible for WebSphere Application Server performance analysis, performance benchmarking and performance tool development. Ruth has over 20 years of experience in software development at IBM. She is co-author of Performance Analysis for Java Web Sites (Addison-Wesley, 2002). |
Rate this page
|  |