imbus Virtualization Ankur Shashikant Goyal Indiana University Bloomington Abstract imbus is one of the major open source cloud computing software platforms besides Eucalyptus and Open ebula. It manages the provisioning of virtual machines for a cloud providing infrastructure-as-aservice. This survey paper is to study and understand the virtualization concepts used by imbus while providing its client “infrastructure-as- a-service” cloud computing solutions. This document will first describe what is imbus and then give a detail note on the concepts of virtualization used along with a short description on XE and KVM implementation. called the VMM node. Once the configuration is complete the user or the subscriber can query directly with their workspace via the SSH as they would do with a physical machine. 2. imbus Components The main Nimbus components which help in the virtualization and configuring the user with their workspace are:- 1. Introduction Nimbus is a set of open source tools that together provide an Infrastructure-as-a-Service cloud computing solution. Nimbus allows clients to lease remote resources by deploying virtual machines on those resources and configuring them to represent an environment desired by the user. It was formerly known as Virtual Workspace Service. Nimbus aims to enable providers of resources to build private or community IaaS clouds by providing implementation of a compute cloud allowing users to lease computational resources by deploying virtual machines on those resources. Nimbus allows users to use IaaS clouds by providing a tool called context broker which creates a common configuration and security context across resources provisioned from potentially multiple clouds. Along with this it provides a sky computing tools to allow users to automatically scale across multiple distributed providers. Nimbus provides a platform for experimentation with features for scientific needs. Nimbus achieves its goal with the help of virtualization concept which is based on XEN and KVM. Each subscriber is first required to register with the Nimbus service provider. Subscriber then deploys Nimbus through cloud configuration. Each subscriber creates its own virtual workspace which the workspace service front end deploys the VM workspace onto a physical node Workspace Service Site Manager It is the standalone site VM manager that the remote machines can invoke to configure and deploy their workspace on Nimbus. It supports protocols which are web services based or HTTP based running either Apache Axis based Java container or Apache CXF. Workspace Service Resource Framework Front-end Protocol implementation used by previous workspace services and clients to invoke VM manager to deploy and manage virtual workspaces. Cloud Client The subscribers which provide SaaS and PaaS will host a site manager service and create an image repository through cloud configuration. Then the new users which will be using these services provides by the subscribers will be directed to use cloud clients. Cloud client makes it simple to access these services as it automatically launches instances already configured. VMM Nodes Physical nodes on which the VM images are deployed. Once configured the user will directly query this physical workspace via SSH. Workspace Control Installed on each VMM node that manages its node. It helps to spawn a VM image when the VM template disk is pushed onto the compute node. It handles the entire image management and reconstruction. For example, to spawn a new VM image, it creates blank partitions and pads the VM template disk to correct size. Once this is done it assigns MAC addresses and IP addresses and finishes configuration. Apart from these functions it also controls the virtual machines like starting, stopping or pausing VM. It uses SSH to communicate to workspace service manager. Workspace Pilot The pilot is a program the service will submit to a local site resource manager (LRM) in order to obtain time on the VMM nodes. When not allocated to workspace service, these nodes will run in normal system accounts in Xen domain 0 with no guest VM running. Support is also provided for:The workspace service is down LRM preemption Node reboot/shutdown Workspace pilot is optional. Cumulus It Nimbus’s VM image repository. Any VM image created must be first loaded into cumulus repository inorder to boot an image. 3. Virtualization Virtualization techniques are based on XEN and KVM. The whole idea of Nimbus virtualization is to give the user the impression that he or she is given his or her own private workspace area. The user makes a request and loads its virtual VM image in the cumulus for boot up. Rest is taken care by the workspace site VM manager. It communicates with Workspace control via SSH control on a free physical node to take the appropriate steps to spawn a VM according to the configuration needed for the user’s use. The configuration of Nimbus to create a virtual machine is done as follows:1. 2. 3. 4. 5. 6. 7. 8. User uses cloud client to request a VM. Nimbus will SSH into the compute node. The VM template disk image is pushed into the compute node On the compute node, the VM disk is padded to the correct size and configured. The compute node sets up a network bridging to provide a virtual NIC with a virtual MAC. A DHCP server on the compute node is configured with a MAC/IP pair. VM is spawned on the VMM. The user can now directly SSH into the VMM. 4. Overview on XE and KVM XEN The XEN hypervisor is the basic abstraction layer of software that sits directly on top of hardware and below any operating systems. It is responsible for CPU scheduling and memory partitioning of the various virtual machines running on the hardware device. The hypervisor not only abstracts the hardware for the virtual machines but also controls the execution of virtual machines as they share the common processing environment. It has no knowledge of networking, external storage devices, video, or any other common I/O functions found on a computing system. XEN components and their functionality:- KVM adds a third mode, guest mode having its own kernel and user modes. Two main components in KVM:1. Device driver for managing the virtualization hardware. 2. A user space component for emulating the PC hardware; this lightly modified QEMU process. Each physical node in Nimbus has a XEN or a KVM component. Domain 0 Unique VM that has special rights to access I/O resources and interacts with other VMs. Must be the first one to be running before any other VM is started. It has two drivers; Network Backend driver which communicates directly with local networking hardware to process requests coming from Domain U guests (explained next) and Block Backend Driver communicates with local storage disk. Domain U Domain U are of two types; all paravirtualized VMs running on a XEN hypervisor are referred to as Domain U PV guests PV guests are aware that they do not have direct access to hardware and recognizes that other VMs are running on the same machine and fully virtualized machines are referred t as Domain U HVM guests and run on standard Windows or any other unchanged operating systems. These machines are not aware that it is sharing processing time on the hardware and that other VMs are present on the same machine. A BIOS software, XEN virtual firmware is needed to initialize Domain U for startup configuration. Unlike PV guests who have their own network drivers and block drivers, HVM guests do not have such drivers instead, for each HVM guest a separate Qemu daemon is started on domain 0 which handles the networking and disk requests from HVM guests. KVM In KVM model, every virtual machine is a linux process scheduled by a standard scheduler. Apart from the two modes of operation in linux; user and kernel mode, 5. Summary Nimbus is mostly tailored to scientific researches which has broad customization requirements but least interested in the technical internals of the system. The security is fairly tight compared to OpenNebula but not as tight as Eucalyptus. Unlike Eucalyptus which mimics Amazon EC2, Nimbus provides a separate EC2 client in order to support computation environments based on Amazon EC2. Thus if Amazon requires more extensive data cluster, it can request Nimbus and fulfill the same. Thus Nimbus is highly flexible and customizable except for image storage. . 6. References [1]http://wiki.xensource.com [2]http://www.nimbusproject.org [3]http://www.cyberciti.biz/tips/understanding-kernelbased-virtual-machine-for-linux.html [4]http://www.linuxinsight.com/finally-user-friendlyvirtualization-for-linux.html