Bare Metal Provisioning to Openstack Using Xcat
Total Page:16
File Type:pdf, Size:1020Kb
JOURNAL OF COMPUTERS, VOL. 8, NO. 7, JULY 2013 1691 Bare Metal Provisioning to OpenStack Using xCAT Jun Xie Network Information Center, BUPT, Beijing, China Email: [email protected] Yujie Su, Zhaowen Lin, Yan Ma and Junxue Liang Network Information Center, BUPT, Beijing, China Email: {suyj, linzw, mayan, liangjx}@bupt.edu.cn Abstract—Cloud computing relies heavily on virtualization mainly built on virtualization technologies (Xen, KVM, technologies. This also applies to OpenStack, which is etc.). currently the most popular IaaS platform; it mainly provides virtual machines to cloud end users. However, B. Motivation virtualization unavoidably brings some performance The adoption of virtualization in cloud environment penalty, contrasted with bare metal provisioning. In this has resulted in great benefits, however, this has not been paper, we present our approach for extending OpenStack to without attendant problems,such as unresponsive support bare metal provisioning through xCAT(Extreme Cloud Administration Toolkit). As a result, the cloud virtualized systems, crashed virtualized servers, mis- platform could be deployed to provide both virtual configured virtual hosting platforms, performance tuning machines and bare metal machines. This paper firstly and erratic performance metrics, among others. introduces why bare metal machines are desirable in a cloud Consequently, we might want to run the compute jobs on platform, then it describes OpenStack briefly and also the "bare metal”: without a virtualization layer, Consider the xCAT driver, which makes xCAT work with the rest of the following cases: OpenStack platform in order to provision bare metal Case 1: Your OpenStack cloud environment contains machines to cloud end users. At the end, it presents a boards with Tilera processors (non-X86), and Tilera does performance comparison between a virtualized and bare- not currently support virtualization technologies like metal environment KVM. Obviously, a Tilera board cannot be provisioned to Index Terms—cloud computing, IaaS, OpenStack, xCAT, an end user using traditional virtualization technologies. bare metal provisioning Thus, we need to add a bare-metal provisioning driver in OpenStack in order to provision a Tilera board or other non-virtualizable boards in an OpenStack environment. I. BACKGROUND AND MOTIVATION Case 2: You want to achieve higher performance in the cloud platform, as virtualization obviously brings some A. Background performance penalty. OpenStack [1] is an Infrastructure as a Service(IaaS) Case 3: You have a lot of relatively old and low- cloud computing project started by Rackspace Cloud and performance machines (e.g. 1 CPU, 1G memory) in the NASA in 2010. Currently more than 200 companies have data center. In this case, if you still use virtualization joined this project,including Intel, IBM, Dell and Red Hat. technologies and then provide virtual machines to end It is free open source software released under the Apache users, the performance penalty brought by virtualization 2.0 license. It is included and released in both the Ubuntu is obviously too much for the machine. Bare metal and Red Hat Linux distributions. The OpenStack project provisioning is optimal in this scenario. aims to deliver solutions for all types of clouds by being From these cases among others, we can conclude it simple to implement, massively scalable, and feature rich. would be great for OpenStack if it could support bare- It delivers various components for a cloud infrastructure metal provisioning, in addition to the traditional solution, which makes it a somewhat open sourced virtualization. This is because it can now offer to cloud Amazon Web Services(AWS), which is the most end users a hybrid IaaS cloud platform with both choices successful cloud computing platform at present. of virtual machines and bare metal machines. In OpenStack, cloud providers most basically offer The intention is obviously to ultimately support virtual machines. The virtual machines are run as guests different provisioning back-ends in order to support by a hypervisor, such as Xen or KVM. Management of different bare-metal architectures. Several provisioning pools of hypervisors by the cloud operational support tools are available, such as Dell's crowbar [2], as an system leads to the ability to scale to support a large extension of opscode's Chef system [3], Argonne number of virtual machines. In this sense, OpenStack is National Lab ’ s Heckle [4], xCAT [5], Perceus [6], © 2013 ACADEMY PUBLISHER doi:10.4304/jcp.8.7.1691-1695 1692 JOURNAL OF COMPUTERS, VOL. 8, NO. 7, JULY 2013 OSCAR [7], and ROCKS [8]. These tools provide Cloud (EC2) API [15], as well as its own (OpenStack) different bare-metal provisioning, deployment, resource API. management, and authentication methods for different The nova-schedule service is mainly responsible for architectures. These tools use standard interfaces such as scheduling compute resource requests on the available PXE (Preboot Execution Environment) [9] boot and IPMI compute nodes. (Intelligent Platform Management Interface) [10] power The nova-compute service is responsible for starting cycle management module. For boards that do not and stopping all the compute instances. support PXE and IPMI, such as the TILEmpower board, The nova-network service is responsible for managing specific back-ends must be written. IP addresses and virtual LANs for the instances. In this paper, we use xCAT to extend OpenStack, the The nova-volume service is responsible for managing most popular IaaS platform at present. xCAT (Extreme network drives that can be mounted to running instances. Cloud Administration Toolkit) is an open-sourced and The queue is a message queue implemented on top of distributed computing management tool. It is a wonderful RabbitMQ [16] which is used to implement remote tool to remotely control the machines and can also be procedure calls as a communication mechanism among used to network-install a machine, automated and the services. unattended. xCAT supports many usual operating The dashboard implements a web-based user interface. systems, including SLES, OpenSUSE, RHEL, CentOS, The database is a traditional relational database such as Windows, etc. As for the hardware, it supports X86, MySQL that is used to store persistent data that is shared iDataplex, IBM's system X, system P, and most IPMI- across the components. based machines. To support bare metal provisioning in OpenStack through xCAT, we implemented an xCAT driver. III. XCAT xCAT (Extreme Cloud Administration Toolkit) is an open source scalable distributed computing management II. OPENSTACK and provisioning tool that provides a unified interface for OpenStack is a collection of open-sourced software hardware control, discovery, and OS diskful/diskfree components designed for building public and private deployment. This robust toolkit can be used for the clouds. OpenStack provides similar functionality to other deployment and administration of huge clusters. open-source cloud projects such as Eucalyptus [11], xCAT is a typical client/server architecture. The heart OpenNebula [12], and Nimbus [13]. The main of its architecture is the xCAT daemon (xcatd) on the components include OpenStack Compute (codenamed management node. This receives requests from the client, Nova), OpenStack Image Service (codenamed Glance), validates the requests, and then invokes the operation. and OpenStack Object Storage (codenamed Swift). The xcatd daemon also receives status and inventory OpenStack is implemented as a set of Python services information from the nodes as they are being discovered that communicate with each other via message queue and and installed/booted. Thus, the xcatd is the worker that database. Fig. 1 shows a conceptual overview of the really manages all the nodes in the cluster. OpenStack architecture, with the OpenStack Compute components bolded and OpenStack Glance components (which stores and manages all the images) shown in a lighter color. Figure 2. xCAT Architecture. Credit: xCAT[17] IV. XCAT INTEGRATION INTO OPENSTACK Figure 1. OpenStack Architecture. Credit: Ken Pepple [14] To support bare metal provisioning to OpenStack through xCAT, we implemented the xCAT driver, which The nova-api service is responsible for fielding receives requests from OpenStack Nova, deals with the resource requests from users. Currently, OpenStack messages and finally transfers the requests to xCAT. implements two APIs: the Amazon Elastic Compute © 2013 ACADEMY PUBLISHER JOURNAL OF COMPUTERS, VOL. 8, NO. 7, JULY 2013 1693 A. The Logical Architecture IMM address) being some of the most important In OpenStack, it uses libvirt library to manage different information. virtualization technologies. For bare metal provisioning, we need a bare-metal driver, as an alternative to the libvirt driver. For a compute node with bare metal driver, we set compute_driver to nova.virt.baremetal.driver.BareMetalDriver in its nova configuration file (/etc/nova/nova.conf by default). As depicted in Fig. 3,when an end user requests a bare-metal machine (e.g.,a System X machine),a scheduler chooses a nova compute node,whose compute_driver is nova.virt.baremetal.driver.BareMetalDriver and at the same time baremetal_driver is xcat. And then the xCAT bare-metal driver will take care of everything and finally start the system with the specified operating system. If Figure 4. Physical Architecture what the user requested is a Tilera machine, then the scheduler will choose a nova compute