DESKTOP VIRTUALIZATION OVER THE CLOUD THROUGH HOST-BASED VIRTUAL MACHINES PROJECT REFERENCE NO. : 37S1074 COLLEGE : SAPTHAGIRI COLLEGE OF ENGINEERING, BANGALORE BRANCH : COMPUTER SCIENCE AND ENGINEERING GUIDE : DR. C.M. PRASHANTH STUDENTS : NITIN SHARATH ANKUR PRAKASH Keywords: VDI, QEMU-KVM, Cloud Computing, Virtualization. Introduction: Cloud computing is the concept of rendering computing services to a user over a network and has been the predominant way of delivering IT services in the past few years. It boasts many features such as performance, business continuity, scalability, to name a few. Virtualization is the process of virtualizing computing resources. It is usually done to get better utilization from otherwise under-utilized resources. Desktop virtualization is a type of virtualization where desktops are virtualized. It is the concept of isolating a logical operating system instance from the client that is used to access it. Virtual Desktop Infrastructure (VDI) is an architectural model for desktop virtualization where the client operating system is run on host-based virtual machines. The storage, execution and management of virtual desktops are done at the data centre[1]. Host-based forms of desktop virtualization require that the users view and interact with their desktops over a network by using a remote display protocol. Since processing takes place in a data centre, client devices can be thin clients, zero clients(no local storage), smartphones or tablets. Each user connects to an individual virtual machine that is hosted in a data centre. The user may connect to the same VM every time, allowing personalization, or be given a random VM from a pool. The project developed is a management software suite, called Neptune, which can be used to set-up an infrastructure for providing virtual desktops to a user over the web. Due to the 1
ubiquity of browsers, the system provides for a browser based interface for a platform independent solution. Objectives: To set-up a cloud environment which can be used to provide an infrastructure as a service(iaas) to the user by means of a virtualized desktop. To set-up a web based interface to the user which allows portability over a wide range of clients. To give the user, freedom to configure the specifications of his/her virtualized desktop. To give the user, freedom to scale the capacity of his/her virtual machine, on demand. Methodology: Hypervisor is a software residing on the host system which enables the virtualization. The hypervisor used here is QEMU-KVM[2,3]. QEMU is an open source processor emulator which is capable of emulating a variety of architectures. One of the objectives of this project, is to provide a pure browser based interface. To achieve this, Guacamole, an open source client-less HTML5 remote desktop gateway, has been used[4]. It supports protocols like VNC and RDP. Velocity is a templating engine developed by Apache[5] which can be used for producing dynamic web pages. It is developed in Java and is fully compatible with Java based servlet containers like Apache Tomcat. It is intended as an alternative development strategy against other tools for similar purposes, such as PHP or JSP(Java Servlet Pages). The storage is located on a centralized Network File System(NFS) which eases management and scalability. The project also uses a SQL Database to store and maintain persistent records of information about users and the virtual machines. Overall, the system follows a broker architecture. It includes a group of servers, a broker and group of clients. All the interactions from the clients to the servers happen through the broker. The hypervisors are hosted on multiple nodes(servers) and are managed remotely by a central node through libvirt[6]. This central node is also the broker node. The web server, hosted on the broker node as well, provides the gateway for the clients to access the virtual machines 2
hosted on the servers. This is done through Guacamole. The storage of the hypervisors are located on a centralized Networked File System(NFS) node. The web server also uses a database for user management. This structure is shown in the following figure. The system is designed such that the user is presented with a set of choices of predefined virtual desktops from which the user makes a selection. This selection is cloned to create a new virtual desktop for the user. This list of predefined virtual desktops is called the catalog. The cloned virtual desktops created for the user are the actual domains which will be run.the system can be divided into two main components. The Virtual Machine Management(VMM) module and the Web application. The VMM module contains interfaces to configure and manage the virtual machines where as the web application provides the front end and user management to interact with them. The hypervisors on the servers are centrally managed by the VMM module. Whenever a virtual machine has to be started, a node is chosen depending on its load and whether or not it can run the requested domain. If such a node is found, the virtual machine is started on it. If no such node satisfies the condition, the start fails and this error is relayed back to the requester. This function is done by the load balancer module. An advantage of having a centralized storage is that, the virtual machines can be started on any node, which can ease the load balancing process. Each connection is represented by a connection object. To start a virtual machine, a connection object is requested from the load balancer. The load balancer decides a node based on the parameters of the virtual machine, and sends the connection object of the corresponding node. This way, by arbitrating the connection objects through a single module, the load balancer can be isolated to a single unit, while relieving the others to focus on managing the virtual machine. The ability to migrate virtual machines can be useful for management, for example if a server needs to be taken down for maintenance purposes. This too, is taken care of by the VMM 3
module. After migration, the address and the port of the VNC server gets changed as it now runs on a new machine. Therefore, after the migration, the VMM module returns the new VNC address and port with which the migrated domain can be interfaced with. It should be noted, that migration is only meaningful in the context of the servers. In other words, as far as the user is concerned, all the virtual machines are hosted on one server. Therefore, the web application is designed to reflect the changes after migration, without any intervention from the user. Results and Conclusions: The system was set-up on 3 Intel i3 systems interconnected with each other through a Gigabit Ethernet. One of these system was designated as a broker. Although, this system is a broker and a hypervisor server, the two roles are distinct from each other. The networked file system(nfs) and the database were also set-up. Several tests were conducted to ensure that the system is working as proposed. This included various unit test, integration tests and overall system tests. In addition, a benchmarking test was also performed to demonstrate that varying the virtual CPUs of a domain result in an improvement in performance of the domain using a software called HardInfo. The test resulted are tabulated in the following table: Virtual CPUs HardInfo Benchmark Score(Lower is Better) 1 10.62 2 5.33 3 4.42 Overall the project presents a management suite, called Neptune, which can be used to setup a virtual desktop infrastructure which allows provisioning of virtual desktops to users as a service. It provides user management for managing users and their virtual machines. Due to the ubiquity of web browsers, the interfacing is done through then as a means of providing a platform independent client experience. The system uses QEMU-KVM as the hypervisor and the browser interface is provided by leveraging the Guacamole HTML5 Remote Desktop Gateway. 4
Scope of Future Work: The system has a rudimentary security model, so, a stronger and robust security model needs to be developed. The broker may prove to be a bottleneck to the system's scalability, and so, needs a more scalable architecture. One possibility is a multi-broker system sharing the load of a single broker. Scalable storage support needs to be added to the system. Support for interfacing remotely with various hardware peripherals needs to be added. Support for sound needs to be added. The browser interface can be improved by providing a more user friendly interface. The system can be optimized for tablets and other mobile devices. References: [1] Tomislav Petrovic and Kresimir Fertalj. Demystifying desktop virtualization. In Proceedings of the 9th WSEAS international conference on Applied computer science, pages 241{246. World Scientic and Engineering Academy and Society (WSEAS), 2009. [2] The official website of qemu. http://www.qemu.org. Accessed: 28th, April. [3] The official website of kvm. http://www.linux-kvm.org. Accessed: 28th, April. [4] The official website of guacamole. http://guac-dev.org. Accessed: 28th, April. [5] The official website of velocity templating engine. http://velocity.apache.org. Accessed: 28th, April. [6] The official website of libvirt. http://www.libvirt.org. Accessed: 28th, April.. 5