Professional Documents
Culture Documents
Cloud Computing Unit1 & Unit2
Cloud Computing Unit1 & Unit2
CS8791
CLOUD COMPUTING
-D.PRABHU AP/IT
Unit 1
Introduction to Cloud Computing
Definition of Cloud
Evolution of Cloud Computing
Underlying Principles of Parallel and Distributed
Computing
Cloud Characteristics
Elasticity in Cloud
On-demand Provisioning
INTRODUCTION
There are certain services and models working behind the scene
making the cloud computing feasible and accessible to end users.
Following are the working models for cloud computing:
1. Deployment Models
2. Service Models
DEPLOYMENT MODELS
cloud, i.e., how the cloud is located? Cloud can have any
Community.
PUBLIC CLOUD : The Public Cloud allows systems and services to be
easily accessible to the general public. Public cloud may be less secure because of
its openness, e.g., e-mail.
J
Roughly every decade a new, lower priced computer class forms
Negotiate Resource
Configurations i
NO
Resource
Availability
Resource Provisioning
IT Environment
A
HR Marketing Finance IT
Hardware
Virtualization
Dev ■ Test ■ Prod
99% Availability 99% Availability 99.99% Availability, Site Failover options,
| Virtualization |
Compute
Storage
?-. i
Virtualization
4
2
Cloud Computing
1
Virtualization
Server
Consolidation
Introduction to Parallel
Computing
What is Parallel Computing? (2)
In the simplest sense, parallel computing is the simultaneous use of multiple
compute resources to solve a computational problem.
To be run using multiple CPUs
A problem is broken into discrete parts that can be solved concurrently
Each part is further broken down to a series of instructions
Instructions from each part execute simultaneously on different CPUs
What is Parallel Computing? (1)
Traditionally, software has been written for serial
computation:
To be run on a single computer having a single
Central Processing Unit (CPU);
A problem is broken into a discrete series of
instructions.
Instructions are executed one after another.
Only one instruction may execute at any moment in
time.
Parallel Computing: The
computational problem
Shared Memory
Distributed Memory
Hybrid Distributed-Shared Memory
Shared Memory
Shared memory parallel computers vary widely, but generally have
in common the ability for all processors to access all memory as
global address space.
Multiple processors can operate independently but share the same
memory resources.
Changes in a memory location effected by one processor are visible
to all other processors.
Shared memory machines can be divided into two main classes
based upon memory access times: UMA and NUMA.
Shared Memory : UMA vs. NUMA
Advantages
Global address space provides a user-friendly programming
perspective to memory
Data sharing between tasks is both fast and uniform due to the
proximity of memory to CPUs
Disadvantages:
Primary disadvantage is the lack of scalability between memory and
CPUs. Adding more CPUs can geometrically increases traffic on the
shared memory-CPU path, and for cache coherent systems,
geometrically increase traffic associated with cache/memory
management.
Programmer responsibility for synchronization constructs that insure
"correct" access of global memory.
Expense: it becomes increasingly difficult and expensive to design and
produce shared memory machines with ever increasing numbers of
processors.
Distributed Memory
Like shared memory systems, distributed memory systems vary widely but share a
common characteristic. Distributed memory systems require a communication
network to connect inter-processor memory.
Processors have their own local memory. Memory addresses in one processor do not
map to another processor, so there is no concept of global address space across all
processors.
Because each processor has its own local memory, it operates independently.
Changes it makes to its local memory have no effect on the memory of other
processors. Hence, the concept of cache coherency does not apply.
When a processor needs access to data in another processor, it is usually the task of
the programmer to explicitly define how and when data is communicated.
Synchronization between tasks is likewise the programmer's responsibility.
The network "fabric" used for data transfer varies widely, though it can can be as
simple as Ethernet.
Distributed Memory: Adv.& Disadv.
Advantages
Memory is scalable with number of processors. Increase the number of
processors and the size of memory increases proportionately.
Each processor can rapidly access its own memory without interference
and without the overhead incurred with trying to maintain cache
coherency.
Cost effectiveness: can use commodity, off-the-shelf processors and
networking.
Disadvantages
The programmer is responsible for many of the details associated with
data communication between processors.
It may be difficult to map existing data structures, based on global
memory, to this memory organization.
Non-uniform memory access (NUMA) times
Hybrid Distributed-Shared Memory
The largest and fastest computers in the world today employ both shared and
distributed memory architectures.
The shared memory component is usually a cache coherent SMP machine.
Processors on a given SMP can address that machine's memory as global.
The distributed memory component is the networking of multiple SMPs. SMPs
know only about their own memory - not the memory on another SMP. Therefore,
network communications are required to move data from one SMP to another.
Current trends seem to indicate that this type of memory architecture will continue to
prevail and increase at the high end of computing for the foreseeable future.
Advantages and Disadvantages: whatever is common to both shared and distributed
memory architectures.
Fine-grain Parallelism
Relatively small amounts of computational work
are done between communication events
Low computation to communication ratio
Facilitates load balancing
Implies high communication overhead and less
opportunity for performance enhancement
If granularity is too fine it is possible that the
overhead required for communications and
synchronization between tasks takes longer than
the computation.
Coarse-grain Parallelism
Relatively large amounts of
computational work are done between
communication/synchronization events
High computation to communication ratio
Implies more opportunity for
performance increase
Harder to load balance efficiently
Which is Best?
The most efficient granularity is dependent on the
algorithm and the hardware environment in which it
runs.
In most cases the overhead associated with
communications and synchronization is high relative
to execution speed so it is advantageous to have
coarse granularity.
Fine-grain parallelism can help reduce overheads due
to load imbalance.
Amdahl's Law
Amdahl's Law states that potential program speedup is defined by
the fraction of code (P) that can be parallelized:
1
speedup = ------
1 - P
great is the low cost – you can run an EC2 instance for just a
few dollars per month. Having an extra server or two might not
But what about giant companies like Microsoft, who have well over a million
own datacenters, but let’s ignore that for the sake of example
could be incredibly costly. Large companies often run dozens or even hundreds of
Elastic Beanstalk
AWS offers a feature called Auto Scaling, which is used with the Elastic Compute Cloud (EC2) service. Auto
scaling allows your EC2 instances to easily scale up or down depending on your requirements. Here are just a few
Auto Scaling features:
AWS offers many ways to help make your application elastic. The Elastic Load Balancer scales automatically on
demand with the traffic it receives for your application. It can also integrate with the Auto Scaling on your back-end
services to offer an end to end scaling layer to handle different levels of traffic.
Purpose of Elasticity
Elasticity aims at matching the amount of resource allocated to a service with
the amount of resource it actually requires, avoiding over- or under-
provisioning.
Over-provisioning, i.e., allocating more resources than required, should be
avoided as the service provider often has to pay for the resources that are
allocated to the service. For example, an Amazon EC2 M4 extra-large
instance costs US$0.239/hour. If a service has allocated two virtual machines
when only one is required, the service provider wastes $2,095 every year.
Hence, the service provider's expenses are higher than optimal and
their profit is reduced.
Under-provisioning, i.e., allocating fewer resources than required, must be
avoided, otherwise the service cannot serve its users with a good service. In
the above example, under-provisioning the website may make it seem slow or
unreachable. Web users eventually give up on accessing it, thus, the service
provider loses customers. On the long term, the provider's income will
decrease, which also reduces their profit.
Architecture of Elasticity
Cloud Characteristics
On-demand self-service: A consumer can unilaterally provision
computing capabilities, such as server time and network storage,
as needed automatically without requiring human interaction with
each service provider.
94/2
Cloud Charecteristics
Resource pooling: The provider's computing resources are pooled
to serve multiple consumers using a multi-tenant model, with
different physical and virtual resources dynamically assigned and
reassigned according to consumer demand. There is a sense of
location independence in that the customer generally has no
control or knowledge over the exact location of the provided
resources but may be able to specify location at a higher level of
abstraction (e.g., country, state or datacenter). Examples of
resources include storage, processing, memory and network
bandwidth.
96/2
Cloud Computing for on-Demand Resource
Provisioning
97/2
On Demand Provisioning
98/2
Cloud provisioning
Cloud provisioning primarily defines how, what and when an organization
will provision cloud services. These services can be internal, public or
hybrid cloud products and solutions. There are three different delivery
models:
Dynamic/On-Demand Provisioning: The customer or requesting
application is provided with resources on run time.
User Provisioning: The user/customer adds a cloud device or device
themselves.
Post-Sales/Advanced Provisioning: The customer is provided with the
resource upon contract/service signup.
From a provider’s standpoint, cloud provisioning can include the supply
and assignment of required cloud resources to the customer. For example,
the creation of virtual machines, the allocation of storage capacity and/or
granting access to cloud software.
1. Local on-Demand Resource
Provisioning
1. The Engine for the Virtual Infrastructure
The OpenNEbula Virtual Infrastructure Engine
• OpenNEbula creates a distributed virtualization layer
• Extend the benefits of VM Monitors from one to multiple resources
• Decouple the VM (service) from the physical location
• Transform a distributed physical infrastructure into a flexible and elastic virtual
infrastructure, which adapts to the changing demands of the VM (service) workloads
Any service, not only
cluster working nodes
100/
1. Local on-Demand Resource
Provisioning
Dedicated SGE working physical nodes
1.2. Virtualization of Cluster and HPC Systems
Separation of Resource Provisioning from Job Management
New virtualization layer between the service and the infrastructure layers
Seamless integration with the existing middleware stacks.
Completely transparent to the computing service and so end users
SGE Frontend
Virtualized SGE nodes
101/
1. Local on-Demand Resource
Provisioning
User Requests
SGE Frontend • SGE interface
• Virtualization overhead
OpenNebula
VMM VMM VMM
102/23
1. Local on-Demand Resource Provisioning
Cluster Consolidation
•Heuristics for dynamic capacity provision
leveraging VMM functionality (e.g. live migration)
•Reduce space, administration effort, power and
SGE Frontend cooling requirements or support the shutdown of
systems without interfering workload
OpenNebula
VMM VMM VMM
103/23
1. Local on-Demand Resource Provisioning
Cluster Partitioning
• Dynamic partition of the infrastructure
• Isolate workloads (several computing clusters)
SGE Frontend
• Dedicated HA partitions
OpenNebula
VMM VMM VMM
104/23
1. Local on-Demand Resource
Provisioning
Support of Heterogeneous Workloads
• Custom worker-node configurations (queues)
• Dynamic provision of cluster configurations
SGE Frontend Virtualized SGE nodes
• Example: on-demand VO worker nodes in Grids
OpenNebula
VMM VMM VMM
105/23
1. Local on-Demand Resource
Provisioning
On-demand resource provisioning
SGE Frontend
VIRTUAL INFRASTRUCTURE
Virtualized SGE nodes Virtualized Web server
OpenNebula
VMM VMM VMM
106/23
1. Local on-Demand Resource
Provisioning
Integration of Job Execution Managers with Virtualization
• VMs to Provide pre-Created Software Environments for Jobs
• Extensions of job execution managers to create per-job basis VMs so as to
provide a pre-defined environment for job execution
• Those approaches still manage jobs
• The VMs are bounded to a given PM and only exist during job execution
• Condor, SGE, MOAB, Globus GridWay…
107/23
1. Local on-Demand Resource
Provisioning
Differences between Job and VM Management
• Differences between VMs and Jobs as basic Management Entities
• VM structure: Images with fixed and variable parts for migration…
• VM life-cycle: Fixed and transient states for contextualization, live
migration…
• VM duration: Long time periods (“forever”)
• VM groups (services): Deploy ordering, affinity, rollback management…
• VM elasticity: Changing of capacity requirements and number of VMs
109/23
2. Remote on-Demand Resource
Provisioning
What is Cloud Computing?
VM Management Interfaces
• Submission
• Control
• Monitoring
SGE Frontend
OpenNebula
VMM VMM VMM
• Grid infrastructures for computing are one of the service use cases that could
run on top of the cloud
112/23
2. Remote on-Demand Resource
Who? Provisioning
• IBM (coordinator), Sun, SAP, ED, TID, UCM, UNIME, UMEA, UCL, USI, CETIC,
Thales and OGF-Europe
• 17-million and 3-year project partially funded by the European Commission
(NESSI Strategic Project)
What?
• The Next Generation Infrastructure for Service Delivery, where resources and
services can be transparently and dynamically managed, provisioned and
relocated like utilities – virtually “without borders”
How?
• Integration of virtualization technologies with grid computing driven by new
techniques for business service management
113/23
2. Remote on-Demand Resource
Provisioning
A Project Driven by Business Use Cases
• Scenario 1: SAP business application (SAP)
• Business application oriented use cases and the opportunities to execute
them on a flexible infrastructure.
• Scenario 2: Telco application (TID)
• Hosting web sites that deals with massive access (e.g., the Olympics
games)
• Scenario 3: Utility computing (Sun)
• Deploy arbitrary operating system and application stacks on remote
resources
• Scenario 4: eGov application (Thales)
• Automatic adjustment of resources and domains cooperation
114/23
2. Remote on-Demand Resource Provisioning
The Architecture, main Components and Interfaces
Organize the placement of VEEs to
Monitor service and enforce SLA
meet optimization policies and
compliance by managing number
constraints
and capacity of service
components (VEEs)
115/23
2. Remote on-Demand Resource
Provisioning
The VEE Manager (OpenNEbula based)
• Generic and independent of the underlying virtualization technology
• Open source and based on standards (Grid & Virtualization OGF WG)
• Automatic provision of VEEs to meet pre-defined infrastructure site policies for
SLA commitment
• VEE groups (forming a single service) with affinity rules, deployment ordering
rules, rollback policies, elasticity management…
• Access to remote grid sites, supporting on-demand access and federation of
data-centers (GT4 Interfaces are being evaluated)
116/23
Unit 2
Service Oriented Architecture
REST and Systems of Systems
Web Services
Basics of Virtualization
Types of Virtualization
Implementation Levels of Virtualization
Virtualization Structures / Tools and Mechanisms
Virtualization of CPU –Memory – I/O Devices
Virtualization Support and Disaster Recovery
Cloud Computing and SOA
What is Service Oriented Architecture
(SOA)?
SOE
Domain
Service Oriented
Domain
Service Oriented Infrastructure
Framework
Service Service Service Service
Planning Systems Management Stakeholders
HTTP methods
Following four HTTP methods are commonly used in REST
based architecture.
GET − Provides a read only access to a resource.
POST − Used to create a new resource.
DELETE − Used to remove a resource.
PUT − Used to update a existing resource or create a new
resource.
Introduction to RESTFul web services
A web service is a collection of open protocols and standards
used for exchanging data between applications or systems.
Software applications written in various programming languages
and running on various platforms can use web services to
exchange data over computer networks like the Internet in a
manner similar to inter-process communication on a single
computer. This interoperability (e.g., between Java and Python, or
Windows and Linux applications) is due to the use of open
standards.
Web services based on REST Architecture are known as RESTful
web services. These webservices uses HTTP methods to
implement the concept of REST architecture. A RESTful web
service usually defines a URI, Uniform Resource Identifier a
service, provides resource representation such as JSON and set of
HTTP Methods.
Introduction to RESTFul web services
setup JDK, Tomcat and Eclipse on your machine before you
the Jersey Framework is setup.
WEB SERVICES
12/04/09 / © 2007 Netsoft USA / Proprie
vices
Introduction and Testing
15
12/04/09 / © 2007 Netsoft USA / Proprietary and Confidential / www.netsoft-usa.com
4
Why Web Services?
Interoperability has highest priority.
When all major platforms could access the Web using Web
browsers, different platforms could interact. For these
platforms to work together, Web applications were developed.
Web applications are simple applications run on the web.
These are built around the Web browser standards and can
mostly be used by any browser on any platform.
15
12/04/09 / © 2007 Netsoft USA / Proprietary and Confidential / www.netsoft-usa.com
7
What is SOAP?
The basic Web services platform is XML plus HTTP.
15
12/04/09 / © 2007 Netsoft USA / Proprietary and Confidential / www.netsoft-usa.com
9
Web Service Architecture
How to test a web service?
16
12/04/09 / © 2007 Netsoft USA / Proprietary and Confidential / www.netsoft-usa.com
1
How to test a web service?
Project structure. As in every well-established testing activity, We
start with test specification. The main part of a test specification is
test cases divided into test areas. Visual Studio allows structuring
your test project into test suites (the same as test areas in our test
specification) that contain test cases, which can contain test steps,
you can add, modify, delete and change order of every item in the
structure.
2014:
2005: Amazon
Amazon Prime
1994: Jeff Bezos 2007: 2012: Amazon Now
Incorporated the Publishing Kindle Game Studios
Launched Launched
Company Launched Launched
1
6
© 2016 Amazon Web Services, Inc. or its affiliates. All rights 6
What is cloud computing?
1
6
© 2016 Amazon Web Services, Inc. or its affiliates. All rights 7
Measured Service
Pay for services as you go.
Electrical services
analogy
1
6
© 2016 Amazon Web Services, Inc. or its affiliates. All rights 8
Amazon Web Services (AWS)
Enable businesses and developers to use web services to build
scalable, sophisticated applications.
Storage
Development and
Management Tools
Analytics Content Delivery
Messaging Compute
App Services
Database Payments
Mobile
Networking
On-Demand Workforce
VPC
1
6
© 2016 Amazon Web Services, Inc. or its affiliates. All rights 9
AWS Core Infrastructure and Services
Traditional Infrastructure Amazon Web Services
Security Security
Security
Network Network
Networking
VPC
“Public
Router Network Pipeline Switch ELB
”
Provision EC2 “Classic”
VPC
ELB
On-Demand
Servers
Storage
and
DAS SAN NAS RDBMS Database Amazon Amazon Amazon Amazon
EBS EFS S3
AW© S Tech nical E ssentials 3.8 ILT
2016 Amazon W eb Services, Inc. or its affiliates . All rights reserved. RDS 8
On-Demand Self Services & Broad
Network Access
User provisions computing resources as needed.
User interacts with cloud service provider through an
online control panel.
Clear solutions are available through a variety of network-
connected devices and over varying platforms.
Regions
Geographic locations
Consists of at least two Availability Zones(AZs)
Availability Zones
Clusters of data centers
Isolated from failures in other Availability Zones
Region
Availability
Zone - A
Availability Zone -
B
Availability Zone -
C
• us-east-1d
AZ - A AZ - B
• us-east-1e AZ - A AZ - B
AZ - C AZ - D
AZ - C
AZ - E
Note: Conceptual drawing only. The number of Availability Zones (AZ) may vary.
An OS-level virtualization
approach doesn't use a
hypervisor at all.
Instead, the virtualization
capability is part of the
host OS, which performs
all the functions of a fully
virtualized hypervisor
Virtualization Allows
Transformation of a Server for
Multiple Applications
Server virtualization
Creating multiple logical server OS instances on one
physical piece of hardware
Hypervisor is installed on one physical server
Multiple instances of server OS are installed.
Server Virtualization
Server Virtualization
The VMs created on one physical server can be run
another physical server.
Failure in one physical server will not effect the VMs
installed on that.
Virtual Desktop Infrastructure (VDI) is a desktop delivery model
which allows client desktop workloads (operating system,
application, user data) to be hosted and executed on servers in the
data center
Users can communicate with their virtual desktops through a
client device that supports remote desktop protocols such as RDP
This allows you to virtualize Windows desktops in the datacenter and
deliver them on demand to any user — anywhere
Storage Virtualization is the
next frontier in Storage
Advances that aims to provide
a layer of abstraction to
reduce complexity
Software virtualization is the
virtualization of applications or
computer programs
Computer hardware
virtualization is the virtualization
of computers or operating
systems.
Most applications use APIs exported by user-level libraries rather than using
lengthy system calls by the OS. Since most systems provide well-documented
APIs, such an interface becomes another candidate for virtualization.
Virtualization with library interfaces is possible by controlling the communication
link between applications and the rest of a system through API hooks. The
software tool WINE has implemented this approach to support Windows
applications on top of UNIX hosts. Another example is the vCUDA which allows
applications executing within VMs to leverage GPU hardware acceleration.
5.User-Application Level
Virtualization at the application level virtualizes an application as a VM. On a
traditional OS, an application often runs as a process. Therefore, application-
level virtualization is also known as process-level virtualization. The most
popular approach is to deploy high level language (HLL)
VMs. In this scenario, the virtualization layer sits as an application program on
top of the operating system, and the layer exports an abstraction of a VM that
can run programs written and compiled to a particular abstract machine
definition. Any program written in the HLL and compiled for this VM will be
able to run on it. The Microsoft .NET CLR and Java Virtual Machine (JVM) are
two good examples of this class of VM.
Other forms of application-level virtualization are known as application
isolation, application sandboxing, or application streaming. The process
involves wrapping the application in a layer that is isolated from the host OS
and other applications. The result is an application that is much easier to
distribute and remove from user workstations. An example is the LANDesk
application virtuali-zation platform which deploys software applications as
self-contained, executable files in an isolated environment without requiring
installation, system modifications, or elevated security privileges.
6.Relative Merits of Different Approaches
Since software-based virtualization techniques are complicated and incur performance overhead,
Intel provides a hardware-assist technique to make virtualization easy and improve performance.
Figure 3.10 provides an overview of Intel’s full virtualization techniques. For processor
virtualization, Intel offers the VT-x or VT-i technique. VT-x adds a privileged mode (VMX Root
Mode) and some instructions to processors. This enhancement traps all sensitive instructions in
the VMM automatically. For memory virtualization, Intel offers the EPT, which translates the
virtual address to the machine’s physical addresses to improve performance. For I/O
virtualization, Intel implements VT-d and VT-c to support this.
2. CPU Virtualization
A VM is a duplicate of an existing computer system in which a
majority of the VM instructions are executed on the host processor
in native mode. Thus, unprivileged instructions of VMs run
directly on the host machine for higher efficiency. Other critical
instructions should be handled carefully for correctness and
stability. The critical instructions are divided into three
categories: privileged instructions, control-sensitive instructions,
and behavior-sensitive instructions. Privileged instructions execute
in a privileged mode and will be trapped if executed outside this
mode. Control-sensitive instructions attempt to change the
configuration of resources used. Behavior-sensitive instructions
have different behaviors depending on the configuration of
resources, including the load and store operations over the virtual
memory.
2. CPU Virtualization
A CPU architecture is virtualizable if it supports the ability to run
the VM’s privileged and unprivileged instructions in the CPU’s
user mode while the VMM runs in supervisor mode. When the
privileged instructions including control- and behavior-sensitive
instructions of a VM are exe-cuted, they are trapped in the VMM.
In this case, the VMM acts as a unified mediator for hardware
access from different VMs to guarantee the correctness and
stability of the whole system. However, not all CPU architectures
are virtualizable. RISC CPU architectures can be naturally
virtualized because all control- and behavior-sensitive instructions
are privileged instructions. On the contrary, x86 CPU architectures
are not primarily designed to support virtualization. This is
because about 10 sensitive instructions, such as SGDT and SMSW,
are not privileged instructions. When these instruc-tions execute in
virtualization, they cannot be trapped in the VMM.
2.1 Hardware-Assisted CPU
Virtualization
2.1 Hardware-Assisted CPU Virtualization
This technique attempts to simplify virtualization because full or
paravirtualization is complicated. Intel and AMD add an
additional mode called privilege mode level (some people call it
Ring-1) to x86 processors. Therefore, operating systems can still
run at Ring 0 and the hypervisor can run at Ring -1. All the
privileged and sensitive instructions are trapped in the hypervisor
automatically. This technique removes the difficulty of
implementing binary translation of full virtualization. It also lets
the operating system run in VMs without modification.
2.1 Hardware-Assisted CPU
Virtualization (Example)
Although x86 processors are not virtualizable primarily, great effort is taken to virtualize them.
They are used widely in comparing RISC processors that the bulk of x86-based legacy systems
cannot discard easily. Virtuali-zation of x86 processors is detailed in the following sections. Intel’s
VT-x technology is an example of hardware-assisted virtualization, as shown in Figure 3.11. Intel
calls the privilege level of x86 processors the VMX Root Mode. In order to control the start and
stop of a VM and allocate a memory page to maintain the CPU state for VMs, a set of additional
instructions is added. At the time of this writing, Xen, VMware, and the Microsoft Virtual PC all
implement their hypervisors by using the VT-x technology.
3. Memory Virtualization
Virtual memory virtualization is similar to the virtual memory
support provided by modern operat-ing systems. In a traditional
execution environment, the operating system maintains mappings
of virtual memory to machine memory using page tables, which is
a one-stage mapping from virtual memory to machine memory. All
modern x86 CPUs include a memory management unit
(MMU) and a translation lookaside buffer (TLB) to optimize
virtual memory performance. However, in a virtual execution
environment, virtual memory virtualization involves sharing the
physical system memory in RAM and dynamically allocating it to
the physical memory of the VMs.
3. Memory Virtualization
That means a two-stage mapping process should be maintained by
the guest OS and the VMM, respectively: virtual memory to
physical memory and physical memory to machine memory.
Furthermore, MMU virtualization should be supported, which is
transparent to the guest OS. The guest OS continues to control the
mapping of virtual addresses to the physical memory addresses of
VMs. But the guest OS cannot directly access the actual machine
memory. The VMM is responsible for mapping the guest physical
memory to the actual machine memory. Figure 3.12 shows the
two-level memory mapping procedure.
3. Memory Virtualization
4. I/O Virtualization
I/O virtualization involves managing the routing of I/O requests
between virtual devices and the shared physical hardware. At the
time of this writing, there are three ways to implement I/O
virtualization: full device emulation, para-virtualization, and direct
I/O. Full device emulation is the first approach for I/O
virtualization. Generally, this approach emulates well-known, real-
world devices.
All the functions of a device or bus infrastructure, such as device
enumeration, identification, interrupts, and DMA, are replicated in
software. This software is located in the VMM and acts as a virtual
device. The I/O access requests of the guest OS are trapped in the
VMM which interacts with the I/O devices. The full device
emulation approach is shown in Figure 3.14.
4. I/O Virtualization
A single hardware device can be shared by multiple VMs that run
concurrently. However, software emulation runs much slower than
the hardware it emulates [10,15]. The para-virtualization method of I/O
virtualization is typically used in Xen. It is also known as the split driver
model consisting of a frontend driver and a backend driver. The
frontend driver is running in Domain U and the backend dri-ver is
running in Domain 0. They interact with each other via a block of
shared memory. The frontend driver manages the I/O requests of the
guest OSes and the backend driver is responsible for managing the
real I/O devices and multiplexing the I/O data of different VMs.
Although para-I/O-virtualization achieves better device performance
than full device emulation, it comes with a higher CPU overhead.
4. I/O Virtualization
Direct I/O virtualization lets the VM access devices directly. It can
achieve close-to-native performance without high CPU costs.
However, current direct I/O virtualization implementations focus on
networking for mainframes. There are a lot of challenges for
commodity hardware devices. For example, when a physical device is
reclaimed (required by workload migration) for later reassign-ment, it
may have been set to an arbitrary state (e.g., DMA to some arbitrary
memory locations) that can function incorrectly or even crash the
whole system. Since software-based I/O virtualization requires a very
high overhead of device emulation, hardware-assisted I/O
virtualization is critical. Intel VT-d supports the remapping of I/O DMA
transfers and device-generated interrupts. The architecture of VT-d
provides the flexibility to support multiple usage models that may run
unmodified, special-purpose, or “virtualization-aware” guest OSes.
4. I/O Virtualization
Another way to help I/O virtualization is via self-virtualized I/O (SV-IO)
[47]. The key idea of SV-IO is to harness the rich resources of a
multicore processor. All tasks associated with virtualizing an I/O device
are encapsulated in SV-IO. It provides virtual devices and an associated
access API to VMs and a management API to the VMM. SV-IO defines
one virtual interface (VIF) for every kind of virtua-lized I/O device, such
as virtual network interfaces, virtual block devices (disk), virtual
camera devices, and others. The guest OS interacts with the VIFs via
VIF device drivers. Each VIF consists of two mes-sage queues. One is
for outgoing messages to the devices and the other is for incoming
messages from the devices. In addition, each VIF has a unique ID for
identifying it in SV-IO
4. I/O Virtualization
5. Virtualization in Multi-Core
Processors
Virtualizing a multi-core processor is relatively more complicated
than virtualizing a uni-core processor. Though multicore processors
are claimed to have higher performance by integrating multiple
processor cores in a single chip, muti-core virtualiuzation has
raised some new challenges to computer architects, compiler
constructors, system designers, and application programmers.
There are mainly two difficulties: Application programs must be
parallelized to use all cores fully, and software must explicitly
assign tasks to the cores, which is a very complex problem.
5. Virtualization in Multi-Core
Processors
Concerning the first challenge, new programming models,
languages, and libraries are needed to make parallel programming
easier. The second challenge has spawned research involving
scheduling algorithms and resource management policies. Yet these
efforts cannot balance well among performance, complexity, and
other issues. What is worse, as technology scales, a new challenge
called dynamic heterogeneity is emerging to mix the fat CPU core
and thin GPU cores on the same chip, which further complicates
the multi-core or many-core resource management. The dynamic
heterogeneity of hardware infrastructure mainly comes from less
reliable transistors and increased complexity in using the
transistors
Disaster Recovery and the Cloud
Agenda
The need for disaster recovery (DR)
$10.8 Billion
Economic impact felt in the U.S. from disasters
in 2009*
*September 2, 2010 , Business Continuity and Disaster Recovery are top IT Priorities for 2010
and 2011 - Forrester
*Jan. 25, 2010 – The State of Enterprise IT: 2009 to 2010 - Forrester
• Private
Dynamic and scalable computer services offered to internal
customers using equipment the customer owns and
delivered over a private network.
• Poor performance
– Slow RTO, RPO (days)
• Hidden costs
– How do we get the data back
in to a useable state?
– How long to rebuild server?
24
© 2011 NetIQ Corporation. All rights reserved.
8
Double Infrastructure
• Focus is on protecting
application
– Clustering
– Like-for-like infrastructure
• Performance, but at what
price?
– Near-zero RTO, RPO
• High cost
– Duplicate infrastructure
– Management complexity
24
© 2011 NetIQ Corporation. All rights reserved.
9
Virtualize Disaster Recovery
Bridging the Gap
Duplication Backup
25
© 2011 NetIQ Corporation. All rights reserved.
1
Consolidated Recovery
Virtual production servers
Solution
Replicate workload into an
offline virtual machine
One-click failover
Physical production servers
One-click test restore
Virtual recovery hosts
Flexible failback
Wide Area
Network
25
© 2011 NetIQ Corporation. All rights reserved.
3
PlateSpin DR Products
®
PlateSpin ® Protect
Whole-workload protection for all server workloads.
Physical
servers
Image Virtual
archives hosts
Blade
servers Workload decoupled
from hardware
25
© 2011 NetIQ Corporation. All rights reserved.
5
PlateSpin Forge ®
Protects up to 25 workloads
25
© 2011 NetIQ Corporation. All rights reserved.
6
Building a Protection Cloud
Build a Recovery Cloud
= PlateSpin Protect + Virtual Resources
PlateSpin Protect
Recovery
Cloud
Virtual Resources
Recovery Cloud
25
© 2011 NetIQ Corporation. All rights reserved.
9
Easy Test Failover
Test Failover: recover workloads in isolated
virtual networks to avoid production disruptions
26
© 2011 NetIQ Corporation. All rights reserved.
0
Recover Workloads In Minutes
Recovery Cloud
Users connect to workloads
running in the Recovery
Cloud
26
© 2011 NetIQ Corporation. All rights reserved.
1
Restore the Production Environment
26
© 2011 NetIQ Corporation. All rights reserved.
2
Solution Flexibility
On-Premise
Production Service
Data Center Provider
Data Center
Recovery Resources
Protected Workloads
WAN
Protect Node
Protect Management
Console
Administrator
26
© 2011 NetIQ Corporation. All rights reserved.
4
Virtual Private Cloud
Service
Customer Provider
Data Center
Data Center
Protect Node
Protected Workloads
Protect Management
Console
Administrator
26
© 2011 NetIQ Corporation. All rights reserved.
5
Hybrid Model
Service
Customer Provider
Data Center
Data Center
Recovery Resources
Recovery Resources
Protect Node
WAN
Protect Node