A Lightweight Virtual Machine Framework
Total Page:16
File Type:pdf, Size:1020Kb
A LIGHTWEIGHT VIRTUAL MACHINE FRAMEWORK Student: Aarón Jiménez Govea Advisor: Héctor A.Durán Limón. Universidad de Guadalajara, Centro Universitario de Ciencias Económico Administrativas (CUCEA), Periférico Norte 799, Zapopan, Jalisco, Mexico, 45100 [email protected] Abstract: Computer systems increasingly require optimum performance for satisfying the computing power demands. It is necessary to ensure that the resource demands will be covered without affecting the overall system performance or other applications. Virtualization is a paradigm that allows for optimising the use of the resources by obtaining multiple virtual resources e.g. multiple processors, file systems, disk storage etc. This is achieved by hiding the technical details to the end user. Heavyweight virtual machines (VMs) are effective mechanisms to maintain established quality of service (QoS) contracts. These VMs are able to provide a virtualization of a complete operating system environment over a host operating system. However, heavyweight VMs has a high cost in their performance (10-20%). This penalty is higher when there is a huge amount of IO operations. The main goal of this work is to develop a framework for deploying lightweight VMs. This kind of VMs focuses on virtualizing only the resources that are required by a particular kind of application, like CPU, memory buffer and network bandwidth. This framework will be responsible for the reservation of resources. It would operate as a resource scheduler for the applications. Keywords: Vitual machines (VMs), Lightweight virtual machine, Resource reservation, Quality of service (QoS). 1. Motivation In a distributed environment, the interaction between the real-time applications and the operating system could be critical because application may have an excessive demand for resources. Therefore, bottlenecks may be generated affecting performance of all applications in the system.. When using virtualization it is possible to simulate the behavior and functions of the kernel of the operating system, and thus the administration of resources can be optimised. Moreover, if applications send a request for resources in advance a contract can be established on the use of resources that guarantees the quality of service (QoS). The implementation of a virtual machine that is in charge of the administration of the resources demanded by critical applications Internal(e.g. real-time applications) could provide a solut ionReport to the problem of resource allocation. 1 Traditional virtual machines such as Xen [8] and VMWare [5] are heavyweight and have the drawback of a performance penalty that varies between 10-20%. In the worse case, it could worsen still more because of the excessive invocation of the operations of I/O. On the other hand, the performance of a light virtual machine, as shown in figure 1, could have very low penalty, since it is not necessary to simulate all the operations that a complete operating system performs. Figure 1. Ligh VM Layer. 2. Introduction Recent trends in the field of computer systems have enabled a significant increase in new hardware and software, however, there is a demand for more speed, reliability and security in computer systems. Such a situation is creating a need for both meeting quality of service (QoS) requirements - also referred to as Service Level Agreement (SLA) – and optimizing resource usage. Quality of Service (QoS), is refering to how the service is performed. It is a mechanism of implementation of policies for different applications. The goal of QoS is to guarantee certain level of performance of application's data flow. The performance refers to a specific time in which the application is going to receive requested data (throughput). In case of Light VM the QoS complies with its goals by using resource reservation control and assignation of priorities to applications [14]. Different situations, such as poor administration, limited availability in Internalcomponents and the constant resource demand by seveReportral applications are factors that make a system to have a low performance. With employing virtualization techniques the performance´s of applications should be better. Improve the use of hardware 2 resources by simulating virtual hardware components in software. The existing hardware components and their characteristics are replicated in software, e.g. multiple processors, drivers, disks, etc. The real hardware structure is hidden from the application and to isolate resource usage and mask out the complexity of resource management [5,6,7,12,13,15]. As a consequence this enables the optimization of resource usage. Virtual machines represent a higher-level approach whereby resources can be reserved without dealing with lower-level details such as scheduling algorithms, scheduling parameters, etc. Virtual machines are an effective mechanism to isolate resources. Hence, ensuring the allocated resources will be available when needed even in overloaded conditions. This approach also avoids spreading unwanted changes when a resource reconfiguration takes place e.g. dynamically assigning more CPU time to a particular VM. Thus, an important role of these virtual machines is acting as mechanisms that enforce the defined QoS contracts. The contracts imply a negotiation of the acceptable limits on the parameters to be complied by the QoS. 2.1. Kinds of Virtualization Virtualization can be achieved by using different techniques. Taking into account that the main part of a virtual machine is realized at the software level, it is feasible to define the following classification according to functionality and service the VMs offer [8]. There is the case that some kinds of virtual machines support different types of virtualization. 1) Emulation The virtual machine emulates a complete hardware environment different from the underlying machine. Examples are: Boochs, PearPC and QEMU in the nonaccelerated form [17,18,19]. 2) Full Virtualization (Or Native Virtualization) It is similar to the technique of emulation, full virtualization differ in that the applications inside a virtual machine can not be modified. The applications are designed to run on the architecture (natively). In this case each virtual machine monitor provides each virtual machine with all the services of the physical system, including memory management and virtualized devices. Examples are VMWare [5,16] and Microsoft’s Virtual Server [20]. 3) Paravirtualization The paravirtualization imply a communication between the guest OS and the hypervisor to improve performance and efficiency, as shown in figure 2. The hypervisor exports a modified version of the underlying hardware, the virtual machine is exported from the same architecture, this means that only minimal changes were Internalmade, but which are reflected in improved performan Reportce and speed. Examples of paravirtualization are the user-mode Linux (UML) [21] and Xen [8]. One important 3 disadvantage in the paravirtualization approach is that the kernel needs to be recompiled. 4) Operating System-Level Virtualization (Paenevirtualization) In this case the virtualization is performed by a single image provided by the traditional operating system in which there is no virtual machine monitor. The main advantage of this approach is that it requires less duplication of resources. The major disadvantage of this technique is that it is not possible to run operating systems that are different from the host operating system. Examples are: FreeBSD Jails [22], Linux VServers [23], Solaris Containers [24]. There are some virtual machines that support more then one type of virtualization such as Xen which supports Full Virtualization (only on basic architectures with hardware support for virtualization) and Paravirtualization. The virtualization technologies, such as emulation and full virtualisation have a low performance, because of the extensive use of I/O operations in disk-intensive applications. Regarding, Paravirtualizacion, the main problem is the fact that this technique requires recompiling the kernel [8,16]. Heavyweight virtual machines (VMs), such as VMWare and Xen [5,10,11], provide a virtualization of a complete operating system environment over a host operating system. However, this approach normally involves a performance penalty that goes from 10-20%. Even worse, this penalty is higher when there is a huge amount of IO operations. This kind of virtual machines have successfully been used in Grid and parallel programming environments [1, 2, 3]. However, not all applications require this kind of emulation for obtaining a good execution performance. Another issue is that it is common to deploy a single virtual machine (VM) on a node. The reason is avoiding potential problems for getting a negative impact from sharing the same resource with other VMs. Multiple VMs can be deployed on a single node if there is apriori knowledge of how much resources will consume each of the applications running on the VMs. Internal Report Figure 2. Virtualization Layer. 4 3. Proposal We propose a Lightweight VM Framework approach which avoids a full virtualization for certain applications. For example, voice over IP (VoIP) and video- conference applications may only require the virtualization of three kinds of resources: CPU, memory buffer and network bandwidth. The main goal of this work is to develop a framework for deploying lightweight VMs. This type of VMs focuses on virtualizing only the resources that are required by a particular kind of application, like