With IBM moving towards Cloud Computing and the zEnterprise turning into a “Cloud-in-a-box,” it is increasingly important to track developments in the public infrastructure-as-a-service (IaaS) space.  Most everyone familiar with Cloud Computing knows about Amazon Web Services (AWS).  IBM even offers pre-built images for AWS with many of their software products, including Tivoli and WebSphere.  Despite AWS’ market strength, there are numerous other public cloud providers moving into the IaaS space.  This post will look at some of the other key options for building a public IaaS cloud.


The OpenStack software project started as a cooperative venture between Rackspace and NASA to establish an open-source alternative to Amazon Web Services (AWS). To date, it has released three key components (Compute, Object Storage, and Image Service) under the terms of the Apache License for open-source software. Because this software is open-source and freely available, it can be implemented as either a public cloud (on leased servers offered by Rackspace and others), a private cloud (on a company’s personally-owned hardware), or a hybrid cloud combining public and private elements. Additionally, OpenStack is compatible with numerous full-virtualization and para-virtualization implementations, including VMWare, Xen, and KVM. OpenStack benefits from strong support from its open-source developer community and its numerous industry partners, including AMD, Canonical, Cisco, Citrix, Dell, HP, and Intel. These advantages allow a customer to prototype, test, and deploy a customized cloud infrastructure without fears of vendor or technological lock-in.


Cloud.com began life as an open-core IaaS package, meaning that it offers two levels of products: a basic open-source community version called CloudStack and a premium Cloud.com enterprise offering that included additional premium features (such as the provisioning of non-virtualized bare-metal hosts). Earlier this year, Citrix purchased Cloud.com and unified the two products as fully open-source software under the GPU GPL v3 license. In addition to CloudStack’s previous support for Xen, KVM, and the latest VMWare products, Citrix has recently announced that CloudStack will soon support the Microsoft Hyper-V hypervisor. A particular strength is that CloudStack can run multiple hypervisors simultaneously. Because of its involvement in the OpenStack project, Citrix is attempted to unify features between OpenStack and CloudStack, but due to licensing differences (Apache vs. GPLv3), CloudStack features cannot be added to OpenStack.

Eucalyptus / Ubuntu Enterprise Cloud

After starting life as a student research project at UC Santa Barbara, Eucalyptus was offered as an open-core IaaS product. The Eucalyptus Enterprise Edition (E3) possesses a number of premium paid features, including SAN integration and advanced VMWare compatibility, that are not yet offered by any of the fully open-source solutions. Like Openstack, Eucalyptus originally partnered with NASA, but frustration over Eucalyptus Systems Inc. refusing to share advanced functionality associated with E3 led this partnership to fall through. Support for Eucalyptus is included in Ubuntu (rebranded as the Ubuntu Enterprise Cloud), but Cannonical has recently announced that OpenStack will be its default Ubuntu cloud solution in future releases. Eucalyptus will nevertheless still be supported by Ubuntu and remains highly compatible with most Linux flavors. A particular advantage for Eucalyptus is its implementation of the Amazon EC2 API stack, which makes it an excellent test bed and development tool prior to uploading to the Amazon Cloud.


Nimbus is an IaaS implementation that specialized in providing cloud solutions for the scientific community. It is compatible with KVM and Xen, and implements most of the Amazon EC2 API. A primary goal of Nimbus is to allow universities and research institutions to share their cloud infrastructures, allowing research projects to access and pool IaaS computer resources as needed. Researchers can submit requests for IaaS resources from a variety of organizations through the scienceclouds.org website. This can be considered an extension of the grid computing concept from batch processing to the cloud, allowing researchers to configure and deploy customized virtual machines on remote resources as needed.


OpenNebula began as an academic research project on IaaS by Spanish computer science professors Ignacio M. Llorente and Ruben Santiago Montero. Based on the success of their research, these profesors founded the company C12G out of Madrid to promote OpenNebula as an international open-source cloud standard (under the Apache license) and provide commercial support for their open-source commercial offerings. OpenNebula is focused on maximizing compatibility with existing data center resources in creating a private cloud infrastructure. It is able to manage virtual machines across private and public resources to create a hybrid cloud, and it has a greater degree of elasticity and dynamic scalability than Eucalyptus. The OpenNebula standard is increasingly popular in Europe, and it is seeking support from European standardization organizations.


Between all of these non-Amazon IaaS offerings, I believe that OpenStack has the greatest promise to become an important public cloud player due to its fully open-source license, its substantial industry and community support, and its flexibility with various types of hypervisors. An OpenStack implementation would offers the greatest degree of flexibility for shifting virtualized machines across public and private clouds as needed. A customer could rest assured that they would not become locked into a particular cloud provider due to the use of proprietary vendor software or incompatibility between hypervisors. Although not currently the most feature rich offering, OpenStack’s significant industry and community support effectively guarantees that this solution will continue to improve and implement new features over time.

Posted in Uncategorized.

VMWare and Full Virtualization

