Abstract
Cloud computing is an integrated service, which provides a new versatile of programming paradigm with a good number of features to dynamically migrate virtualized computing services between physical servers of various cloud data centers. This technology made the users and cloud service providers (CSPs) to manage the loads as per the demand. The effective management of loads in the cloud environment gives a rise to introduce new management methods, which are responsible for equally distributing the incoming workloads among all the available VMs in an effective way for a given period of time. To achieve this requirement various schemes have been proposed. However, many of them are not suitable to find the optimal information about required resources to fulfil the user demands. To accommodate this, in this paper, an approach named heuristic and fair-queuing based VM load balancing (HFQ-LB) has been introduced. With the help of fair-queuing, an efficient strategy has been designed. This configures the number of incoming loads for finding an appropriate VM for the assignment to satisfy the goal, i.e., it maximizes the utilization of resources according to the user demand. With the help of CloudSim, the proposed algorithm is validated in terms of makespan, waiting time, CPU utilization, and VM utilization by creating a multiple number of data centers. The proposed algorithm is also compared with other existing eight algorithms. Experimental results show that the proposed algorithm outperforms these existing algorithms in terms of makespan, waiting time, CPU utilization, and VM utilization.
Introduction
Cloud computing is a new kind of epoch for the computing techniques, which emanated as a new stage for the distributed computing system. It provides the required resources to the end users as per their demand using pay-per-use model [1, 2, 3, 4]. In this manner, the cloud can be described as a type of distributed computing system in a virtualized environment, where the resources are provisioned dynamically [5]. According to Berkeley, the cloud can be stated as: “Cloud manages all of the essential applications which are mainly delivered in the form of infrastructure and platform at the data center through the internet that provide services to the end users. The services are itself known as Software-as-a-Service (SaaS)” [6]. Usually, cloud acts as a repository where the data and the information are stored, accessed, and successfully delivered to the end users. Foster presented a scenario in the form of a grid environment entity with cloud [7]. Cloud computing basically termed in three types of service models, namely: Software as a service (SaaS), Platform as a service (PaaS) and Infrastructure as a service (IaaS). The main objective of using IaaS is to increase the resource utilization by following SLAs, which ensures QoS to the end users. On the other hand, to fulfil the requirement of loads (i.e., number of jobs), cloud uses the services of IaaS, which provides a platform in a virtualized manner by creating an infinite number of VMs that fulfills the requirements of loads successfully within a reasonable amount of time [8, 9]. So that, the load of the end users can be processed by the cloud data center efficiently. The requirements for efficiently managing the loads are; resources can be managed efficiently and scheduled for the incoming loads in an intelligent manner so that all the requirements are successfully achieved by the dynamic provisioning of these computing services through the fair allocation of VMs. To assure the on time execution of the computational resources, the cloud service providers (CSPs) integrate the various related data centers that must fulfil the user demand in an efficient way. In order to maintain the SLAs without any violation, the CSPs require efficient load balancing strategies, where the load(s) can be further divided and scheduled by suitable VMs [10]. In order to scale the utilization power of VMs, the American society calculated the infrastructural cost as well as the load balancing costs, which are significantly decreasing from 75% to 25% of the overall operating cost of a VM [11, 12]. In order to handle this problem, resources must be utilized in an efficient manner. To accommodate these instances, in this paper, our focus is to handle the balancing approach in an efficient manner. The main objectives of load balancing approaches are: (a) to maximize the CPU utilization, (b) to minimize the execution time, and (c) to minimize the overall completion time of loads which are assigned to the appropriate VMs.
However, an improper assignment of loads may lead to imbalance of VMs among the various kinds of homogeneous as well as heterogeneous data centers. Hence, creating an efficient load balancing scheme becomes very difficult from CSP side to improve the system performance, CPU as well as resource utilization. Thus, it becomes crucial for developing such approach, which can efficiently improve the overall utilization of resources by effectively balancing the loads [13, 14, 15]. In the recent time, many algorithms such as Two Level scheduling Algorithm (TLSM) [50], LBACO Algorithm [51], HBB-LB Algorithm [52], TS-QoS Algorithm [53], LCFP and SCFP Algorithm [54], LB-BC Algorithm [55], Hyper-Heuristic Scheduling Algorithm [56] and ACO [57] etc., have been designed to solve the above mentioned issues. However, these algorithms did not find the potential information about the loads to manage the resources efficiently. In order to handle the above consequences, in our proposed load balancing algorithm, the number of incoming loads and the size of those respective loads both play an important role in balancing the loads. Another important key factor of our proposed methodology is that it fairly allocates the VMs for achieving an efficient resource utilization mechanism.
In this paper, a load-balancing approach is proposed for cloud data centers based on heuristic rules and fair queuing algorithm for fairly allocating the VMs. The proposed algorithm has two phases. In the first phase, VMs are allocated with the help of heuristic rules and fair queuing algorithm and in the second phase loads are mapped in between the incoming loads and the VMs. On the other hand, we also plan to design an efficient strategy for fairly configuring the VMs based on the availability of incoming loads. By following this strategy, the efficient utilization of resources as well as the CPU has been achieved. The objectives of this paper are stated as follows;
A load balancing approach is designed for the data centers in the cloud environment which is more convenient and suitable for balancing the loads. Such an efficient scheme is implemented, which can successfully configure the entire system based on the incoming loads and their respective sizes. This strategy is really helpful inefficiently utilizing the computing resources as well as the CPU. A new Load-VM mapping approach has been developed for minimizing the waiting time by efficiently scheduling the incoming as well as waiting or remaining loads efficiently.
The roadmap of this paper is as follows. Section 2 depicts the related works. Section 3 explores the problem formulation, notations and definitions. Section 4 presents the proposed work along with the system model and algorithms. Section 5 presents the result analysis part of the proposed approach and Section 6 concludes the methodology with future scope.
This section describes some works proposed and designed for load balancing in a cloud environment. A methodology named host load prediction is designed based on the concept of Bayes model [16]. It was first invented by Zhao et al., where few of them were dealt with VM assignment and SLA violations [43]. According to the strategy developed in [17, 18], “dynamic allocation of the VMs by using the fair queuing algorithm while it meets the SLA requirements creates a problem”. So, these two processes are together, finding a set of the VMs. This algorithm also includes a few constraints about all the VMs, which can achieve the balancing deficiencies. Xu et al. invented a kind of cloud partitioning load balancing model in a public cloud environment [19]. This algorithm uses switching model to successfully choose the various mechanisms for various upcoming conditions. By this, it can improve the efficiency of the entire system in a remarkable way. In the similar fashion, Ma et al. have also investigated about the automated resource allocation and capacity planning [20]. In this, they invented three time independent factors, which are not suitable for IaaS. With the incoming loads for IaaS that exhibited for the patterns of resource utilization. On the other hand, some works related to capacity balancing [21] and behaviour pattern analysis [22] for resources have been compiled to make the resource mechanisms executable.
Maguluri and Srikant presents a stochastic model of load balancing approach [23]. This approach works based on all non-pre-emptive resources, where the resources are partitioned to the entire system and each of the load chooses a set of resources. In this way, the system performance has been improved. Pham et al. stated an approach for the heterogeneous systems about how efficiently balance the incoming loads in a cloud environment [24]. This approach reduces the energy consumption of the allotted VMs as well as the data centers by addressing the VM consolidation. According to Borhani et al., most of the data centers within the system are often underutilized (
Bandar et al. invented a brokerage system in CSP along with the vulnerabilities and weaknesses related to the system in the multi tire cloud environment [32]. Faraji et al. proposed an identity access methodology for multi-tier cloud models [33]. Castro et al. invented a dynamic consolidation problem of VMs, which executes the required resources with deadline constrains [34]. This approach provides a structured plan for finding and investigating the minimum number of required services to successfully fulfil the requirements of the end users. Kumar et al. has described an efficient strategy for the dynamic consolidation based on the VMs [35]. This strategy estimates the “stability” and reallocates the VMs. Some of these proposed methodologies have been simulated and demonstrated by using the cloud simulation toolkit to maximize the characteristics of VMs [36, 37, 38]. At the higher utilization of resources, the performance is based on the incoming loads which are shared among various VMs. This is done through the access of physical resources with the help of Linux Control Groups with CPU shares by following the Para RMS Algorithm [45]. This ensures that the heavy loads which have the conformation of the access to the availability of the physical resources. This is not applicable for IaaS in cloud environment when revealed with various kinds of loads under the given period of time. In 2010, Fang et al. [50] described an algorithm based on load balancing and scheduling algorithm, namely: ‘Two-level Scheduling Algorithm (TLSA)’, where the requirements are successfully fulfilled by the greater utilization of resources. In 2013, Dinesh et al. proposed an algorithm, namely TS-QoS [53] which considers the priorities of loads. The problem which has occurred in this method was eliminated by the methodologies proposed in [39, 46]. Thus, this load balancing methodology can successfully implemented on different configuration of systems in a cloud environment. But the disadvantage of these algorithms again pinpointed based on the parameters involved in QoS. In 2013, Wu et al. invented a load scheduling algorithm based on the QoS-driven in cloud computing [40]. It includes various QoS parameters such as load length, availability of VMs, and remaining time, etc. In this, loads are scheduled into the services and takes minimum completion time by following the parameters included in the QoS. In 2013, U. Bhoi proposed an Enhanced max-min task scheduling algorithm [41] which enhances the computational resources in the cloud environment as well as the performance of the system based on protocols which allows the shared computation and storage in cloud computing.
In 2013, Chen et al. described an algorithm which is generally begun with any set of tasks is called ‘Min-Min Scheduling Algorithm’ [42]. It starts after finding the availability of resources within the system which take the minimum completion time for all these jobs. When the minimum completion time was successfully found, then the smaller size task is chosen for the assignment of that respective resource. The main drawback of this algorithm is that properly balancing the available loads are not possible because the existing load on the available resource is not considered before assigning the task.
In 2011, Kun Li et al. describes a task scheduling policy in the cloud which is based on the Load Balancing Ant Colony Optimization (LB-ACO) algorithm [51]. The main objective of this algorithm is to reduce the given task sets of makespan by balancing the entire available loads of the cloud computing system. In 2016, Zhao et al. described a methodology based on optimizing the candidate target host. It is mainly used for achieving the immediate effect of load balancing by picking up the optimal target host [43]. In 2011, Sindhu and Mukherjee described a combination of algorithms, namely, Longest Cloudlet Fastest Processing elements (LCFP) and Shortest Cloudlet Fastest Processing elements (SCFP) [54]. The target of both of the scheduling algorithms is to reduce the waiting time and improve the CPU utilization. In 2018, Midya et al. described a multi objective optimization technique for the resource utilization and successfully balancing the loads in a cloud environment [44]. In 2015, Zuo et al. described a biodiversity based multi objective optimization technique for the resource utilization and successfully balancing the loads in a cloud environment. In this, the demand of loads and the availability of resources is defined by the resource cost and user resources cost respectively [47]. Multi-objective optimization method performs approximately 56.6% better as compared to FCFS, Min-Min methods [40].
Problem formulation
In this section, first, we illustrate the problem formulation. The formulation is to make an efficient load balancing algorithm by integrating the Heuristic rules and Fair-Queuing algorithm. The objective of this algorithm is to achieve an optimal capacity of VMs and the total numbers of incoming loads present in the cloud data center. For this, we define the notations which are used in various definitions related to the proposed methodology. Notations and their meanings are illustrated in Table 1.
notations
notations
where
Finally, the problem is formulated as;
Flow of VM consolidation is depicted in Algorithm 1. Firstly, hosts are created and then VMs are taken for the input. After taking the inputs, VMs are assigned to the respective hosts and then cloudlets are assigned to the corresponding VMs. The status is monitored for every scheduled time interval to detect the under load hosts. These hosts are kept on sleeping mode by transferring all the available VMs to other active VMs. Then overload detection takes place by following the same technique. After completion of these steps, active VMs are selected for migration. A 7 minute iteration is considered to detect the under loaded and overloaded VMs by creating the relevant log files [10, 48, 49, 58].
System architecture
The data center consists of a set of identical hosts which are able to store a multiple number of VMs simultaneously. The related system architecture is depicted in Fig. 1. The role of the ‘administration controller element’ is to find whether a set of loads can be available for the system or not. The main role of the ‘VM scheduler element’ is to find out the best possible configuration of the data center as well as the configuration of VMs. The ‘load scheduler’ will perfectly manage the remaining loads which are in the waiting queue.
System architecture.
In this section, we describe the SFQ based VM allocation methodology which is more suitable and convenient to run the proposed scheme named Heuristic Fair Queuing based Load Balancing (HFQ-LB). However, before moving to the proposed methodology, a brief overview of VM consolidation is stated with the algorithm, which describes the VM consolidation approach. The same has been validated with CloudSim Simulator.
Heuristic rules
Algorithm
Heuristic rules based on CPU utilization
The CPU can be efficiently utilized with the help of a ParaRMS algorithm. This algorithm effectively applies to the multicore processes. So that it can schedule many loads at a given time. All the processes which are in ready state will be granted for the execution. The algorithm efficiently allocates the deadline to each of the core based on the given time periods. Ones the VMs are available, then assigning them to the incoming loads and finally balance the work, where only one load is assigned to a particular VM at a given time period. For every time interval, loads have been monitored to check execution time based on the deadline constraints. Based on this strategy, the load is assigned to an appropriate VM. On the other hand, if any higher priority load is present in the ready state, then the load which is in execution mode will be pre-empted and goes under the waiting state. Then the higher priority load will get the chance for execution, but if the execution of the lower priority load is completed or goes to ready state then its execution remains same or left. The algorithmic formulation for CPU utilization is depicted in Algorithm 2. Based on the CPU utilization, the rules have been framed in the below manner.
When CPU utilization When CPU utilization If the CPU utilization
The load balancing approach can be achieved by mapping the incoming loads to the VM and mapping all the VMs present in the cloud environment to the hosts. This mapping is done by transferring the remaining loads from the overloaded data center. It follows the rules which are stated as follows:
VM_Load Lowloaded VM Overloaded VM
In order to balance the incoming loads efficiently a fair scheduling approach is required. In this work, to allocate the VMs fairly, Start-time Fair Queuing (SFQ) algorithm is used. This algorithm is based on the concept of organizing the end users of the CPU bandwidth in a tree structure. The root node of the structure is the ‘processor’ of the system and the leaves are the ‘threads’ of each application. Here, the load balancer acts at each level of hierarchy. So, the fraction of the processor (i.e., the root node) bandwidth ‘bw’ is allocated to any intermediate node
where
Structure of SFQ tree for scheduling VMs.
When a VM is inactive then its bandwidth is reallocated to the other active VMs at the same time. When one of the applications of VM is inactive then, its allocation is transferred to the other active applications which are running on the same VM. Similarly, if one of the threads of the system is not working properly, then its allocation is also transferred to the other threads of the applications. Call the virtual time
Threads exist in the system according to their start-up time and ties can be broken arbitrarily. The virtual start-up time of the
The condition for thread ‘
The virtual finish time of the
The thread will be stopped when its time quantum is expired and its time quantum is the time quantum of the scheduler that can be divided by the weight of the thread.
Initially, all the threads having the same virtual time, i.e.,
V(t)
V(t)
The algorithm allocates the VM fairly when the available bandwidth varies in time and provides throughput as well as delay guarantees. The algorithm schedules the threads according to their virtual start-up time and the shortest one will be chosen as first, where the length of the time quantum is not required when a thread is scheduled. The corresponding pseudo code of SFQ based VM allocation is presented in Algorithm 3.
Whenever the system is configured successfully, then based on its performance the datacentre fixes the maximum queue length for the VMs. Therefore, the incoming loads can be distributed among the available variable queue length VMs of the systems to increase the CPU utilization. This functionality is stated as follows:
where
By integrating the heuristic and fair queuing strategies, the proposed methodology has been designed. The integration of fair queuing and mapping in terms of integrated heuristic and fair-queuing based VM load balancing algorithm is stated in Algorithm 4. On the other hand, the methodology of the proposed load balancing approach is validated with an example shown in Section 5.1.
Finally, all the reaming loads are assigned to the appropriate VMs based on SFQ algorithm. Figure 3 depicts the flowchart of the proposed methodology. With this, the system calculates the required capacity of each load and also calculates the total incoming loads, execution time, and waiting time of the loads as per the computations depicted in Eqs (2), (3), (5)–(7) respectively.
Flowchart of the proposed approach.
The proposed algorithm is implemented in java and simulation has been performed with CloudSim toolkit 3.0.3. We create cloudlets, VMs, Datacentres, Hosts with the specific configuration which satisfy the load balancing policies. We design and deploy the proposed algorithm in the environment of cloud simulator. After the submission of cloudlet requests for the participating VMs, the resource allocation policy has been applied. It shows how the loads are distributed to the VMs of the data centres. Figures 5–7 depict the comparison of waiting time, CPU Utilization and VM Utilization of 10, 15, 20 and 25 sizes respectively. The proposed algorithm is compared with the other existing algorithms named; TLSM [50], LB-ACO [51], HBB-LB [52], TS-QoS [53], LCFP and SCFP [54], LB-BC [55], HHSA [56], and ACO [57].
Makespan.
Waiting time.
In this section, an example is presented to illustrate our proposed methodology. First, the less number of incoming loads are considered and the system efficiently hosts the VM. Initially, we consider the number of VMs by increasing the size as 10, 15, 20, and 25 respectively, where the considered capacity of each CPU is 1000 MIPS. In this example, we discuss about three loads namely; L
Assign the initial incoming load L Assign the incoming load L Assign the incoming load L
In this section, the comparative results of the proposed algorithm have been described with other existing load balancing algorithms in terms of Makespan, Waiting Time, CPU Utilization, and VM Utilization. The comparison scenario of Makespan, Waiting Time, CPU Utilization, and VM Utilization are stated in the following manner.
Makespan: It is defined as the difference of time in between the starting and ending sequence of incoming loads in the cloud environment. In this, we calculate the makespan for every incoming load after execution of the type of VM instances. Figure 4a–d depicts the performance of the load balancing algorithms for 10, 15, 20 and 25 distinct types of VMs. With this observation, we found that our proposed approach outperforms with the above mentioned load balancing approaches.
Waiting Time: It is defined as how long an incoming load can wait in the waiting queue for getting a response from an appropriate VM. In other words, it is the difference in between the load’s arrival time and the execution time of load. Here, we calculate the waiting time by measuring the different set of incoming loads after its execution on the different types of VM instances. Figure 5a–d depicts the performance of the load balancing algorithms for 10, 15, 20 and 25 distinct types of VMs. With this experiment, it is found that our proposed approach obtains less waiting time as compared with the existing load balancing algorithms.
Statistical comparison between load balancing approaches
Statistical comparison between load balancing approaches
CPU utilization.
CPU Utilization: This parameter shows that the maximum CPU utilization does not depend on any of the VM instances while efficiently executing the load balancing approach. It depends on the maximum number of active VMs. Here, we calculate the CPU utilization for each incoming load after execution of the different types of VM instances. Figure 6a–d illustrates the performance of the load balancing algorithms for 10, 15, 20 and 25 distinct types of VMs. With this instance of experiment, it is concluded that our proposed approach achieves higher CPU utilization as compared with the existing load balancing algorithms.
VM utilization.
VM Utilization: This parameter shows that how many times VMs are rescheduled for the efficient execution of the incoming loads. If VM utilization is higher than resource then utilization is also higher. Here, we calculate the VM utilization for each incoming load after execution of the different types of VM instances. Figure 7a–d depicts the performance of the load balancing algorithms for 10, 15, 20 and 25 distinct types of VMs. With this experiment, it is proved that the proposed approach HFQ-LB achieves higher VM utilization as compared with the existing load balancing algorithms.
After the execution scenario, finally, we made a statistical comparison among all the load balancing algorithms, which are depicted in Table 2. With this, it is concluded that (i) the proposed methodology provides a fair allocation of VMs. Hence, the efficiency of the load balancing algorithm is achieved. (ii) On the other hand, it provides the maximum utilization of resources through heuristic rules.
In this paper, an integrated heuristic and SFQ based load balancing algorithm has been designed. On the other hand, the related factors such as VM consolidation, fair allocation of VMs and heuristic rules for properly balancing the incoming loads have been introduced. SFQ based VM configuration method gives an optimized decision for selecting a VM to migrate from one host to some other host. As illustrated in Table 2, after the simulation and comparison against existing methods, it is found that the proposed method outperformed as compared with the other existing methods of load balancing in all perspectives (i.e., makespan, waiting time, CPU Utilization and VM Utilization). With these functional parameters, it is stated that the objective of the proposed approach has been achieved in an efficient manner. As a future work, the proposed methodology can be further extended with suitable optimization strategies to enhance the functional parameters in a heterogeneous cloud datacentre environment.
Footnotes
Acknowledgements
This work is partially supported by Indian Institute of Technology (ISM), under the grant of TEQIP-III/18 supported by MHRD, Govt. of India. The authors wish to express their gratitude and heartiest thanks to the Department of Computer Science and Engineering, Indian Institute of Technology (ISM), Dhanbad, India for providing their research support.
Authors’ Bios
