Database Reference
In-Depth Information
16.9 Case Study: Amazon Elastic Compute Cloud ............................................ 525
16.9.1 Amazon EC2 Virtualization Technology ....................................... 526
16.9.2 Amazon EC2 Properties ................................................................. 527
16.9.2.1 Elasticity .......................................................................... 528
16.9.2.2 Scalability and Performance ............................................ 528
16.9.2.3 Flexibility ......................................................................... 528
16.9.2.4 Fault Tolerance ................................................................. 530
16.9.2.5 Security ............................................................................ 531
16.10 Summary .................................................................................................... 532
References .............................................................................................................. 532
Virtualization is at the core of cloud computing. It lies on top of the cloud infrastruc-
ture, whereby virtual resources (e.g., virtual CPUs, memories, disks, networks) are con-
structed from the underlying physical resources and act as proxies to them. As is the case
with the idea of cloud computing, which was first introduced in the 1960s [1], virtual-
ization can be traced back to the 1970s [55]. Forty years ago, the mainframe computer
systems were extremely large and expensive. To address expanding user needs and costly
machine ownerships, the IBM 370 architecture, announced in 1970, offered complete
virtual machines (virtual hardware images) to different programs running at the same
computer hardware. Over time, computer hardware became less expensive and users
started migrating to low-priced desktop machines. This drove the adoption of the virtu-
alization technology to fade for a while. Today, virtualization is enjoying a resurgence in
popularity with a number of research projects and commercial systems providing virtu-
alization solutions for commodity PCs, servers, and the cloud.
In this chapter, we present various ingredients of the virtualization technology
and the crucial role it plays in enabling the cloud computing paradigm. First, we
identify major reasons for why virtualization is becoming important, especially for
the cloud. Second, we indicate how multiple software images can run side by side on
physical resources while attaining security, resource and failure isolations. Prior to
delving into more details about virtualization, we present a brief background requi-
site for understanding how physical resources can be virtualized. In particular, we
learn how system complexity can be managed in terms of levels of abstractions and
well-defined interfaces. To this end, we formally define virtualization and examine
two main virtual machine types: process and system virtual machines.
After introducing and motivating virtualization for the cloud, we describe in detail
CPU, memory, and I/O virtualizations. Specifically, we first explore conditions for virtu-
alizing CPUs, identify the difference between full virtualization and paravirtualization,
explain emulation as a major technique for CPU virtualization, and examine virtual CPU
scheduling in Xen, a popular hypervisor utilized by Amazon at its Amazon Web Services
(AWS) cloud computing platform. Second, we outline the difference between conven-
tional operating system's virtual memory and system memory virtualization, explain the
multiple levels of page mapping as dictated by system memory virtualization, define
memory overcommitment and illustrate memory ballooning, a reclamation technique to
tackle memory overcommitment in VMware ESX, another common hypervisor. Third,
we explain how CPU and I/O devices can communicate with and without virtualiza-
tion, identify the three main interfaces, system call, device driver, and operation level
Search WWH ::




Custom Search