Virtualization and
Cloud Computing
Norman Wilde
Thomas Huber
20090909_VirtualizationAndCloud
An opening caveat ...
This talk is based on
speeches at conferences,
discussions with people in
industry, and some
experimentation.
A lot of people think they
will make a lot of money
so there is lots of hype!
But there seems to be
something fundamental
going on.
20090909_VirtualizationAndCloud
Some sun
behind the
clouds?
2
Two Technologies for Agility
Virtualization:
The ability to run multiple operating systems on a
single physical system and share the underlying
hardware resources*
Cloud Computing:
The provisioning of services in a timely (near on
instant), on-demand manner, to allow the scaling
up and down of resources**
* VMware white paper, Virtualization Overview
** Alan Williamson, quoted in Cloud BootCamp March 2009
20090909_VirtualizationAndCloud
The Traditional Server
Concept
Web Server
App Server
DB Server
EMail
Windows
Linux
Linux
Windows
IIS
Glassfish
MySQL
Exchange
20090909_VirtualizationAndCloud
And if something goes wrong
...
Web Server
App Server
DB Server
EMail
Windows
DOWN!
Linux
Windows
MySQL
Exchange
IIS
20090909_VirtualizationAndCloud
The Traditional Server
Concept
System Administrators often talk about servers as a
whole unit that includes the hardware, the OS, the
storage, and the applications.
Servers are often referred to by their function i.e. the
Exchange server, the SQL server, the File server,
etc.
If the File server fills up, or the Exchange server
becomes overtaxed, then the System Administrators
must add in a new server.
20090909_VirtualizationAndCloud
The Traditional Server
Concept
Unless there are multiple servers, if a service
experiences a hardware failure, then the
service is down.
System Admins can implement clusters of
servers to make them more fault tolerant.
However, even clusters have limits on their
scalability, and not all applications work in a
clustered environment.
20090909_VirtualizationAndCloud
The Traditional Server
Concept
Pros
Easy to conceptualize
Fairly easy to deploy
Easy to backup
Virtually any
application/service can be
run from this type of setup
Cons
Expensive to acquire and
maintain hardware
Not very scalable
Difficult to replicate
Redundancy is difficult to
implement
Vulnerable to hardware
outages
In many cases, processor is
under-utilized
20090909_VirtualizationAndCloud
The Virtual Server Concept
Virtual Machine Monitor (VMM) layer between Guest OS and
hardware
20090909_VirtualizationAndCloud
Close-up*
* adapted from a diagram in VMware white paper, Virtualization
Overview
Server
1
Guest OS
Server
2
Guest OS
Clustering
Service
Console
VMM (Virtual Machine Monitor)
x86 Architecture
Intercepts
hardware requests
20090909_VirtualizationAndCloud
10
The Virtual Server Concept
Virtual servers seek to encapsulate the
server software away from the hardware
This includes the OS, the applications, and the
storage for that server.
Servers end up as mere files stored on a
physical box, or in enterprise storage.
A virtual server can be serviced by one or
more hosts, and one host may house more
than one virtual server.
20090909_VirtualizationAndCloud
11
The Virtual Server Concept
Virtual servers can still be referred to by their
function i.e. email server, database server,
etc.
If the environment is built correctly, virtual
servers will not be affected by the loss of a
host.
Hosts may be removed and introduced
almost at will to accommodate maintenance.
20090909_VirtualizationAndCloud
12
The Virtual Server Concept
Virtual servers can be scaled out easily.
If the administrators find that the resources supporting a
virtual server are being taxed too much, they can adjust the
amount of resources allocated to that virtual server
Server templates can be created in a virtual
environment to be used to create multiple, identical
virtual servers
Virtual servers themselves can be migrated from
host to host almost at will.
20090909_VirtualizationAndCloud
14
How does it work?
Virtualization transforms hardware into
software.
It is the creation of a fully functional virtual
computer that can run its own applications
and operating system.
Creates virtual elements of the CPU, RAM,
and hard disk.
Virtual Server
Implementation
Type 1 Hypervisor
Type 2 Hypervisor
Paravirtualization
cs431-cotter
18
Virtual Networking
implementation
Type 1 Hypervisor
Runs on bare metal
Virtual machines run in user mode
cs431-cotter
VM runs the guest OS (which thinks it is running
in kernel mode) Virtual kernel Mode
If guest OS calls sensitive instructions, hypervisor
will trap and execute the instructions.
If application on guest OS calls sensitive
instructions (system calls), hypervisor traps to
guest OS.
20
Type 1 Hypervisors
Figure 8-26. When the operating system in a virtual machine
executes a kernel-only instruction, it traps to the hypervisor if
virtualization technology is present.
cs431-cotter
21
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Trap-and-Emulate
Type 2 Hypervisor
Runs from within a OS.
Supports guest OSs above it.
cs431-cotter
Boot from CD to load new OS
Read in code, looking for basic blocks
Then inspect basic block to find sensitive instructions.
If found, replace with VM call (process called binary
translation)
Then, cache block and execute.
Eventually all basic blocks will be modified and
cached, and will run at near native speed.
23
Type 2 Hypervisor
Applications Applications Applications
OS 1
OS 2
OS 3
Virtualization Platform
Applications
Base Operating System
Hardware
cs431-cotter
24
Paravirtualization
Modify Guest OS so that all calls to sensitive
instructions are changed to hypervisor calls.
Much easier (and more efficient) to modify
source code than to emulate hardware
instructions (as in binary translation).
In effect, turns the hypervisor into a
microkernel.
cs431-cotter
25
Paravirtualization (1)
Figure 8-27. A hypervisor supporting both true
virtualization and paravirtualization.
cs431-cotter
26
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Problems with
Paravirtualization
Paravirtualized systems wont run on native
hardware
There are many different paravirtualization
systems that use different commands, etc.
VMware, Xen, etc.
Proposed solution:
Modify the OS kernel so that it calls a special set
of procedures to execute sensitive instructions
(Virtual Machine Interface )
cs431-cotter
Bare metal link to library that implement code
On VM link to VM specific library
27
Paravirtualization (2)
Figure 8-28. VMI Linux running on (a) the bare
hardware (b) VMware (c) Xen.
cs431-cotter
28
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
VM by Xen
VMware architecture
Products (partial List)
Microsoft Virtual PC, Hyper-V
QEMU Processor Emulation & VM
Sun Microsystems xVM, VirtualBox
VMware ESX Server, Workstation, Fusion,
Player, Server
Xen Xen
VirtualIron
cs431-cotter
31
Memory Virtualization
OS tracks mapping of virtual memory pages
to physical memory pages.
Builds page tables, then update paging
register (trap).
Allow hypervisor to manage page mapping,
and use shadow page tables for the VMs
cs431-cotter
32
Memory Virtualization
Changes to page tables do NOT trap!
cs431-cotter
One solution: Mark shadow page tables as read
only. Then when VM tries to write to table, page
fault traps to hypervisor.
Paravirtualized OS: Since OS has been modified
to account for hypervisor, page table updates can
be followed by call to hypervisor about changes.
33
I/O Virtualization
Each guest OS holds its own partition.
cs431-cotter
Typically implemented as a file or region on disk
Hypervisor must convert guest OS address (block
#) into physical address in region
May convert between storage types.
Must deal with DMA requests
34
VM on Multi-core CPUs
Each core can be configured for multiple
virtual machines.
cs431-cotter
A Quad-core CPU could be configured as a 32
node multi-computer
Limiting factor is often memory. Each guest OS
has its own requirements (512 MB?)
35
Virtual Networking
implementation
Virtual Server Advantages
Power saving over multiple physical servers
Simplify system administration by integrating
all servers into one physical machine
Server hardware resource optimization
Virtual Server disadvantages
When host server machine crash, all virtual
servers embedded in the server crash too.
Virtual Networking
implementation
Electricity power calculation
General desktop/servers power consumption
CPU :
RAM :
Graphic card :
Mother board :
CD-ROM :
HDD :
Monitor :
100W
8W
30W
20W
20W
13W
40W
------------------------------------------------------------------Total =
230W
Electricity power calculation
General server power consumption
(per day)
230W x 24(hours) = 5,520 Wh
= 5.5 KWh
5.5kWh $ ?
Electricity power calculation
A fluorescent light power consumption
30 40 W
230W / 35W 6.5
Power consumption
comparison
VS
5 Physical
servers
Virtual Server
Power consumption comparison
230W
x
5
x
24h
=
27.6kwh + a
230W
x
24h
=
5.5kwh + a
The Virtual Server Concept
Pros
Resource pooling
Highly redundant
Highly available
Rapidly deploy new servers
Easy to deploy
Reconfigurable while
services are running
Optimizes physical
resources by doing more
with less
Cons
Slightly harder to
conceptualize
Slightly more costly (must
buy hardware, OS, Apps,
and now the abstraction
layer)
20090909_VirtualizationAndCloud
45
Virtualization Status
Offerings from many companies
Hardware support
e.g. VMware, Microsoft, Sun, ...
Fits well with the move to 64 bit (very large
memories) multi-core (concurrency) processors.
Intel VT (Virtualization Technology) provides
hardware to support the Virtual Machine Monitor
layer
Virtualization is now a well-established
technology
20090909_VirtualizationAndCloud
46
So what about
Cloud Computing?
20090909_VirtualizationAndCloud
47
Suppose you are Forbes.com
You offer on-line real
time stock market
data
Why pay for capacity
weekends, overnight?
9 AM - 5 PM,
M-F
Rate of
Server
Accesses
ALL OTHER
TIMES
20090909_VirtualizationAndCloud
48
Forbes' Solution
Host the web site in Amazon's EC2 Elastic
Compute Cloud
Provision new servers every day, and
deprovision them every night
Pay just $0.10* per server per hour
* more for higher capacity servers
Let Amazon worry about the hardware!
20090909_VirtualizationAndCloud
49
Cloud computing takes
virtualization to the next step
You dont have to own the hardware
You rent it as needed from a cloud
There are public clouds
e.g. Amazon EC2, and now many others
(Microsoft, IBM, Sun, and others ...)
A company can create a private one
With more control over security, etc.
20090909_VirtualizationAndCloud
50
Goal 1 Cost Control
Cost
Many systems have variable demands
Batch processing (e.g. New York Times)
Web sites with peaks (e.g. Forbes)
Startups with unknown demand (e.g. the
Cash for Clunkers program)
Reduce risk
Don't need to buy hardware until you need it
20090909_VirtualizationAndCloud
51
Goal 2 - Business Agility
More than scalability - elasticity!
Ely Lilly in rapidly changing health care
business
Using EC2, about 5 minutes!
Used to take 3 - 4 months to give a department a
server cluster, then they would hoard it!
And they give it back when they are done!
Scaling back is as important as scaling up
20090909_VirtualizationAndCloud
52
Goal 3 - Stick to Our Business
Most companies don't WANT to do system
administration
Forbes says:
We are is a publishing company, not a software
company
But beware:
Do you really save much on sys admin?
You don't have the hardware, but you still need to
manage the OS!
20090909_VirtualizationAndCloud
53
How Cloud Computing Works
Various providers let you create virtual servers
You create virtual servers ("virtualization")
Set up an account, perhaps just with a credit card
Choose the OS and software each "instance" will have
It will run on a large server farm located somewhere
You can instantiate more on a few minutes' notice
You can shut down instances in a minute or so
They send you a bill for what you use
20090909_VirtualizationAndCloud
54
(footnote)
How come Amazon?
Grew out of efforts to manage Amazons own
services
(Each time you get a page from Amazon, over a
hundred servers are involved)
See reference Amazon Architecture on their
service design concepts
They got so good at it that they launched
Amazon Web Services (AWS) as a product
20090909_VirtualizationAndCloud
55
Cloud Computing Status
Seems to be rapidly becoming a mainstream
practice
Numerous providers
Amazon EC2 imitators ...
Just about every major industry name
IBM, Sun, Microsoft, ...
Major buzz at industry meetings
20090909_VirtualizationAndCloud
56
Sejarah Cloud computing
Ide awal cloud computing pada tahun 1960-an, saat John Mccarthy, pakar
komputasi MIT, salah satu pionir intelejensia buatan, menyampaikan visi bahwa
suatu haru nanti komputasi akan menjadi infrastruktur publik, seperti listrik dan
telepon.
Tahun 1995, larry Ellison, pendiri oracle, memunculkan ide Networking
Computing sebagai kampanye untuk menggugat dominasi Microsoft yang saat
itu merajai desktop computing dengan Window 95-nya.
Akhir era -90, lahir konsep ASP (Application Service Provider) yang ditandai
dengan kemunculan perusahaan pusat pengolah data.
Tahun 2000, Marc Benioff, mantan wakil presiden perusahaan oracle.
salesforce.com ini merupakan sebuah perangkat lunak CRM dengan basis
SaaS (Software as a Service). Yang tak disangka gebrakan ini mendapat
tanggapan hebat. Sebagai suksesor dari visi Larry Ellison, bossnya. Dia
memiliki sebuah misi yaitu The End of Software.
2005-sekarang, cloud computing semakin meningkat popularitasnya, dari mulai
penerapan sistem, penggunaan nama, dll. Ditambah meningkatnya kualitas
jaringan komputer dan beragamnya gadget yang ada.
Pengertian cloud computing
Cloud Computing atau komputasi awan adalah komputasi
berbasis internet, dimana server yang dibagi bersama
menyediakan sumber daya, perangkat lunak, dan informasi untuk
komputer dan perangkat lain sesuai permintaan. Cloud
computing juga merupakan sebuah metode komputasi dimana
kemampuan IT disediakan sebagai layanan berbasis internet.
Singkat dari definisi Cloud Computing itu sendiri adalah
gabungan dari pemanfaatan teknologi (komputasi) dan
pengembangan berbasis internet (awan).
KARAKTERISTIK CLOUD COMPUTING
1. On_Demand Self-Services
Sebuah layanan cloud computing harus dapat dimanfaatkan oleh
pengguna melalui mekanisme swalayan dan langsung tersedia pada
saat dibutuhkan.
2. Broad Network Access
Sebuah layanan cloud computing harus dapat diakses dari mana saja,
kapan saja, dengan alat apa pun, aslkan terhubung ke jaringan
layanan. Contoh: HP, Tablet.
3. Resource Pooling
Sebuah layanan cloud computing harus tersedia secara terpusat dan
dapat membagi sumber daya secara efisien.
4. Rapid Elasticity
Sebuah layanan cloud computing harus dapat menaikan atau
menurunkan kapasitas sesuai kebutuhan.
5. Measured Service
Sebuah layanan monitoring yang disediakan oleh provider service yang
memungkinkan
pengguna
service
Cloud
Computing
untuk
memonitoring resurceo, seperti bandwidth, kapasitas, proses yang
sedang berjalan, dsb.
CLOUD COMPUTING MEMPUNYAI 3 TINGKATAN
LAYANAN YANG DIBERIKAN KEPADA PENGGUNA,
YAITU :
1.
2.
3.
Infrastructure as a service, adalah penyediaan infrastruktur yang
disediakan melalui internet dan dibayarkan berdasarkan pemakaian.
Meliputi Grid untuk virtualized server, storage & network. Contoh :
Amazon Elastic Compute Cloud dan Simple Storage Service
Platform as a service, memfokuskan pada aplikasi dimana dalam hal ini
seorang developer tidak perlu memikirkan hardware dan tetpa fokus
pada pembuatan aplikasi tanpa harus mengkhawatirkan sistem operasi,
infrastructure scaling, load balancing, dll. Contoh : yang telah
mengimplementasi ini adalah Force.com dan Microsoft Azure investment
Software as a service, adalah layanan software yang digunakan melalui
internet. Contoh : Google Apps, SalesForce.com dan aplikasi jejaring
sosial seperti FaceBook
Dari tiga tingkatan layanan yang diberikan kepada
pengguna, dapat disimpulkan :
Apabila kita membutuhkan sebuah aplikasi, maka kita
gunakan Software as a service
Ketika kita memiliki sebuah aplikasi dan ingin kita
instal dan jalankan di jaringan internet, kita gunakan
Infrastructure as a service
Sedangkan, apabila kita tidak memiliki aplikasi sama
sekali namun ingin kita jalankan di jaringan internet,
kita dapat membangunnya melalui Platform as a
service
Implementasi Cloud
computing
Implementasi Cloud Computing telah umum dan banyak
kita gunakan. Diantaranya yaitu aplikasi yang sering kita
gunakan, seperti Google Docs, DropBox dan Bing Map.
Google Docs, aplikasi ini digunakan sebagai media penyimpanan
dokumen saja, tapi dengan aplikasi ini, user dapat mengubah isi
dari dokumen tersebut secara online. User juga dapat
memberikan hak akses kepada pengguna lain, baik hanya untuk
melihat isi dokumen maupun mengubah isi dokumen tersebut.
Untuk menikmati aplikasi ini kita harus memiliki akun Gmail.
DropBox, merupakan sebuah layanan backup, sharing file dan
sinkronisasi file yang memanfaatkan jalur internet sehingga
siapapun yang memiliki akses internet dapat melakukan
sinkronisasi dari seluruh penjuru dunia. Layanan DropBox
tersedia untuk sistem operasi Windows, Linux dan Malcintosh.
Bahkan juga tersedia untuk perangkat bergerak misalnya iphone,
ipad, blackberry dan android.
Bing Maps hampir sama dengan Google Maps. Bing Map merupakan
kesatuan layanan internet interakktif oleh Windows, sama dengan
Google dan Yahoo. Kesamaan keduanya ialah mampu menampilkan
penampakan permukaan bumi dari atas melalui satelit. Google Maps
menyebut ini dengan istilah Satelit View, sedangkan pada Bing Maps
disebut Bird Eye.
Kelebihan cloud computing
1.
2.
3.
4.
5.
Menghemat biaya investasi awal untuk pembelian sumber daya
Bisa menghemat waktu sehingga perusahaan bisa langsung
fokus ke profit dan berkembang cepat
Membuat operasional dan manajemen lebih mudah karena
sistem pribadi/perusahaan yang tersambung dalam satu cloud
dapat dimonitor dan diatur dengan mudah
Menjadikan kolaborasi yang terpercaya dan lebih ramping
Menghemat biaya operasional pada saat realibilitas ingin
ditingkatkan dan kritikan sistem informasi yang dibangun
Kelemahan cloud
computing
Komputer akan menjadi lambat atau tidak bisa
dipakai sama sekali jika internet bermasalah atau
kelebihan beban. Dan juga perusahaan yang
menyewa layanan dari cloud computing tidak punya
akses langsung ke sumber daya. Jadi, semua
tergantung dari kondisi vendor/penyedia layanan
cloud computing. Jika server vendor rusak atau
punya layanan backup yang buruk, maka perusahaan
akan mengalami kerugian besar
References
VMware Inc., Virtualization Overview,
http://www.vmware.com/pdf/virtualization.pdf
Todd Hoff, Amazon Architecture, http://highscalability.com/amazonarchitecture, Sept. 18, 2007
Intel Corp., Technology brief: Understanding Intel Virtualization
Technology,
http://download.intel.com/technology/virtualization/320426.pdf
aw2.0 Ltd, Cloud BootCamp March 2009,
http://www.aw20.co.uk/help/cloudbootcamp_march2009.cfm
20090909_VirtualizationAndCloud
68
Where do we go from here?
Any ideas to keep us out of the rain?
20090909_VirtualizationAndCloud
69