Virtualization and Cloud Computing Norman Wilde Thomas Huber 20090909_VirtualizationAndCloud
Some sun behind the clouds? 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. Some sun behind the clouds? 20090909_VirtualizationAndCloud
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 Windows IIS App Server Linux Glassfish DB Server Linux MySQL EMail Windows Exchange 20090909_VirtualizationAndCloud
And if something goes wrong ... Web Server Windows IIS App Server DOWN! DB Server Linux MySQL EMail Windows Exchange 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 Clustering Service Console Server 1 Guest OS Server 2 Guest OS VMM (Virtual Machine Monitor) x86 Architecture Intercepts hardware requests 20090909_VirtualizationAndCloud
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
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
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
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 d
Implementation Type 1 Hypervisor Type 2 Hypervisor Paravirtualization cs431-cotter
Virtual Networking implementation
Type 1 Hypervisor Runs on “bare metal” Virtual machines run in user mode 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. cs431-cotter
4/7/2017 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 Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 cs431-cotter
Trap-and-Emulate
Type 2 Hypervisor Runs from within a OS. Supports guest OSs above it. 4/7/2017 Type 2 Hypervisor Runs from within a OS. Supports guest OSs above it. 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. cs431-cotter cs431-cotter
Virtualization Platform Type 2 Hypervisor Applications Applications Applications OS 1 OS 2 OS 3 Virtualization Platform Applications Base Operating System Hardware cs431-cotter
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
Paravirtualization (1) 4/7/2017 Paravirtualization (1) Figure 8-27. A hypervisor supporting both true virtualization and paravirtualization. cs431-cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 cs431-cotter
Problems with Paravirtualization Paravirtualized systems won’t 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 ) Bare metal – link to library that implement code On VM – link to VM specific library cs431-cotter
Paravirtualization (2) 4/7/2017 Paravirtualization (2) Figure 8-28. VMI Linux running on (a) the bare hardware (b) VMware (c) Xen. cs431-cotter Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639 cs431-cotter
VM by Xen
VMware architecture
Products (partial List) 4/7/2017 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 cs431-cotter
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
Memory Virtualization Changes to page tables do NOT trap! 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. cs431-cotter
I/O Virtualization Each guest OS holds its own “partition”. 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 cs431-cotter
VM on Multi-core CPUs Each core can be configured for multiple virtual machines. 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?) cs431-cotter
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/server’s power consumption CPU : 100W RAM : 8W Graphic card : 30W Mother board : 20W CD-ROM : 20W HDD : 13W Monitor : 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 Virtual Server servers
Power consumption comparison x 24h = 5.5kwh + a 230W x 5 24h = 27.6kwh + 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
Virtualization Status Offerings from many companies e.g. VMware, Microsoft, Sun, ... Hardware support 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
So what about Cloud Computing? 20090909_VirtualizationAndCloud
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 ALL OTHER TIMES Rate of Server Accesses 20090909_VirtualizationAndCloud
20090909_VirtualizationAndCloud 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
Cloud computing takes virtualization to the next step You don’t 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
20090909_VirtualizationAndCloud 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
Goal 2 - Business Agility More than scalability - elasticity! Ely Lilly in rapidly changing health care business Used to take 3 - 4 months to give a department a server cluster, then they would hoard it! Using EC2, about 5 minutes! And they give it back when they are done! Scaling back is as important as scaling up 20090909_VirtualizationAndCloud
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
How Cloud Computing Works Various providers let you create virtual servers Set up an account, perhaps just with a credit card You create virtual servers ("virtualization") 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
(footnote) How come Amazon? Grew out of efforts to manage Amazon’s 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
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
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 : 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 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 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
20090909_VirtualizationAndCloud References VMware Inc., Virtualization Overview, http://www.vmware.com/pdf/virtualization.pdf Todd Hoff, Amazon Architecture, http://highscalability.com/amazon-architecture, 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
20090909_VirtualizationAndCloud Where do we go from here? Any ideas to keep us out of the rain? 20090909_VirtualizationAndCloud