written 5.4 years ago by |
Virtualization is a foundational technology platform fostering cloud computing, and it is transforming the face of the modern data center. The term virtualization refers to the abstraction of compute resources (CPU, storage, network, memory, application stack, and database) from applications and end users consuming the service.
The abstraction of infrastructure yields the notion of resource democratization- whether infrastructure, applications, or information- and provides the capability for pooled resources to be made available and accessible to anyone or anything authorized to utilize them via standardized methods.
Virtualization technologies enable multitenancy cloud business models by providing a scalable, shared resource platform for all tenants. More importantly, they provide a dedicated resource view for the platform's consumers. From an enterprise perspective, virtualization offers data center consolidation and improved IT operational efficiency.
Today, enterprises have deployed virtualization technologies within data centers in various forms, including OS virtualization (VMWare, Xen), storage virtualization (NAS, SAN), database virtualization, and application or software virtualization (Apache Tomcat, JBoss, Oracle App Server, Websphere).
From a public cloud perspective, depending on the cloud services delivery model (SPI) and architecture, virtualization appears as a shared resource at various layers of the virtualized service (e.g., OS, storage, database, application).
Figure 1 illustrates OS virtualization and the layers of the virtualization environment as defined by Sun Microsystems. Iaas providers including Amazon (EC2), ServePath (GoGrid), and Sun Cloud employ this type of virtualization, which enables customers to run instances of various operating system flavors in a public cloud.
The virtualization platform shown in Figure 1 is the Sun $\mathrm{xVM}$ hypervisor environment that virtualizes shared hardware resources for the guest or virtual server operating systems (Linux, Solaris, and Microsoft Windows) hosted on the hypervisor. The hypervisor is a small application that runs on top of the physical machine hardware layer. It implements and manages the virtual CPU (vCPU), virtual memory (vMemory), event channels, and memory shared by the resident virtual machines (VMs). It also controls I/O and memory access to devices.
In Xen, as well as Sun $\mathrm{xVM}$ (which is based on the work of the Xen community), a VM is called a domain, whereas in the VMWare virtualization product it is referred to as a guest $O S .$ In figure 1 the VMs are labeled as dom0 and domU1, domU2, and domU3. Domo is used to manage the other user domains (domUl, etc..). VMWare employs a similar mechanism, and calls it as "service console." Management through dom0 or the service console consists of creating, destroying, migrating, saving, or restoring user domains. An operating system running in a user domain is configured so that privileged operations are executed via calls to the hypervisor.
In addition to OS and storage virtualization, Saas and PaaS service providers are known to have implemented software and database virtualization whereby customers share the software application stack and database resources.
For example, Salesforce.com is known to have virtualized both the software and the database stack. In that model, all customers share every single layer of the delivery infrastructure.