Keywords

1 Introduction

Cloud computing is a technology trend in recent years and known as a new approach in IT investment from infrastructure to software. Cloud computing delivers three main service models which are IaaS (Infrastructure as a Service), PaaS (Platform as a Service), SaaS (Software as a Service) and depend on each case of customers’ requirements on storage, computing, software service, etc. [1, 2].

In IaaS cloud service model, virtualization technology is the core component which combines with a cloud management layer to satisfy requests from users. However, performance in IaaS model is very important to pursue moving from traditional environment to cloud. One of important concerns in IaaS model is network performance because the network function and network virtualization have responsibility for the whole cloud network operation, included customers’ data transmission. Each cloud computing solution usually has separate network function to do this task. OpenStack developed a module named Neutron for network visualization in cloud [3].

The paper outlines as follows: the first section introduces basic information about cloud computing, the second section presents OpenStack—an open source cloud operating system, we focus on network performance analysis in open source cloud OpenStack in the third section, and finally is the conclusion and future works.

2 OpenStack

In this section, we focus on benefits of open source cloud deployment when compared with other commercial cloud. Before going to OpenStack solution, some benefits from open source cloud computing compared to commercial solution were analyzed in the documents from Canonical [4] or CSA [5]. The main features of open source cloud deployment are:

  • Avoiding vendor lock-in: open source solution use open standards such as APIs, image format, special storage when compared to built-in features in commercial solution. This makes open source solution as high integrated with other system.

  • Community support: interested open source solutions usually are supported by thousands of programmers in the world. This is one of the advantages that cannot appear in commercial solutions.

  • Scalability and licensing: deploy and maintenance of an open source solution is more difficult, but it is always free and no charge for license. Moreover, open source solutions also do not require license for system scaling when compared with commercial solutions.

  • Modules development: open source solution supports open standard for developing and integrating new software modules. In commercial solution, customer needs to order with high cost or waiting for a new upgrade from vendor to have new features.

2.1 OpenStack Architecture

OpenStack [6] is an open source cloud operating system for building private and public clouds. OpenStack is totally open source and designed to be a very large IaaS private cloud with large network and virtual machines. The OpenStack mission: Provide a popular open source cloud computing framework in order to support all types of public or private cloud computing with variety system sizing but simple in deployment and high scalability [4]. According to the mission above, OpenStack is a cloud computing controller which control IT resources such as compute, storage, and network in a data center. All of the operations on IT resources are delivered through a control panel which helps administrators control and interact with IT resources through a web based. OpenStack [6] has a 6-month period development, has new version, each 6 months. Each new version usually improves previous function for stability and deploy new functions. OpenStack is free totally and its components are written by Python language. The logical architecture of OpenStack is shown in Fig. 1.

Fig. 1
figure 1

OpenStack architecture

In which five main components of OpenStack consist of Compute (Nova), Object Storage (Swift), Image Service (Glance), Dashboard (Horizon), and Identity (Keystone). OpenStack development is still in progress. OpenStack has full of cloud computing features that provide IaaS. Compute provide and manage compute function for instances (Virtual machines). Image Service store image of instance, is used by Nova when deploying an instance. Object Storage provide storage function. Dashboard provides web based for administration of OpenStack. Identity provide authentication and authorization for all of the services in OpenStack [6].

2.2 OpenStack Networking

OpenStack networking provide a variety of API to manage and define connections in cloud infrastructure. Neutron support many network technology to connect to cloud infrastructure. This part introduces Neutron, and basic services of Neutron in cloud infrastructure. Neutron includes three components which are Network, Subnet, Port.

  • Network: manage network in Layer 2, the same as VLAN in physical network.

  • Subnet: a group of IP v4/v6 which is configured for cloud system.

  • Port: a port is defined and attached to a virtual device in cloud system.

End users can create their own network topology through Neutron. They create Network and subnet and attach between port and device in cloud system to connect their own system. Neutron allow end users create private network and attach to tenants, a tenant can have more than one private network and private network can be the same in each tenants. Some services of Neutron include:

  • Create a network topology for end user system. For example: create web server system has many tier, for backup or load balancing.

  • Provide flexibility in network management, allow end user edit and optimize their need.

  • Provide extent API, allow programmers develop and integrate Neutron into other different system

Neutron support many network technologies to enhance network functions, not only just create VLAN, subnet, but also create virtual switch through vSwtich technology abd other features such as firewall, DHCP, VPN, load balancing.

In [79], the authors had deployed Hadoop on the OpenStack to compare the network performance of single-host plan and the multi-host plan through the service performance of Hadoop. In the latest paper, we had been analyzed performance of OpenStack open source solution for IaaS cloud computing in [10].

