Bespoke Virtual Machine Orchestrator: An Approach for Constructing and Recon�guring Bespoke Virtual Machine in Private Cloud Environment

A cloud-computing company or user needs to create a virtual machine to build and operate a cloud environment. With the growth of cloud computing, it is necessary to build virtual machines that re�ect the needs of companies and users. In this paper, we propose a Bespoke Virtual Machine Orchestrator (BVMO) as a method of constructing a virtual machine. The BVMO builds resource volumes as core assets to meet user requirements and builds virtual machines by reusing and combining these resource volumes. This can increase the reusability and �exibility of virtual machine construction. A case study was conducted to build a virtual machine by applying the proposed BVMO to an actual OpenStack cloud platform, and it was con�rmed that the construction time of the virtual machine was reduced compared with that of the existing method.


Introduction
Cloud computing [1] provides a service environment in which IT resources can be virtualized and used.
This computing environment is evolving with the advent of public cloud services such as AWS and Google [2] and the emergence of open-source platforms that provide private cloud service construction, such as OpenStack and CloudStack. In the case of a public cloud, a user pays a certain amount and receives a prebuilt cloud service. A private cloud [3] is utilized by a company or a user to directly build and use a cloud service provision environment. "Hybrid cloud," which refers to the use of a public cloud and private cloud together [4], is also provided.
In the case of public cloud-computing services, companies or users receive services in the form provided by cloud vendors and pay according to the service usage. To reduce the cost of cloud computing and build a cloud service environment in the form desired by companies or users, a private cloud environment must be established.
In the case of private clouds, dependence on cloud vendors can be reduced, but there is a technical di culty: it is di cult to build the desired cloud service delivery environment without expert knowledge about the cloud. The most basic technical application for building and receiving cloud services is to build a virtual machine. Enterprises or users who build private clouds have different purposes for using the cloud and have different requirements for different operating environments. Therefore, a technology is needed to provide a customized virtual machine environment suitable for various companies or users who wish to operate a private cloud.
Recently, infrastructure as code (IaC) has emerged as a concept of automating and providing virtual machine provision and cloud infrastructure construction. Tools such as Ansible [5] and Cloud-Init [6], which are used for automating virtual machine construction as support tools re ecting the concept of IaC, are being researched and developed. In this paper, we propose a method for automating the creation and management of custom virtual machines by borrowing the concept of IaC. In addition, to ensure reusability and exibility in building user virtual machines, we apply the concept of software product lines to build resource volumes used for virtual machines as core assets and present an approach to utilize them. We propose a Bespoke Virtual Machine Orchestrator (BVMO) for building a user-customized virtual machine by applying these concepts.
The remainder of this paper is organized as follows. Section 2 introduces previous studies related to the creation and management of virtual machines. Section 3 describes the architecture, process, and application of the BVMO. Section 4 presents a case study and evaluation of the process of creating a custom virtual machine using BVMO, and Section 5 concludes the paper.  [9], such as Hyper-V, XenServer, and vSphere. While OpenStack can build a cloud by combining multiple components, most of the modules in CloudStack are bundled into one binary.

Software Product Line Engineering
Among the software development methodologies, the product line engineering [10] method involves developing a core asset-a unit to be reused in developing a similar software product family-in advance. Assets used for commonality (required) and assets used for variability (optional) are identi ed in advance and reused to exibly develop new software products.
Even in a cloud environment, there is a concept of resource provisioning [11], in which various cloud resources existing in a cloud platform are built, prepared, and utilized in advance before being combined. This can be linked to the approach of product line engineering. Therefore, in this paper, we propose a method of combining the concept of product line engineering with cloud resource provisioning for virtual machine creation in a cloud environment. In this method, a volume pool that can be combined to build a virtual machine is built in advance as a core asset, i.e., resource provisioning, and a new virtual machine is built by binding these assets.

Provisioning Cloud Resources
Rajan et al. [12] proposed a method for distributing cloud resources by applying the Map-Reduce-Merge method based on cloud workloads. After cloud resources were classi ed into task units and the divided units were identi ed as one workload, the Map-Reduce-Merge technique was applied in the step of allocating the workload to a work queue.
In contrast, in the proposed approach, apart from the method of separating cloud resources into workload units and then dividing and conquering them, common and reusable cloud resources are identi ed in advance and built. The difference is that a virtual machine is created by combining prebuilt cloud resources according to requirements, in a manner similar to building with Lego blocks.
In the study of Wei et al. [13], the decision system was formalized in the con guration of the management system of the cloud platform according to the work ow analysis of the cloud. This method focuses on con guring a system from a management viewpoint, rather than con guring a customized system by re ecting requirements. It involves merging instances by analyzing the quality of service (QoS). Therefore, this paper presents a case where QoS is considered in the process of combining. The proposed method differs from the method considering simple QoS in the part where combining is performed according to requirements and merging is performed by reusing pre-established resources.

Conceptual Process for Bespoke Virtual Machine Orchestrator
BVMO allows the creation and management of user-customized virtual machines in a private cloud environment. Figure 1 shows the conceptual steps of building a virtual environment by applying the provisioning resource pool proposed herein.
First, in the Resource Pool Construction step, provisioning resources are divided into operating system, software, and data resource items. Operating system resources refer to CentOS, Ubuntu, etc. that operate virtual machines. Software resources refer to various software programs, such as GCC, Java, and Python, that users need in a virtual environment. Data resources represent various structured and unstructured data, such as text, documents, images, and videos.
Second, in the Resource Pool Selection step, a user selects desired resources from a prebuilt resource pool. Because prebuilt resources are provided, users can easily combine the desired components of the virtual environment through selection.
Third, in the Resource Con guration step, setting and combination of selected resource items are performed.
Fourth, in the Customized VM Creation step, a user-customized virtual machine re ecting settings and combinations is created. The proposed method creates various provisioning resource (data, software, etc.) pools and provides exibility in building a virtual environment by combining resource pools that meet the needs of each user.

