Cloud-based Data Center Design as a Data Storage Infrastructure on Internet of Things

. The widespread use of Internet of Things (IoT) has effect in a growing number of hardware devices that can be controlled and monitored using a variety of applications. It affects the amount of data that must be collected to be analyzed and processed according to user requirement. The greater the data collected results in requirement of storage media that has access management and scalability that are effective and efficient. The data collected in cloud-based infrastructure namely Openstack. Implementation in this research by involving two physical device of server as main infrastructure that located in network of Faculty of Computer Science, Brawijaya University Malang which used as controller node and compute node. Controller can adapt to the use of various dashboard and provide a good access management service for users to request and create instances in Openstack. The resulting data center shows good performance based on scalability, access, and performance of data transmission from IoT sensors. The test is done gradually by adding requirement of compute nodes up to 24 VCPU, 48 GB of RAM, and 235 GB of HD storage in registered instances. Access at the data center can be done either from faculty internal network (private) and faculty external network (public) with access time under 100 ms.


Introduction
The term "Internet of Things" (IoT) was first used in 1999 by Kevin Ashton to describe a system that the objects in physical world can connect to the Internet through a sensor device.To support the connection of these devices, IoT applications are needed to retrieve, store, and process the data that obtained from sensor.The data of IoT have some criteria such as diversity, speed, scale, and volume [1] [2].The more variety of data obtained, with a large volume, add scale, and fast data processing speed, then the settings and monitoring can be done accurately for various uses.
Sensor data will continue to grow and the longer the sensor data will exceed conventional database systems and will be difficult to manage locally.To deal with the problem of the insignificant cost and current database systems that are less supportive, cloud computing service technology can be used with the IaaS (Infrastructure as a Service) [3].In IaaS services, users can manage and provide a virtual CPU infrastructure that contains RAM or memory, processor, and disk storage to support database management as needed.Users can easily store, process and share information with other users without having to access the infrastructure physically.Therefore, cloud implementation can reduce the cost of purchasing infrastructure resources, so that it can be allocated for purchases in other aspects [4].
To build IaaS, a platform is needed to manage user needs.Microsoft Azure, Eucalyptus, Open and Openstack are some of the basic IaaS platforms that are currently popular [5].The basis of the IaaS platform used in the study is using the Openstack platform, because it is open source with the development of features and services that are quite rapid.In principle, IaaS provides virtualization services for each resource service user.Virtualization is a technology to maximize the use of resources on a server device by creating multiple virtual machines on a physical server.The division of resources involves hardware, software, operating systems, and storage media (Swathi, 2014).The development of this virtualization process was developed further by involving an internet connection so that it can be used as a cloud service provider with virtual machines that are used for various infrastructure needs such as storage media and networks.
In IoT perspective, IaaS is used as a data center.By using IaaS, each user can access the virtual resource devices provided by the provider in accordance with the access rights of each user.Users can also add resources if the need for scalability of data is even greater.The addition of scalability can be done at any time according to the needs gradually easily.This results in effective and efficient use of server hardware.
By looking at the background above, the researchers conducted a study entitled "Cloud-based Data Center Design as a Data Storage Infrastructure on Internet of Things ".Research is expected to be a reference in making data centers from a collection of virtualization servers in IoT using the cloud-based Openstack platform that conducted at Faculty of Computer Science, Brawijaya University Malang.

Methodology
The system conducted at Faculty of Computer Science, Brawijaya University Malang using two physical server that can be share resources by multiple virtual machines.Server 1 as a controller node and compute node, while server 2 as a compute node only.Controller node functions for the management of services that available in Openstack, such as Horizon dashboard, Nova, Neutron, etc. While, compute node functions to running instance services on each physical machine.This two physical server can be integrated with Openstack platform.At first, just one server has been configured to the system, then added one server again for large scalability usage.Furthermore, the use of 2 physical server can be implemented as a backup server if one compute node go down.Client as known as instance in term of virtualization.Instance can be as a gateway that gather the data from sensor to Openstack storage.Cloud-based architecture is shown in Figure 1.There is two access model can be provided for accessing instance, from internal network (private) and external network (public).This network access can pass by using virtual private network (VPN) that provided from Universitas Brawijaya.
The needs of server hardware and software specification are support to build the system.Hardware that used in Openstack platform high specifications and large enough of storage to store data.Hardware specifications for both of them, server number 1 and server number 2 is shown in Table 1.While, software specifications also using operating system that support Openstack.For software specifications is shown in Table 2. Implementation includes the steps taken to realize the system that has been designed and various stages to build the system such as create instance for users and access instance by console.
Testing the system includes scalability test by adding 1 node server, access test from private and public network, and performance test for network delay and sensor.

