Transcription of Virtualization Basics: Understanding Techniques and ...
1 Virtualization Basics: Understanding Techniques andFundamentalsHyungro LeeSchool of Informatics and Computing, Indiana University815 E 10th , IN is a fundamental part of cloud computing,especially in delivering Infrastructure as a Service (IaaS).Exploring different Techniques and architectures of the vir-tualization helps us understand the basic knowledge of virtu-alization and the server consolidation in the cloud with x86architecture. This paper describes Virtualization technolo-gies, architectures and optimizations regarding the sharingCPU, memory and I/O devices on x86 virtual machine and Subject [General]: Hardware/software interface; [Performanceof systems]: Performance attributes; [OperatingSystems]: Organization and designGeneral TermsPerformance, DesignKeywordsVirtualization, Virtual Machine Monitor, x86, Cloud Com-puting1.
2 INTRODUCTIONBack in 1974, Popek and Goldberg Virtualization require-ments were introduced in the article Formal Requirementsfor Virtualizable Third Generation Architectures [7] and itstill provides guidelines for virtualizing hardware resourcesand terms. Virtualization is now the foundation of cloudcomputing [1] to provide highly scalable and virtualized re-sources. Numerous systems and projects in industry, academiaand communities have adopted a Virtualization technologywith cloud computing services to reduce under-utilized hard-ware resources and achieve efficient use of systems.
3 The Fu-tureGrid project funded a US National Science Foundation(NSF), a Nebula platform launched by NASA, or Kasumi-gaseki Cloud supported by Japanese government is a goodexample of growing involvement in Virtualization technolo-gies with the cloud. Early technologies and developmentsin the Virtualization have been accomplished by some com-panies such as IBM from 1967 and vmware from 1998. Inopen source communities, Xen, KVM, Linux-vServer, LXCand others have supported Virtualization in different plat-forms with different approaches.
4 In this paper, x86 archi-tecture Virtualization will be discussed with these cloud computing, Infrastructure-as-a-Service (IaaS) pro-vides on-demand virtual machine instances with virtualiza-tion technologies. IaaS has been broadly used to provide re-quired compute resources in shared resource Web Services (AWS), Google Compute Engine, Mi-crosoft Windows Azure, and HP Cloud offer commercialcloud services. OpenStack, Eucalyptus, SaltStack, Nimbus,and many others provide private open source cloud plat-forms with community support in development.
5 Since thevirtualization is sharing resources, many concerns have beenraised regarding security, isolation and performance com-pared to native VIRTUALIZATIONV irtualization typically refers to the creation of virtual ma-chine that can virtualize all of the hardware resources, in-cluding processors, memory, storage, and network connectiv-ity [7]. With the Virtualization , physical hardware resourcescan be shared by one or more virtual machines. According tothe requirements from Popek and Goldberg, there are threeaspects to satisfy the Virtualization .
6 First, the virtualizationshould provide an equivalent environment to run a programcompared to a native system. If the program shows a differ-ent behavior under the Virtualization , it may not be eligibleas a virtualized environment. The Virtualization also needsto provide a secured control of virtualized resources. Havinga full control of resources is important to protect data andresources on each virtual environment from any threats orperformance interference in sharing physical resources. Vir-tualization often expects performance degradation due tothe additional tasks for Virtualization , but good performanceshould be achieved with a software or hardware support inhandling privileged instructions.
7 With these requirements,efficient Virtualization is guaranteed. In the following sec-tion, different types of hypervisors are explained with theimplementation level of Virtualization . Virtualized resourceis also presented in cpu, memory and I/O HypervisorTo understand Virtualization , hypervisor should be addressedfirst. Hypervisor enables communication between hardwareand a virtual machine so that the Virtualization accom-plishes with this abstraction layer (hypervisor). Hypervisoris originally called virtual machine monitor (VMM) from[7].
8 These two terms (Hypervisor and VMM) are typicallytreated as synonyms, but according to the distinction fromAgesen et al [1], a virtual machine monitor (VMM) is asoftware that manages CPU, memory, I/O data transfer,interrupt, and the instruction set on a given virtualized en-vironment. A hypervisor may refer to an operating system(OS) with the VMM. There is a slight distinction betweenhypervisor and VMM but in this paper, we consider theseterms to have identical meanings to represent a software forvirtual machine.
9 Typically, a hypervisor can be divided intoType 1 and Type 2 hypervisor based on the different levelof implementation. Type 1 is sitting on hardware and thecommunication between hardware and virtual machine is di-rect. The host operating system is not required in Type 1hypervisor since it runs directly on a physical machine. Dueto this reason, it is sometimes called a bare metal hyper-visor . vmware vSphere/ESXi, Microsoft Windows Server2012 Hyper-V, Citrix XenServer, Red Hat Enterprise Vir-tualization (RHEV) and open-source Kernel-based VirtualMachine (KVM) are identified in this category.
10 Type 2 hy-pervisor is on the operating system to manage virtual ma-chine easily with the support of hardware configuration fromoperating system. The extra layer between hardware andvirtual machine in the type 2 hypervisor causes inefficiencycompared to the type 1 hypervisor. VirtualBox and VMwareWorkstation are in this category. The terms of Host or Guestmachine (or domain) are used in the hypervisor to describedifferent roles. Host machine (domain) contains a hypervisorto manage virtual machines, and Guest machine (domain)means each virtual machine sitting on a hosted machine ina secure and isolated environment with its own logical do-main.