Cloud Computing Introduction
Cloud Computing Introduction
Dr S C Gupta!
!
Visiting Faculty,
Dept of Computer Science and Engineering, IIT Delhi
!
Former Deputy Director General, NIC
Cloud Computing
Def (NIST)
!
“Cloud Computing is a model for enabling ubiquitous,
convenient, on-demand network access to a shared pool
of configurable computing resources (.e.g. networks,
servers, storage, applications and services) that can be
rapidly provisioned and released with minimal
management efforts or service provider interaction”
Cloud Computing
!
• Dynamic Provisioning of Resources
• Compute
• Storage
• Networking
• Services.. Platforms, Applications
• Pay per use like other utilities
• Accessible over network from anywhere
• Using Desktop and other Devices
• No Capital Investment
• Virtualisation Improves Compute Resource Utilisation
• Cloud Platforms provide inbuilt scalability and reliability
Cloud Computing Foundation :
Virtualisation
!
• Traditionally Servers in Data Centres under Utilised
(10-20%)
• Virtualisation : Hosting Multiple OS on the same server
• Guest OS isolated from each other and have
dedicated Cores, RAM and Storage
• VMM / Hypervisor Manages Multiple Guest OSs
• Each Server Can host large no of VMs
• Each VM can load any OS (any version) and is
administered independently.
• User Feel more secure having dedicated VM than
sharing a multi-programming OS
Virtualisation
Creating a virtual version of a resource from a real
resource (Compute, Storage, Network, Application)
!
Examples :
Virtual Paging : Create continuous large address space
for each user process / OS .. bigger than
the physical RAM of the system using
page table and disk swap area.
!
Storage Consolidation : Using Software Middleware,
several hard disks can be consolidated
to provide big disk storage. Can then
partition it to give storage to
individual VMs
Multiprogramming VS Virtualisation
Similarities and Differences
Multiprogramming! Virtualisation!
! !
CPU is shared among Processes CPU is shared among Guest OSs
!
Memory is shared using page Memory is shared using two level
table page tables
! !
Process knows that it is being Guest OS may or may not know
managed - uses system calls that it is being managed
!
!
!
Virtualisation Architecture
• OS unaware of underlying VMM
• OS gets the illusion of having complete control on all
resources
• VMM / Hypervisor is a software layer over the Hardware which
• Allows multiple OS to run simultaneously on a server
• Mutiplexes / shares all underlying hardware resources
Virtualisation : Key Features
!
• Instant Provisioning!
• VM is created using pre-defined images
• Live Migration!
• Pages are transferred to new server while VM is running, Initially
Program pages which do not change.. then data pages..flagging pages
changed after transfer. Need to hibernate for a short period to make the
final transfer..
!
• Load Balancing!
• Periodically find load of all servers and decide to migrate VMs from
overloaded Servers.
• Improves performance, utilises spare capacity of severs (as CPU,
Memory resources are not dedicated, but are being shared)
!
• Server Consolidation!
• When load is very less (off peak time) VMs can be shifted to fewer
Servers, so that some servers can be shut down to save on power.
VM Migration
Live Migration
Transparent to the user
Load Balancing ! ! ! ! Consolidation!
!
Better Server Utilisation Reduces No of Servers
Better Performance Saves Power
Virtualisation
• Binary Translation
• Para Virtualisation
!
• Hardware Assisted Virtualisation
Popek & Goldberg Analysis of Instructions (1974)
re 8.6 Types of Instructions. (a) Sensitive and privileged instructions overlap (although not necessarily
completely). (b) Sensitive instructions and innocuous instructions are complements of each other.
the direct modification of system resources such as the PSW and the CPU
interval timer. Consequently, all of the guest operating system software is
Binary Translation
• Runs OS Binary as it is
• OS at Ring 1, VMM at Ring 0
• On the fly Binary Translation
• Translation to Trap Sensitive Instructions
• Translated pages cached for reuse
• Sensitive and Privileged instructions are emulated
• Emulation by VMM to Achieve Virtualisation
• e.g Disk Read Block 5 by Guest OS2.. Mapped to
Block ..1005
• Used initially when not supported by H/W
Para-virtualisation
!
• Possible when OS Source Code available
• Modify OS Source Code
• Replace Sensitive instructions to trap for
emulation
• Example : KVM Hypervisor
Hardware Assisted Virtualisation