Cloud Computing – UNIT - II
VIRTUALIZATION
Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary-> Assembly->High level UI hides the business logic DNS names hide the IP addresses URL hides the web resource API hides functionality JVM hides the intermediate code
Before we understand Virtualization How do you run Multiple Operating Systems on the same box? Can they interact with each other ? Can they share each other’s resources such as memory, hard disk, network etc ? Can you run all of them together (in one shot?) How easy it is to switch between them ?
STEP BY STEP UNDERSTANDING OF VIRTUALIZATION
Hard Disk Partitioning WIN 7 UBUNTU RED HAT
OS Virtualizes the Hardware Device Drivers
CPU Virtualization (x86)
Clustering and Failover Node 1 and Node 2 have same content either through shared or replicated mode. One node is active and the rest is passive. Heartbeat keeps track of the presence of the node Node 1 goes down, no heartbeat The services are transferred and rendered from Node 2 This is transparent and hence virtual to the client
Java Virtual Machine Class loader loads the java classes/interfaces Execution Engine executes the methods contained in the loaded classes Run time data areas store run time data like stack. Each class execution is done by means of a java thread.
Virtualization Wikipedia Definition Virtualization, in computing, refers to the act of creating a virtual (rather than actual) version of something, including but not limited to a virtual computer hardware platform, operating system (OS), storage device, or computer network resources.computer hardwareoperating systemstorage devicecomputer network
Concept Of Virtualization Simulated Environment (a Virtual Machine) provides the environment required to run he Guest Software The Guest Software can be complete OS to specific programs Simulated Environment can control the guest environment in terms of access and lifetime The Guest Program thinks that it is running in an actual system not a simulated environment Actual System Simulated Env GUEST Software Simulated Env GUEST Software Simulated Env
Basic Architecture Hypervisor allows multiple Guest OSs share the Hardware via Host OS. Mostly the Hypervisor is run inside the HOST OS Example : Guest Windows 7 Prof SP1 running on a HOST Ubuntu 13.1 In some cases, the Hypervisor is inside the Host OS itself
Hypervisor (Virtual Machine Monitor) Directly runs on the hardware of the host Shares the hardware resources with multiple VMs Manages CPU, memory and Network interface between different VMs Runs at ring 0
Virtual Machine Software implementation of a computing environment A computing environment is a software process which can host an OS or a program Computing Environment emulates – A processor architecture – Memory – Secondary Storage
TYPES OF VIRTUALIZATION
CPU Virtualization CPU is shared between multiple Guest OSs Hypervisor does the translations of commands between Guest OSs and the CPU Guest OS cannot reside on Ring 0 makes the more complex
Full Virtualization Guest OS in Ring 1, Hypervisor in Ring 0 Hypervisor traps the Guest OS Privileged commands and does the binary translation of the command. No change in Guest OS required Reduced performance due to this translation process (Virtualization overhead)
Full Virtualization With Reducing Virtualization Overhead Guest OS runs on Ring 0 (which is an improvement) Ring -1 introduced which runs the Hypervisor No binary translation is required as Guest OS can run Privileged instructions directly on the H/W. For I/O calls, Hypervisor is used. Improves performance Needs change in CPU Arch (provided by intel-VT and AMD- V)
Para Virtualization A software hypervisor is installed on a Physical server The guest OS is modified to make Hypervisor calls These Hypervisor calls (CPU and memory access) are directly send to the hardware I/O calls are routed through regular Hypervisor The Hypervisor is not overloaded Overhead in modifying OS Kernel
Network Virtualization
To Summarize….
Benefits of Virtualization Server Consolidation Testing and Development Dynamic Load Balancing Disaster Recovery Pre-loaded VMs for specific needs Virtual Desktops Reduces installation and configuration time of the data center Improves data center efficiency
Virtualization and the Cloud Cloud computing requires many many servers to carry out varied activities Creating phyiscal servers is expensive and not scalable Hence, virtualization is a natural fit Scalability is a major use case in Cloud computing, it is easy to create/clone VMs and increase capacities If there are node failures, it is easy to bring up a VM from nowhere Maintaining a VM is easier than maintaining a physical box.
Thank You