Keywords

1 Introduction

Cloud Computing is an important topic in information technology in recent years. It can be outlined as dynamically expandable shared resources accessed over a network. The prime feature of cloud computing is that a user needs to pay for what he uses. The shared resources are storage, computing, services, etc. Based on the supported style of resources provided, cloud design can be divided into three kinds of delivery models: infrastructure as a service (IaaS), platform as a service (PaaS), software as a service (SaaS) [1, 2].

The main goal of IaaS computing model is to deliver high performance computing power that satisfies the requests from the user. Virtualization is a technique that could be used to improve computing power. Although cloud computing was the interested topic, cloud computing deployment still has many problems to consider and need to be solved. Beside traditional risks such as security, storage problems, stability, and data loss, the cost for cloud deployment is one of the important problems to any company who has to balance between invested cost and benefits. This means that the choice of solution to deploy a Cloud system is very important commercial cloud or open-source cloud [3]. The growth of Open-source Cloud computing is shown in Table 1.

Table 1 Open-source cloud computing timeline

1.1 Benefits from Open-source Cloud Deployment

The benefits from cloud computing can be referenced from many documents, for example from, Canonical [4] or CSA [5]. This part of article focuses on the benefits of open-source cloud deployment when compared with other commercial clouds. According to Canonical, a big company contributed in lots of famous open-source projects such as Ubuntu platform, OpenStack, and Ubuntu One; main features of open-source cloud deployment are:

  • Avoiding vendor lock-in: commercial products usually are total solutions which have manufacture standards such as APIs, image format, and special storage. These features make the cloud not to be high integrated with other system and make the current IT infrastructure of company may not be reused.

  • Community support: open-source cloud computing projects are always supported by community all over the world with thousands of programmer, coder in cloud function development and bug fix. This advantage can not be found in any commercial companies or products.

  • Scalability and licensing: cost is a big problem in scaling cloud system with commercial solution. Licensing cost is calculated based on number of servers, CPUs, or VMs. But in open-source cloud, all of them are free and the problem of license for scaling system is solved.

  • Modules development: when customer needs a new function in commercial solution, the best way is a new upgrade from vendor. However, with open-source solution, customer can develop the function by themselves, and that function will be better for company’s business/purposes.

1.2 IaaS Framework Overview

In the first part of this section, we present the overview of the existing works on IaaS model and open-source cloud deployment; this section introduces some IaaS Frameworks such as, Eucalyptus, Nimbus, OpenNebula, OpenStack, Apache Cloud Stack, and IBM Smart Cloud.

Eucalyptus [6] is a private cloud solution and one of the appropriate choices to build on-premise cloud in company and organization. Eucalyptus supports all the existing IT infrastructures such as types of server, network devices, and no need of a specialized hardware. One of the advantages of Eucalyptus is compatible with Amazon EC2 and Amazon S3. It has five high-level components: Cloud Controller, Cluster Controller, Storage Controller, Elastic Block Storage, and Node Controller.

Nimbus [7] is a solution focused on IaaS from a computer cluster. The nimbus toolkit consists of the following components: workspace service, workspace resource manager, workspace pilot, workspace control tools, IaaS Gateway, Context broker, Workspace client, cloud client, and Nimbus Storage service. Nimbus has two products that are Nimbus platform for cloud resources managing and deploying and Nimbus Infrastructure usually for scientific community.

OpenNebula [8] is an open-source toolkit used for creating private, public, and hybrid infrastructure as a cloud from a heterogeneous-distributed environment. OpenNebula is also used for the management of virtual data centers. It has a core used for maintaining virtual machines, web service, and language-specific bindings. OpenNebula uses a shared file system to run its functions; typically OpenNebula uses a Network File System (NFS) for all disk images and files. When a user wants to create a virtual machine, a configuration file from user defines the required configuration of the virtual machine, and this file is used by virtual machine manager of OpenNebula. One of the disadvantages of OpenNebula is the NFS mentioned above that does not have encryption techniques and can be vulnerable to sniffing attacks.

OpenStack [9] is an Open-Source cloud operating system for building private and public clouds. OpenStack is totally an open source and designed to be a very large IaaS private cloud with large network and virtual machines. The first five main components of OpenStack consist of OpenStack Compute (Nova), OpenStack Object Storage (Swift), OpenStack Image Service (Glance), OpenStack Dashboard (Horizon), and OpenStack Identity (Keystone). OpenStack development is still in progress. Every 6 month, a new version of OpenStack is released with fixed bug and new features.

Apache Cloud Stack [10] is a top-level project of the Apache Software Foundation. Cloud Stack is an Open-source tool used to manage large networks of virtual machines as an infrastructure as a cloud computing platform. Cloud Stack is designed for both private cloud and public cloud. Same as OpenStack, CloudStack supports multi-hypervisors such as VMWare, KVM, XenServer, and Xen cloud platform. Users can manage cloud through web interface, command line tools, and an API. Virtual machines running on the hypervisors can have features such as snapshots, attach volumes, and ISO images.

IBM Smart Cloud [11] is one of the commercial and enterprise solutions, which is developed based on open-source solution. It is used for building private, public, and hybrid cloud provided by IBM. The cloud system using IBM Smart Cloud has advantages in security and scalability; especially the product IBM Smart Cloud Enterprise + is designed for critical and important workloads.

