Summary
Highlights
Virtualization is a core concept for cloud computing, allowing for services like IaaS. It's not a new concept, as seen with virtual LANs (VLANs) and virtual private networks (VPNs). Subscribers in IaaS get access to virtual computers, storage, and network components, paying for resources like CPU hours and network bandwidth. Cloud providers offer a pool of virtual machines (VMs) in different configurations based on demand.
The IaaS component stack includes hardware, operating system, middleware, and applications. The operating system is divided into a lower-privileged layer (Hypervisor/VMM) controlled by the cloud provider, and a higher layer (Guest OS) run by the subscriber. Subscribers have full control over the guest OS, middleware, and applications, while the provider manages the physical hardware and hypervisor. The hypervisor creates isolated VMs that appear as actual hardware to the subscriber.
A typical cloud architecture involves a three-level hierarchy: Cloud Manager (top), Cluster Manager (middle), and Computer Manager (bottom). The Cloud Manager is the public access point, authenticating users, managing accounts, and performing top-level resource management. The Data Object Storage (DOS) maintains subscriber metadata and acts as a registry for the entire cloud. Cluster Managers manage collections of geographically distributed computers, processing requests from the Cloud Manager and instructing Computer Managers. Computer Managers run on individual systems, provide VMs, maintain status information, and use the hypervisor to manage VMs.
Virtualization is a broad term encompassing virtual memory, networks, and storage. Its primary focus is platform virtualization, enabling one computer to do the job of multiple by sharing resources. This allows running multiple operating systems and applications on the same hardware simultaneously and in isolation. The goals of virtual machine architecture are equivalence (VMs indistinguishable from hardware), resource control (VMs have full control of virtualized resources), and efficiency (most VM instructions execute directly on the CPU without hypervisor intervention).
There are three generations of virtualization: full virtualization (software-based, dynamic binary rewriting), para-virtualization (guest OS modified to cooperate with hypervisor for better performance), and hardware-assisted virtualization (utilizing processor extensions like Intel VT or AMD-V). Each approach has its advantages and drawbacks regarding performance, portability, and modification requirements for the guest OS.
Beyond server virtualization, network level virtualization aims to emulate virtual networks over physical ones. This addresses the need for flexible network configurations, testbeds for future protocols, and accommodating diverse user requirements. Concepts like VPNs and overlay networks are existing forms of network virtualization. This involves different players like infrastructure providers, service providers, and end-users with complex relationships. It allows creating multiple virtual networks on a single physical infrastructure, extending beyond server virtualization to a complete virtualized IP infrastructure.