Implementation
There are two implementation that conducted in this system, create instance for users to manage the cloud and access instance by using console after get the keypair.
a. Create an instance Before access an instance, the user must login to Horizon dashboard with typing the URL that contain IP address of server 1 as a controller and compute node 10.34.0.14/dashboard.In Horizon dashboard, the next step is create an instance that is intended for each user who wants to get cloud storage services on the server.Making these instances by entering the "launch instance" feature, in this research namely dipaiot.The next step in launch instance is described as follow: -Choosing source of the image that provided in Openstack for operating system selection to be used by user.There are several images have been provided, such as CentOS, Debian, Cirros, and Ubuntu.-Choosing flavor for the instance that will be created.The flavor is used to adjust the memory capacity size and storage in each instance.In flavor, there are several name of size that can be selected according to user needs, namely tiny, small, medium, large, and xlarge.-Choosing networks to provide communication path for instance within the cloud.The network allocation using private network.Instance requires a key pair for the security feature in accessing a particular instance with the key agreement that has been made.After successfully created this key, the user can save the private key in the file with .pemformat into local computer.Key pair works by keeping the public key on the server and private key on local computer.After the server verifies that the two keys match, a secure connection between the server and instance is created.There is an option to create or import key pairs.In this implementation, the selection is to create key pair with the name "dipa" which can be used directly to access the instance as shown in Fig. 2.Then, allocate the IP address to the instance 10.34.0.22 in order to become a public IP address that can be used in connection to the external netwok.Fig. 2. Key pair for instance b.Access an instance After successfully obtaining the key pair from Fig. 2 above, then to be able to access the instance must be done through the console using Putty software.Before access the console, the .pemfile must be convert to the .ppkfile format using the PuttyGen software.Puttygen loads first to find the existence of the dipa.pemfile on the local computer.The dipa.pem file is searched by selecting All Files (*.*).Then, a combination of numbers and letters will be generated by Puttygen in the form of a private key that is used to authorize access to instances as shown in Fig. 3.After succesfully convert to .ppkfile, the user can login the instance through accessing the Putty software on the Windows operating system or through the Linux terminal console.In this step, the user login to instance dipa-iot with floating IP address 10.34.0.22.And when it successfully login to instance 10.34.0.22 that display the terminal console as shown in Figure 4.

Testing
There are three tests that are used to see the performance of cloud such as scalability test by adding 1 node server as a compute node only, access test from private and public network, and performance test for network delay and sensor load.a. Scalability test In this test by adding compute nodes certainly add resources such as virtual CPU, hardisk, and memory.Server 2 is used as a compute node only.Labjarkomp.localdomain is the initial hostname that is owned, then added server 2 that uses openstack.localdomainhostname.Allocation to updated server (hypervisor) with increased resources is shown in Fig. 5 that contain 12 virtual CPU, 24 GB RAM, and 111 GB hardisk storage.So, the total of resource are 24 virtual CPU, 48 GB RAM, and 235 GB hardisk storage.
Other scalability testing is by adding and managing several instances in Openstack using the Nova feature.Operations that can be performed in Nova such as rebuild instances, restart, launch instances, hardware settings, and other types of operations that related to instances.Several instances were created in this Openstack platform as shown in Fig. 6. -Access from internal network The access testing from internal network is done by looking at the IP address on computer that detected from faculty internal network.IP address was detected 10.34.22.59 using a wireless connection.Then, by using the ping tool to detect the active Openstack instance with IP address 10.34.0.22.As shown in Fig. 7, it has been proven that Openstack instances can be accessed from faculty internal network by viewing reply message sent from instance to IP address 10.34.22.59.The access testing from external network is done by using through OpenVPN application to be able to enter Brawijaya University internal network from outside Brawijaya University internal network.The user seems to be inside Brawijaya University internal network even tough it uses from outside Brawijaya University network.The detected IP address that obtained from Brawijaya University's VPN server to user is 172.19.0.219.Another ways to check connections from outside networks that can access instances that are on faculty internal network is by doing the netstat command with the -a option.
As shown in Fig. 8, it can be seen that communication between outside computer's IP address 172.19.0.219 has been connected to 192.168.100.12 which is the internal IP address of the instance in Openstack with ESTABLISHED status.Then, by using the ping tool to detect the active Openstack instance to the IP address 10.34.0.22.As shown in Fig. 9, it has been proven that Openstack instances can be accessed from faculty external network by viewing reply messages sent from instances to external user using Brawijaya University VPN access.

Conclusion
In this system research, we proposed a design of data storage infrastructure based on cloud Openstack.In this system, the user can manage the storage with any service that provided from Openstack using instance.While for entering the instance, Openstack has provided keypair services as a key to guaranteeing security and convenience to access the storage for user.This system also scalable for adding an instance and also a physical server resource as a compute node.User can access instances from internal and external network efficiently with various network delay.When data sensor has been transmitted to instance, the CPU usage running well to accomodate data delivery needs.
Fig. 1.Cloud-based data center architecure for IoT data storage

Fig. 7 .
Fig. 7. Access an instance from faculty internal network from reply message

Table 1 .
Hardware specifications of both server