2 Development of OpenStack Cloud Computing Project

The previous part presented cloud computing benefits based on open-source solution; this part of article concentrates on the introduction of an open-source solution—which is OpenStack to build a cloud system providing IaaS.

2.1 OpenStack

OpenStack [9, 12, 13] has a 6-month period development, has a new version each 6 months. Each new version usually improves previous function for stability and deploys new functions. OpenStack is free totally and its components are written by Python language. The logical architecture of OpenStack is shown in Fig. 1 below. In which,

  • Compute (Nova): provides and manages compute function for instances (Virtual machines).

  • Image Service (Glance): stores image of instance and is used by Nova when an instance is deployed.

  • Object Storage (Swift): provides storage function.

  • Dashboard (Horizon): provides web based for administration of OpenStack.

  • Identity (Keystone): provides authentication and authorization for all services in OpenStack.

Fig. 1
figure 1

OpenStack architecture

2.2 OpenStack Features

OpenStack has full of cloud computing features that provide IaaS. These features are presented through projects inside OpenStack such as Nova and Swift. This part presents some main features of OpenStack when compared with a famous cloud solution in the world—VMWare [12, 13] (Table 2).

Table 2 Comparison of some features between VMWare and OpenStack

However, when compared with VMware—a leading cloud computing solution in the world—OpenStack has some disadvantages [14, 15, 16, 17, 18]:

  • OpenStack currently is developed to provide IaaS; VMware can be deployed in various service models (PaaS, SaaS).

  • OpenStack does not have some automatic and intelligent mechanism in setting priority VMs and no support in live migration between physical hosts, while these functions are supported in VMware vMotion.

  • OpenStack does not stop/shutdown idle physical hosts and automatic turn on when it needs more resources.

  • OpenStack does not support storage cluster. Storage system (Swift) is only deployed for volumes in LVM format.

2.3 Our Cloud Testbeds on OpenStack

All the sub-projects of OpenStack are deployed in one physical server; hardware configuration: DELL T710, CPU 8 cores, and RAM 4 GB (Fig. 2).

Fig. 2
figure 2

Our cloud testbeds deployment on OpenStack

3 Our Experiment and Results

This section includes the test results found from our Cloud Testbeds deployment; OpenStack Essex was installed and configured with these services:

  • Create and manage virtual machines (instance);

  • Manage provisioned resource of instances;

  • Operate and manage through web-based Dashboard;

  • Authenticate through Keystone; and

  • Manage images through Glance.

Disadvantages:

  • Our Cloud Testbeds did not deploy Swift storage function.

  • Image services are linux based such as Debian, CentOS, Ubuntu, havent Windows in image service list.

Our Cloud Testbeds uses test cases to estimate OpenStack operation; then testing the stability of instance creation and instance using, write down parameter related to resource and operated time of instance. All the test cases use different numbers of instances and different types of instance. Estimation is done through four test cases:

  • Case study 1: Create 01 Cirros instance. Cirros is an image which is supported by OpenStack with limited features of Linux, same as TTY Linux.

  • Case study 2: Create 01 Ubuntu 12.04 64 bits instance.

  • Case study 3: Create 05 Cirros instance.

  • Case study 4: Create 05 Ubuntu 12.04 64 bits instances.

Note that, all the test cases are done five times. The information was noted and estimated include:

  • Instance was created successfully or not.

  • Creation time of instance and Deleted time of instance

  • Memory Usage (RAM) of physical host before and after creating instances.

Estimated results: In five test cases, all the instances were created and deleted successfully with 100 %. All the created instances work properly. Figures 3 and 4 compare the memory usage before and after creating an instance, create and delete time of an instance in case study 1 and case study 2.

Fig. 3
figure 3

Memory usage before and after creating an instance, create and delete time of an instance in case study 1

Fig. 4
figure 4

Memory usage before and after creating an instance, create and delete time of an instance in case study 2

The memory usage before and after creating an instance in case study 3(a) and case study 4(b) are shown in Fig. 5. Figures 6 and 7 show the comparison of the time between create and delete time of five instances in Case study 3 and Case study 4.

Fig. 5
figure 5

Memory usage before and after creating an instance in case study 3(a) and case study 4(b)

Fig. 6
figure 6

Comparison of the created and deleted time of 5 instances in case study 3

Fig. 7
figure 7

Comparison of the created and deleted time of 5 instances in case study 4

The related resources and time information of test cases are compared in Table 3.

Table 3 Comparison of some features between VMWare and OpenStack

4 Conclusion and Future Work

Open-source cloud computing deployment is a difficult choice in all companies, especially leading technical company in the world. In this paper, we focus to analyze and evaluate the performance of the open-source OpenStack for IaaS cloud computing, and give the comparison between OpenStack and VMware. We outline some of our initial findings by providing such a testbed on OpenStack. The experimental results showed the advantages of OpenStack solution in cloud computing where infrastructure is provided as a service. Our research investigated the possible IaaS on OpenStack cloud computing environment. However, our testbeds still was in tiny environment and need to be scaled more to get better results and conclusion. In the future works, we would like to focus on a bigger open-source cloud system with more IaaS services such as variety of operating systems and storage services and finally become an OpenStack IaaS production.