In the early days of distributed computing, many experts considered x86 virtualization near to impossible due to the complexity of the platform. In contrast to the virtualization-friendly IBM mainframe, x86 operating systems depended on sensitive and privileged instructions that could only be executed from Ring 0, meaning directly on the hardware. This changed in 1998 when VMWare developed software able to isolate and translate the binary code of these privileged kernel instructions in real time. This process is known as full virtualization, as guest operating systems running on top of virtualization software (known as a hypervisor) are unaware that they are not running natively from Ring 0. From the point of view of the operating system kernel, instructions continue to execute as though they were running natively on a system with full access to all system resources. This illusion of direct execution and resource monopolization is made possible by virtual machine monitors, which dynamically allocate centralized system resources across one or more virtual copies of BIOS, I/O devices, memory, etc. By maintaining virtualized copies of all physical resources, fully-virtualized operating environments are identical to those running directly on hardware, allowing a single physical machine to run multiple operating environments that are fully unaware of each other and their hypervisor. Due to the use of standard interfaces, each of these virtualized environments can be moved between hypervisors and physical systems without significant modification. Nevertheless, the need to manage centralized resources across redundant virtual devices leads full virtualization techniques to require significant processing overhead.

Xen and Paravirtualization

In 2004, the open-source Xen project sought to design a new system of virtualization that could increase performance by cutting down on redundant overhead. The result of this project is called paravirtualization or “alongside virtualization,” which offers improved performance, efficiency, and simplicity at the expense of compatibility and portability. Rather than acting as if running natively on hardware, paravirtualized environments run modified kernels that can issue direct commands to the hypervisor, dramatically simplifying the process of virtualization by eliminating the need for redundant memory management, interrupt handling, time keeping, and real-time interception and translation of binary code. This offers the potential for significantly improved virtualization performance at the expense of the illusion of isolation (the guest OS is now aware of its hypervisor) and complete guest OS portability (as the modified kernel is not dependent on its specific hypervisor). Additionally, the need to modify the kernel precludes the paravirtualization of most proprietary operating environments, including Microsoft Windows. Although recent versions of the Xen paravirtualization suite have achieved compatibility with Windows, this has been through the implementation of support for new x86 hardware virtualization techniques (such as VT-x and AMD-V) that leave the underlying kernel untouched. Paravirtualization and full virtualization offer a trade off between virtualization overhead and flexibility. This cost-benefit analysis is further affected by the increasing development of hardware virtualization in new Intel and AMD processors.

KVM and Linux Integration

In 2007, a small Israeli start-up named Qumranet released a new open-source virtualization solution called KVM (Kernel-based Virtual Machine). Rather than using the paravirtualization techniques then being pioneered by the open-source Xen group, this new product used full-virtualization similar to VMWare solutions. Despite lacking both the performance enhancements of paravirtualization and the maturity of VMWare, this product gained substantial popularity when it was natively included in the stock Linux 2.6.20 kernel. This occurred largely because KVM lacked the technical restrictions associated with Xen’s use of paravirtualization, namely the need to customize the kernel to issue hypercalls. By using full-virtualization, KVM could be integrated into the stock Linux distro more easily and less disruptively than Xen while providing greater support for proprietary and open-source operating systems. By establishing itself as the flagship Linux virtualization platform, KVM began to enjoy significant advantages over alternate virtualization methods. As a part of the stock Linux distro, all flavors of Linux could be virtualized on KVM, as opposed to Xen, which limited users to certain supported flavors and versions of Linux (some of which depended on proprietary Citrix components). As a full-virtualization solution, KVM uniformity across Linux ensured the full portability and cross-compatibility of virtualized environments across Linux flavors, enabling a company to migrate their virtualized workloads from a KVM hypervisor running on Ubuntu Linux to a KVM hypervisor running on Red Hat Linux.

Despite these advantages, the status and stature of KVM vis-à-vis the other virtualization solutions led competing companies to attempt to use the technology to leverage their product offerings. In 2008, Red Hat acquired Qumranet to bolster the development of KVM and its establishment as the universal open-source virtualization platform. The goal of this move was to strengthen the leadership of Red Hat and its partial-owner IBM (which has used KVM as the backbone of its Cloud offerings) in the x86 virtualization space against VMWare and the assorted companies (Oracle, Citrix, and others) that had supported the Xen paravirtualization methodology. By strategically pushing for KVM and dropping support for Xen, IBM and Red Hat polarized the Linux community, which had hitherto been divided between virtualization and paravirtualization implementations. This polarization led Citrix and Oracle to lobby Linus Torvalds on behalf of Xen, resulting in the recent decision to natively support both KVM and Xen in the latest stock Linux distro. Although it is yet to be determined how this decision will affect the adoption of virtualization and paravirtualization techniques, it is clear that this move will eliminate many of the disadvantages previously associated with Xen, including slower upgrades and higher maintenance costs, by ensuring that all versions of Linux have out-of-box Xen support. Although different parties continue to support and promote their preferred standards, users are now fully free to choose between KVM full-virtualization and Xen paravirtualization based off the relative merits of their underlying architectures. Given this intense competition, and the gradual advancement of hardware virtualization techniques on Intel and AMD x86 processors, it is clear that virtualization will remain a contentious and dynamic space in Information Technology.