3 Network Performance Analysis of OpenStack

3.1 Our Topology Experiments

Open source cloud OpenStack support VPS service (IaaS) with different types of vCPU, RAM, and HDD. In our setup environment, the four testing cases will be analyzed to estimate the network performance in throughput, time delay, and packet loss in UPD protocol between virtual machines. Our deployment system has three servers which are:

  • 01 server is Controller and Network roles, run services of OpenStack Controller management and shared services such as KeyStone, MySQL, Neutron, Cinder, and other related services.

  • 02 servers are Compute nodes, which are deployed Neutron L2 Agent and the virtualization hypervisor KVM. These 02 servers support the compute service for virtual machines.

The deployment model has four networks:

  • Public and Floating IP (VM Network in deployment model): 10.196.205.0/24

  • Management network: 10.196.202.0/24

  • Storage network: 10.196.203.0/24. In deployment model, the storage network is in the same physical interface (NIC) with Management Network. However, the storage network is not analyzed in this paper.

  • Internal Network—network for tenants: 192.168.111.0/24 versus 192.168.112.0/24

  • Hence, 1 PXE network is used for administration and installation of physical machine in the system.

3.2 Our Experiments

This section includes the four tests result found from the actual experimental setup on our testing deployment system in Fig. 2.

Fig. 2
figure 2

Our testing deployment system

  • Case study 1. This experiment case does a testing in throughput, delay, and package loss between two virtual machines in the same compute node, the same internal network in UDP protocol.

  • Case study 2. This experiment case does a testing in throughput, delay, and package loss between two virtual machines in the same compute node but different internal network in UDP protocol.

  • Case study 3. This experiment case does a testing in throughput, delay, and package loss between two virtual machines in different compute nodes but the same internal network in UDP protocol.

  • Case study 4. This experiment case does a testing in throughput, delay, and package loss between two virtual machines in different compute nodes and different internal networks in UDP protocol (Figs. 3, 4, 5, 6).

    Fig. 3
    figure 3

    Case study 1: two virtual machines \( {\text{VM}}_{1} \) and \( {\text{VM}}_{2} \) in the same network 192.168.111.0/24 and compute node 18

    Fig. 4
    figure 4

    Case study 2: two virtual machines in the same node 18, but different internet subnet (192.168.111.9/24 and 192.168.112.103/24)

    Fig. 5
    figure 5

    Case study 3: two virtual machines in the same internal network (192.168.111.0/24) but in 2 different compute nodes (node 17 and node 18)

    Fig. 6
    figure 6

    Case study 4: two virtual machines in different compute nodes (node 17 and node 18) and different internal network (192.168.112.103 versus 192.168.111.10)

3.3 Results and Discussion

Network function in OpenStack is delivered by Neutron module, and Neutron virtualize and create switching, routing environment through Neutron L2 Agent and Neutron L3 Agent service. All of the experiment cases above are designed and created by Neutron.

In research network parameter related to throughput, time delay, and package loss in UDP protocol, the tool IPERF is executed in 5 min and data information is collected for each 5 s. While doing testing in a case, the other cases are suspended (Fig. 7).

Fig. 7
figure 7

Average UDP throughput in four experiment cases

From these results above, when two virtual machines were put in the same compute node and same internal network, network performance was better than the other experiment cases. The measure results prove that virtual machines in the same compute nodes and same internal subnet get 4.2 % better results in network throughput when compared to the other cases.

On the other hand, packet delay time and packet loss between virtual machines in the same compute node but different internal subnets, or different compute nodes and different networks have better results. Especially, in case virtual machines are set up in the same compute node but different internal subnets has packet loss only 40 % when compared to other testing case with same compute node and same internal network (Fig. 8).

Fig. 8
figure 8

Average packet delay time and packet loss in UDP protocol

4 Conclusion and Future Works

Cloud computing and open source cloud OpenStack today become a trend in technology and is one of the first choice of companies in the world. In this paper, we did a analysis and research on OpenStack network performance based on the parameters throughput, packet delay time, and packet loss. From the results, OpenStack Neutron ensure a high-performance network for virtual machines in cloud system. The results also prove that the different locations of virtual machine and internal network effect to network performance. For example, the virtual machines in the same compute node and same Internet subnet give the best network performance than other research cases.

However, in the paper, we only focus on UDP protocol in a small cloud system, this work needs to be research in a larger cloud system. In the future, our work will focus more on the other protocols (both UDP and TCP) and in a bigger cloud system with more test cases.