Architecture of Bespoke Virtual Machine Orchestrator
To realize the construction process presented in Section 3.1, a virtual environment construction architecture using provisioning resources is employed, as shown in Fig. 2.

Application Scenario for BVMO
BVMO allows the creation and management of user-customized virtual machines in a private cloud environment. Figure 3 shows an application scenario involving a virtual machine system based on the architecture presented in Section 3.2, in which a virtual environment is built by applying the provisioning resource pool proposed in this paper. When requesting creation of a virtual environment, user requirements are collected and analyzed. Then, provisioning resources suitable for the requirements are delivered. The virtual environment creation management system combines resource items by re ecting requirements (selected resource information). It also creates a template describing resource combination information that can be interpreted and executed on the cloud platform. The created template is used to combine necessary resources, and a user-customized virtual environment is created by applying additional information such as network settings required when creating a virtual environment.

Case Study
We present a case study in which the proposed virtual machine construction process is applied to an actual OpenStack private cloud. The environment is based on JavaScript and the framework that drives it.
The user requirements are presented in Table 3.  Figure 4 shows the results of searching the resource volume pool and binding the OS and software according to the user requirements presented in Table 3.
In the search, the resources are classi ed by the name of the volume.
Hardware resources are loaded and re ected as variables in the template. Figure 5 shows an OpenStack Flavor template used to re ect hardware resources to VMs, and Fig. 6 shows a template that combines VMs and provisioning resources.
After the individual virtual machine resources in Figs. 5 and 6 are created, each resource is assembled according to the virtual machine template. Figure 7 shows a combination virtual machine template in which a Flavor template tailored to provisioning resources and two software provisioning resources are added to an instance template.
A virtual machine template re ecting the requirements, as shown in Fig. 7, is created and passed to the orchestrator. The delivered template undergoes the steps of OpenStack's orchestrator operation process (template veri cation, resource creation, resource setting, and completion) for the creation of a combined virtual machine in OpenStack, as shown in Fig. 8. Figure 9 shows the operation of the built virtual environment and the combination of provisioned resources.

Evaluation
We compared the time required for each step between the existing virtual machine creation method, which performs internal control of cloud resources through Cloud-Init, and the proposed method, which performs resource connection required for a virtual machine based on provisioned resources. The virtual machine creation phase consists of the steps as shown in Fig. 10.
As shown in the gure, the virtual machine creation phase begins when a request is sent to the orchestrator (Request Orchestration). At the Resource Binding Time, the cloud platform performs the operation shown in Fig. 11.
After receiving the orchestration request, the orchestrator veri es the template and then initializes and creates cloud resources (network interfaces, volumes, etc.) described in the template. Then, the details of the resources are set according to the contents of the template.
The Virtual Machine Booting Time operation is shown in Fig. 12.
After the resource creation and con guration process, an empty virtual machine is created according to the con gured resources. Depending on the settings of the operating system mounted on the virtual machine, Virtual Machine Booting Time is performed variably. The steps corresponding to the numbers on the x-axes in Figs. 13 and 14 are presented in Table 4.

Table 4 Execution Steps in Usage Comparison
Step Description As shown in the gure, steps 1-3 used little memory. In particular, in step 2, it was con rmed that the CPU was not used effectively, because the CPU usage was low. In the existing method, other components (volume processing component, network device management component, etc.) used during the virtual resource preparation step were combined and operated; thus, there are problems with dependencies between them, differences in their completion times, etc., resulting in a bottleneck. In contrast, because the proposed method has a structure in which virtual resource preparation is already completed, it is not affected by the time required for connection and processing with other components; thus, the Resource Binding Time was improved, as shown in Fig. 15.
The evaluation experiment was conducted by implementing the method using Cloud-Init-a virtual machine creation method that re ects existing user data-and the proposed virtual machine creation method ten times each. Figures 15 and 16 show the results obtained when the size of the provisioned resources (resource volume) was increased in increments of 5 GB.
As shown in Fig. 15, the size of the provisioned resources did not signi cantly affect the difference in the Resource Binding Time between the existing method and the proposed method. However, comparing the proposed method with the existing method revealed an average difference of approximately 8.1 s. It is judged that this occurs in the case of utilizing established provisioning resources and in the process of preparing uninitialized resources.
As shown in Fig. 16, the provisioning resource size did not signi cantly affect the Virtual Machine Booting Time between the existing method and the proposed method. However, the proposed method reduced the required time by 5.1 s on average. This is because in contrast to the existing method in which a virtual machine must be con gured from an image, the proposed method performs a reboot in a state where the OS is prepared in advance. This is because the proposed method does not affect the virtual machine con guration stage by performing a series of processes.

Conclusion
We propose BVMO-a method that can increase reusability and exibly create a user-customized virtual machine. In contrast to the existing virtual machine creation method, a process and architecture for constructing a new customized virtual machine by con guring a resource volume pool and combining the volume pool were established. The proposed method was speci ed by applying OpenStack-an actual open-source platform-and it was con rmed that this approach can reduce the time cost compared with the existing method. In the future, we plan to study techniques for building and managing virtual machines in multi-private environments rather than single private cloud environments.  OpenStack Volume-VM Integration Template Integrating Resources and Checking Actions Behavior during Resource Binding Time

Figure 12
Page 18/24 Behavior at Virtual Machine Booting Time Step-by-Step Comparison of CPU Usage Step-by-Step Comparison of Memory Usage Figure 15 Resource Binding Time Comparison