Cloud Computing Lecture 5-6 Muhammad Ahmad Jan Lecture Outline Why Virtualization Virtualization Hypervisor and its types Types of virtualization Virtualization Products Example… Problem • Enterprise IT centers support many service applications • • • • • Microsoft Exchange Oracle SAP Web servers … • Each service application demands its own environment • • • • Specific version of operating system Multiple processors and disks Specialized configurations … • Combining services on same server host is difficult (at best) • Conflicting demands • Incompatible loads • …. Problem … • Adding or upgrading hardware or OS is difficult • Testing and refitting active service • Complicated changeover tactics •… • Load balancing is impossible • Services tied to own systems • Some underused, some overused Modest Example • Approx 20 difference services • Approx 20 server systems • • • • multiple processors > 100 gigabytes of RAM ~ 20 terabytes of disk storage Multiple operating systems Solution - Virtualization • Decouple [OS, service] pair from hardware • Multiplex lightly-used services on common host hardware • Migrate services from host to host as needed • Introduce new [OS, service] pairs as needed • • • • Commissioning new services Testing upgrades of existing services Experimental usage … Virtualization Virtualization is the ability to run multiple operating systems on a single physical system and share the underlying hardware resources. It is the process by which one computer hosts the appearance of many computers. Virtualization is used to improve IT throughput and costs by using physical resources as a pool from which virtual resources can be allocated. Virtualization Benefits of Virtualization Sharing of resources helps cost reduction Isolation: Virtual machines are isolated from each other as if they are physically separated Encapsulation: Virtual machines encapsulate a complete computing environment Hardware Independence: Virtual machines run independently of underlying hardware Portability: Virtual machines can be migrated between different hosts. Virtualization in Cloud Computing Cloud computing takes virtualization one step further: • You don’t need to own the hardware • Resources are rented as needed from a cloud • Various providers allow creating virtual servers: – Choose the OS and software each instance will have – The chosen OS will run on a large server farm – Can instantiate more virtual servers or shut down existing ones within minutes • You get billed only for what you used Hypervisor • The hypervisor (also called a virtual machine monitor) is the low-level program that allows multiple operating systems to run concurrently on a single host computer. • Hypervisors use a thin layer of code in software or firmware to allocate resources in real-time. • Its just like a traffic cop that controls I/O and memory management. • Hypervisor can perform VM creation, Resource allocation (CPU, memory, Disks), VM migration and destruction etc. Type 1 Hypervisor • Type 1 hypervisors run directly on the system hardware. They are often referred to as a "native" or "bare metal" or "embedded" hypervisors. Type 2 Hypervisor • Type 2 hypervisors run on a host operating system. When the virtualization movement first began to take off, Type 2 hypervisors were most popular. • Administrators could buy the software and install it on a server they already had. Two Approaches Difference b/w Type 1 and Type 2 hypervisors • Type 1 hypervisors are gaining popularity because building the hypervisor into the firmware is proving to be more efficient. • According to IBM, Type 1 hypervisors provide higher performance, availability, and security than Type 2 hypervisors. • IBM recommends that Type 2 hypervisors be used mainly on client systems where efficiency is less critical or on systems where support for a broad range of I/O devices is important and can be provided by the host operating system. Experts’ Prediction • Experts predict that shipping hypervisors on bare metal will impact how organizations purchase servers in the future. • Instead of selecting an OS, they will simply have to order a server with an embedded hypervisor and run whatever OS they want. Virtualization - Basic Terminologies Host Machine – Physical machine that hosts one or more virtual machines. Virtual Machine (Guest VM) – A self-contained software emulation of a machine, which does not physically exist, but shares resources of an underlying physical machine. VM Cluster – A collection of VM Hosts that act as a single large host. If one of the hosts are removed, all of the VMs that the host was running seamlessly continue running on the other hosts. A true VM cluster requires shared storage such as a SAN/NAS device. P2V (Physical to Virtual) – Refers to the process of migrating operating systems, applications and data from the hard disk of a physical server to a virtual machine. Virtualization - Basic Terminologies VM Snapshot – Preserves the state and data of a virtual machine at a given point in time, allowing for recovery at a single point in time for a VM. Snapshots are NOT a way to do backups, but part of the technology used to create snapshots are used by backup software to do backups correctly. VM Backup – Virtual machine backup can be performed multiple different ways depending on the backup software and the type of hypervisor that the VM guest resides on. The backup software guards against data loss and can be used to recover files in the event of hardware failure or other disaster. VM Replication – The ability to replicate virtual machines at the server virtualization level using replication software. Provides redundancy for quick VM recovery and reduced downtime in the event of failure or disaster. Attributes of All Virtual Machines Software Compatibility – Provides compatible abstraction so all software written for the machine that VM is virtualizing will run in it . • Java – “Write once Run anywhere” Isolation – All software running on the VM is contained within it and can’t affect other VMs or processes. Performance – Any new software layer adds overhead to the system. Types of Virtualization • Server Virtualization • Application Virtualization • Network Virtualization • Storage Virtualization • Desktop Virtualization • Virtual Desktop Infrastructure (VDI) Server Virtualization • Partitioning of a physical server into smaller virtual servers in order to better utilize server resources. Application Virtualization • The separation of the installation of an application from the underlying operating system on which it is executed. • Application virtualization is layered on top of other virtualization technologies, allowing computing resources to be distributed dynamically in real-time. Network Virtualization • The process of combining hardware and software network resources to create a single pool of resources that make up a virtual network that can be accessed without regard to the physical component. Storage Virtualization • The process of consolidating the physical storage from multiple network storage devices so that it appears to be a single storage unit. Desktop Virtualization • The process of virtualizing desktop computers using virtualization software, such that the desktop computer and the associated operating system and applications are separated from the physical client device that is used to access it. Virtual Desktop Infrastructure (VDI) • The practice of hosting a desktop environment within a virtual machine that runs on a centralized or remote server. Products For the Enterprise • VMware ESX/vSphere, Virtual Center • Microsoft HyperV For the end user • VMware Player, Server • Oracle Virtualbox • QEmu (Quick Emulator) • Microsoft Virtual PC Finally, there are other products besides these and many more to appear especially with the explosion of cloud computing Example – VirtualBox (Step-1) Example – VirtualBox (Step-2) Example – VirtualBox (Step-3) Creating VM – Step 1 Creating VM – Step 2 Creating VM – Step 3 Creating VM – Step 4 Creating VM – Step 5 The End