A Customized Dashboard for VM Provisioning Using OpenStack
Prajesh P Anchalia
Pracheta Gupta
Jyoti Shetty
Department Of CSE Department Of CSE Department Of CSE R V College Of Engineering R V College Of Engineering R V College of Engineering
Bangalore, India Bangalore, India Bangalore, India .
Abstract — Cloud Computing allows the user to access the cloud services dynamically over the internet wherever and whenever needed. OpenStack is an open source software used to build a public or a private cloud. In its raw form OpenStack is not flexible enough to accommodate an organizational hierarchy. In this paper we propose a novel approach to modify the OpenStack Dashboard’s structure to adapt to an organization’s hierarchy and in addition we also integrate modules like user and tenant registration, role based access control and custom flavour creation onto the OpenStack dashboard to make it more flexible and easy to use. The implementation is done using a sample organizational hierarchy which is discussed in detail in this paper and we have designed an OpenStack dashboard using OpenStack Icehouse version deployed on Ubuntu.
Keywords — Cloud Computing; OpenStack; VM Provisioning; OpenStack Dashboard
I. INTRODUCTION
A. The Cloud
The Cloud is a software platform that provides computing services with the help of internet. It allows users to make use of software and hardware which is managed by parties at remote locations. With the help of a cloud computing model, it is easy to provides access to information and computer resources from anywhere in the world with network and internet connection. It provides shared pool of resources that includes data storage space, networking facilities, computing processing power of specialized and user applications. Cloud computing has three service models
x Software as Service (SaaS): In this type of service model, the cloud provider will provide a platform for the users to use their applications remotely. The users using this service will have a common interface.
x Platform as a Service (PaaS): In this type of service model, the cloud provider provides and manages the platform (hardware, server operating system, databases, storage, architecture, networks and Virtualization) but the client has to develop its application as per needs to use these services
provided by the cloud provider.
x Infrastructure as a Service (IaaS): In this service model, the cloud service provider provides and manages the infrastructure (Virtualization, servers, networking and storage). This helps to avoid spending on hardware and human resources and which reduces the return of investment risk. The client can execute and manages virtual machines where it can use its applications, data, operating system, middleware and runtime like Amazon EC2, Rackspace[1][2][3]etc.
B. Characteristics and Classifications of The Cloud The three main characteristics that make the cloud unique from traditional hosting services are :
x On Demand Availability
x Rapid Elasticity for users (pay per use) x Resource Pooling
Cloud computing can be classified into the following categories based on their use:
x Private Cloud: In this type of cloud infrastructure the cloud computing platform is operated solely for a specific organization under the control of IT department and is managed by the organization behind the organizational firewall. Private cloud offers the same features as public cloud and eliminates the issues related to control, data, security etc.
x Public Cloud: In this type of cloud infrastructure the cloud service provider charges for their services from the organization. Like Amazon (AWS), Microsoft and Google, etc. they own and operate the infrastructure of the cloud and offer access to the services in the cloud with the help of Internet. Amazon Web Services is the largest public cloud provider.
x Hybrid Cloud: This type of a cloud infrastructure combines both private and public cloud infrastructures together. They are separate entities but offer the benefits of both the deployment environments.
This paper has 6 sections in total. The second sections outline the architecture and operation of OpenStack. The 7th International Conference on Computational Intelligence, Communication Systems and Networks (CICSyN)
978-1-4673-7016-5/15 $31.00 © 2015 IEEE DOI 10.1109/CICSyN.2015.40
155
7th International Conference on Computational Intelligence, Communication Systems and Networks (CICSyN)
978-1-4673-7016-5/15 $31.00 © 2015 IEEE DOI 10.1109/CICSyN.2015.40
155
7th International Conference on Computational Intelligence, Communication Systems and Networks (CICSyN)
978-1-4673-7016-5/15 $31.00 © 2015 IEEE DOI 10.1109/CICSyN.2015.40
177
7th International Conference on Computational Intelligence, Communication Systems and Networks (CICSyN)
978-1-4673-7016-5/15 $31.00 © 2015 IEEE DOI 10.1109/CICSyN.2015.40
177
7th International Conference on Computational Intelligence, Communication Systems and Networks (CICSyN)
978-1-4673-7016-5/15 $31.00 © 2015 IEEE DOI 10.1109/CICSyN.2015.40
177
7th International Conference on Computational Intelligence, Communication Systems and Networks (CICSyN)
978-1-4673-7016-5/15 $31.00 © 2015 IEEE DOI 10.1109/CICSyN.2015.40
177
7th International Conference on Computational Intelligence, Communication Systems and Networks (CICSyN)
978-1-4673-7016-5/15 $31.00 © 2015 IEEE DOI 10.1109/CICSyN.2015.40
177
7th International Conference on Computational Intelligence, Communication Systems and Networks (CICSyN)
978-1-4673-7016-5/15 $31.00 © 2015 IEEE DOI 10.1109/CICSyN.2015.40
third section discusses the sample organizational hierarchy employed to customize the OpenStack dashboard. The fourth section discuses the modules designed to be integrated on the OpenStack dashboard. The fifth section provides information on the system deployment and implementation of the Customized Dashboard. The final section concludes the paper and proposes future work.
II. OPENSTACK–OPEN SOURCE CLOUD PLATFORM OpenStack is an open source cloud computing software that provides infrastructure as a service cloud deployment for public and private cloud. OpenStack provides a significant alternative for organizations which don’t wish to go for commercially provided cloud. OpenStack was first introduced in June 2010, born with its initial code from NASA’s Nebula platform and Rackspace’s Cloud Files platform. OpenStack’s mission is to produce the ubiquitous open source cloud computing platform that will meet the needs of public and private cloud providers regardless of size, by being simple to implement and massively scalable.
Since its very first introduction in June 2010 OpenStack is accelerating and gaining popularity every day. And now OpenStack is joined by scores of developers and support team backend by some large houses like Canonical, Rackspace, etc. Currently OpenStack is joined by more than 180 business houses providing to support for OpenStack, more than 15996 people working over it and active involvement of people from more than 137 nations.
OpenStack[4][5][17] is written in python and all of the code for OpenStack is freely available under the Apache 2.0 license. Today whole of the OpenStack project is managed by OpenStack Foundation established in September, 2012. OpenStack was brought together jointly by NASA and Rackspace as a new open source cloud initiative freely available under Apache License. OpenStack controls large pools of compute and storage all managed either through APIs or dashboard. Dashboard provided by OpenStack is a web interface for provisioning to and releasing of resources from end users. OpenStack delivers a scalable cloud’s infrastructure as a service. OpenStack community is having around six-month release cycle and till now OpenStack has released nine major OpenStack releases from Austin in October 2010 to Icehouse in April 2014[6][7][8].
A. Architecture
OpenStack[17] is designed using three main modules namely, compute, storage and networking. In addition, the dashboard became an important component in providing interface to administrators and users to utilise the cloud services provided by OpenStack. These components and their interaction with user’s application and underlying hardware over which other OpenStack services run is shown in Figure 1. The compute module is designed for provisioning of virtual machines providing scalable cloud computing platform. The storage module provides objects
storage to be used for storing necessary images to run virtual machines or virtual instances. The network module provides necessary services which are used for communication within the virtual machine and to other virtual machines. All these modules along with other services running underneath works in a close interaction with each other can be implemented on a single server (test environment) or a multiple servers (production environment) jointly fulfilling the common purpose of OpenStack to provide a feature rich, scalable platform for infrastructure as a service cloud platform.
Figure 1: OpenStack Architecture
B. Components
OpenStack is composed of the following components:
x
The Nova component is used for providing Compute Service. It acts as the Computing controller in the OpenStack Cloud. It provides management platform that supports the life cycle of instances within the OpenStack cloud. It is also used to manage and mechanize the pool of computer resources which can be used to work with various virtualization technologies or hypervisors. It does not provide virtualization of its own but uses Libvirt API to interact with hypervisors.x
The Glance component also called OpenStack Imaging Service. It provides registration, delivery, discovery services for the cloud disk and server images. It also provides lookup and retrieval system for the virtual machine images.x
The Keystone component is used to provide Identity Service. Its job is to provide all authentication systems across the cloud infrastructure and can be combined with the existing services like LDAP which are running at the backend directory. It provides authorization and authentication services for all components of OpenStack. Keystone provides two ways of authentication. One is username/password based and the other is token based.156 156 178 178 178 178 178 178
A keypair consisting of private key/public key is generated to be able to start instances on OpenStack. Which are inserted into the instances to make password-less SSH access for the instance. This can be downloaded from the OpenStack Dashboard.
x
The Horizon component in OpenStack provides an Administrative Web - Interface. Web based dashboards can be used to manage /administer OpenStack services. It is also used to manage the instances and images[9][10], creating keypairs, manipulating the Swift containers and volumes to instances etc. OpenStack Dashboards can be used to manage various OpenStack services. It can be used to manage instances and images, create keypairs, attach volumes to instances, manipulate Swift containers etc. The OpenStack Dashboard is accessible via http://<ip_address of server> .x
The Swift component provides Storage Service in the OpenStack cloud. It provides virtual object store which is distributed, eventually for OpenStack. This component also has great capability to store large size files and large number of files among servers in an organized way. Swift also provides redundancy and failover management. The storage associated with the instances is non-persistent and therefore the data which is generated and stored on the disk of the instance is removed as soon as the instance gets terminated. So we create a dedicated volume and attach it to the running instance.Nova controls all components and glance manages images, keystone provides authentication and authorization for all components of OpenStack, horizon provides web interface to manage all infrastructure manually and even remotely and swift for storage capabilities and Client can login in cloud infrastructure and run a virtual machine/ instance to deploy service / application for cloud users using images.
III. SAMPLE OPERATIONALHIERARCHY
In this section of the paper, we discuss the sample operational hierarchy that will be employed for the deployment of the customized dashboard. At the top we have an admin, who acts as a service provider and regulates the OpenStack usage. The second level of the hierarchy consists of the various tenants using the cloud services provided by OpenStack[11][12][13]. The third level of the hierarchy consists of the designated users of each tenant working on their particular project. The pictorial representation of the hierarchy is shown in figure 2.
Figure 2: Organizational Hierarchy
Figure 3: Roles and Responsibilities
The roles and responsibilities of all the levels of the hierarchy are shown below in figure 3.
IV. MODULES FOR CUSTIMOZED DASHBOARD FOR VM PROVISIONING WITH OPENSTACK
This section of the paper discusses in detail the modules designed and integrated on the OpenStack Dashboard. We have designed and integrated four modules on the OpenStack Dashboard to provide more flexibility and operational ease to the organization using the cloud service provided by it. The modules are listed below:
x Tenant Registration Module x User Registration Module x Custom Flavor Creation Module x Role Based Access Control Policies A. Tenant Registration Module
This module is designed to provide a portal for tenants to raise a registration request to the OpenStack admin. A project is a designated set of VM’s with dedicated users working together. A project can be thought of separate tenant using OpenStack with its employees as dedicated users. In our customization, we have introduced a tenant
157 157 179 179 179 179 179 179
admin, who is given the responsibility to administer the project as whole. The algorithm for this module is given below.
B. User Registration Module
This module is designed to provide a portal for users belonging to various tenants to raise a registration request to the OpenStack admin. Each user is assigned a role based on the role based access control policy of the OpenStack deployment. The request is received by the OpenStack admin and upon approval from the tenant admin a user account under the respective tenant is created. The algorithm for this module is given below.
C. Custom Flavor Creation Module
This module is designed to provide the tenant admin with more flexibility by allowing the creation of VM’s with a customized resource set based on the usage. The module receives a request for creation of new flavor with the required resources from the tenant admin during VM
creation. It then processes the request to create a new flavor in the OpenStack deployment[14][15][16] and then allows the tenant to launch a VM from the newly created flavor. The algorithm for this module is given below.
D. Role Based Access Control Policies
This module deals with translating the organizational hierarchy to OpenStack. This way we can customize OpenStack to harmonize with an organization’s regular operation. In our deployment we have used the Organizational Hierarchy discussed earlier in this paper, but this can be done with any hierarchy. We define roles based on the various levels of the hierarchy and then provide each role by applying these roles to various roles in the policy.json file. The algorithm for this module is given below. 158 158 180 180 180 180 180 180
V. SYSTEM DEPLOYMENT AND IMPLEMENTATION OF CUSTOMIZED DASHBOARD FOR VM PROVISIONING WITH
OPENSTACK
A. System Deployment
To carry out our research on customization of the OpenStack dashboard, we used a system with 2.4 GHz processor, 4 GB of RAM, 500 GB of secondary storage running Ubutu 14.04 LTS as its operating system. We used the Icehouse version of OpenStack Releases. We installed a single node version of OpenStack Icehouse with the compute and controller node on the same system for ease of use from an experimental point of view.
B. Implementation and Snapshots
We have implemented and integrated the newly designed modules onto the OpenStack dashboard and deployed the new version of OpenStack as RVCE Cloud.
Figure 4: RVCE Cloud Login Page
We have tested the entire implementation and the integrated modules and in the section we will provide the snapshots of the system with all the modules functioning correctly.
Figure 5: Tenant Registration Module
Figure 6: User Registration Module
Figure 7: Custom Flavor Creation Module
159 159 181 181 181 181 181 181
Figure 8: Role Based Access Control
VI. CONCLUSIONS AND FUTURE WORK
In this study, we have outlined how OpenStack works and successfully designed a customized dashboard for VM provisioning by integrating our modules onto the Horizon Dashboard. Also, we have tested our implementation successfully using the RVCE Cloud deployment and can conclude that our customized dashboard operates correctly and serves the purpose for which it was designed.
Future research work includes working on monitoring and service assurance for OpenStack. The OpenStack currently does not have a component-wise monitoring service assurance feature. We intend to integrate and configure few open source cloud monitoring tools like Nagios for OpenStack and analyze the monitored data it provides to present a complete picture of the deployment to the OpenStack admin and predict whether the System is in an healthy state or not and accordingly take necessary precaution to prevent failure of the system.
ACKNOWLEDGEMENT
This study is part of University Research Project by R V College of Engineering, Bangalore with the help of Cisco Systems (India) Pvt. Ltd. Authors would like to acknowledge the support of Cisco team - Mr. Anil Nileshwar, Mr. Anand Raghava and Mr. Ramkumar. Any inferences, recommendations, opinions in this manuscript are those made by the author(s) and do not reflect the views of Cisco.
REFERENCES
[1] Sonali Yadav, “Comparative Study on Open Source Software for Cloud Computing Platform: Eucalyptus, Openstack and Opennebula”,
International Journal Of Engineering And Science, Vol.3, Issue 10 (October 2013), pp 51-54, ISSN (e): 2278-4721, ISSN (p):2319-6483. [2] Muhammad Aufeef Chauhan, Muhammad Ali Babar, “Migrating
Service-Oriented System to Cloud Computing: An Experience Report”, 4thInternational Conference on Cloud Computing, Washington, DC, 4-9 July 2011, pp 404-411, Print ISBN: 978-1-45770836-7, DOI:10.1109/CLOUD.2011.46
[3] Scott Tilley, Tauhida Parveen, “Migrating Software Testing to the Cloud”, IEEE International Conference on Software Maintenance (ICSM), Timisoara, 12-18 Sept. 2010, pp 1, Print ISBN: 9781-4244-8630-4, DOI:10.1109/ICSM.2010.5610422.
[4] Bram Rongen, “Making the case for migration of information systems to the cloud”,16thStudent Conference on IT, Enschede, The Netherlands, Jan 27 2012, Copyright 2011, University of Twenty, Faculty of Electrical Engineering, Mathematics and Computer Science.
[5] Rashmi, Dr. Shabana, Mehfuz, Dr. G. Sahoo, “A five phased approach for the cloud migration”, International Journal of Emerging Technology and Advanced Engineering, April 2012, ISSN 2250-2459. [6] Timothy Wood, Prashant Shenoy, K. K. Ramakrishnan Jacobus ,Van
der Merwe, “CloudNet: Dynamic Pooling of Cloud Resources by Live WAN Migration of Virtual Machines”, 7th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, Newport Beach, California, USA, March 9-11 2011, pp 121-132, Print ISBN: 9781-4503-0687-4, DOI:10.1145/1952682.1952699.
[7] B. Gopi Krishna, E. Vengal Reddy, K. Jagadamba, Srikumar Krishnamurthy, P. Radha Krishna, “A Unified and Scalable Data Migration Service for the Cloud Environments”, 15th International Conference on Management of Data, Mysore, India, December 9-12, 2009.
[8] C. Kishor Kumar Reddy, P. R. Anisha, B. Mounika, V. Tejaswini, “Resolving Cloud Application Migration Issues”, International Journal of Engineering Inventions, September 2012, pp 0107, ISSN: 2278-7461.
[9] Konstantinos Oikonomou, Ioannis Stavrakakis, “Scalable Service Migration in Autonomic Network Environments”, IEEE Journal on Selected Areas in communications, New Jersey, Jan2010, pp 8494,ISSN:07338716, DOI:10.1109/JSAC.2010.100109.
[10] C. Ward, N. Aravamudan, K. Bhattacharya, K. Cheng, R. Filepp, R. Kearney, B. Peterson, L. Shwartz, C. C. Young, “Workload Migration into Clouds - Challenges, Experiences, Opportunities”, 3rd International Conference on Cloud Computing, Miami, FL, 5-10 July 2010, pp 164-171, Print ISBN:978-1-4244-82078, DOI:10.1109/CLOUD.2010.84.
[11] Johnson B, Yanzhen Qu, “A Holistic Model for Making Cloud Migration Decision”, 10th IEEE International Symposium on Parallel and Distributed Processing with Applications, Leganes, 10-13 July 2012, pp 435-441, Print ISBN: 978-1-4673-16316, DOI: 10.1109/ISPA.2012.63.
[12] Parastoo Mohagheghi, Thor Saether, “Software Engineering Challenges for Migration to the Service Cloud Paradigm”, 2011 IEEE World Congress on Services, Washington, DC, 4-9 July 2011, pp
507514, Print ISBN:978-1-4577-08794, DOI:10.1109/SERVICES.2011.26.
[13] P. Mell and T. Grance, "The NIST Definition of Cloud Computing," National Institute of Standards and Technology, USA, 2009. [14] M. Armbrust, et al., "A View of Cloud Computing," Communication
of ACM, vol. 53, pp. 50-58, 2010.
[15] Q. Zhang, et al., "Cloud computing: state-of-the-art and research challenges," Journal of Internet Services and Applications, vol. 1, pp. 7-18, 2010
[16] Ken Pepple, “Deploying OpenStack” July 2011, First Edition, ISBN: 978-1-449-31105-6. [17] http://docs.openstack.org/essex/openstackcompute/starter/content. 160 160 182 182 182 182 182 182