2015 (S1): 8-15 Load Balancing of Virtual Machines in Cloud Computing using Fuzzy Inference Rogheyeh Salehi 1, Mohammad Adabitabar Firoozja 2 1.Department of Computer Engineering, Mazandaran Science and Research Branch, Islamic Azad University,Sari,Iran 2.Department of Mathematics, Qaemshahr Branch,Islamic Azad University, Qaemshahr, Iran Abstract: Cloud computing is the emerging internet based technology. Cloud is a platform providing dynamic pool resources and virtualization.to properly manage the resources of the service provider we require balancing the load of the jobs that are submitted to the service provider. Load balancing is required as we don t want one centralized server s performance to be degraded. A lot of algorithms have been proposed to do this task.this research attempts to analyze of various policies utilized with different algorithm for load balancing and introduce the novel load balancing algorithm using fuzzy inference in cloud computing. Keywords: Cloud computing, Load Balancing,Virtual machine, Response Time, Fuzzy. Introduction Cloud computing is an expanding area in research and industry today, which involves virtualization, distributed computing, internet, software and web services. A cloud consists of several elements such as clients, data centers and distributed servers, internet and it includes fault tolerance, high availability, effectiveness, scalability, flexibility, reduced overhead for users, reduced cost of ownership, on demand services and etc (Srinivas et al., 2012). Load balancing in cloud computing is a grand challenge problem now a days. The main load balancing issues in cloud computing is load calculation and load distribution. To solve these issues, many load balancing techniques have been designed to distribute tasks properly (Das and Mohan Khilar, 2013). The load can be CPU load, memory capacity, delay or network load. Load balancing is the process of distributing the load among various nodes of a distributed system to improve both resource utilization and job response time while also avoiding a situation where some of the nodes are heavily loaded while other nodes are idle or doing very little work. Load balancing ensures that all the processor in the system or every node in the network does approximately the equal amount of work at any instant of time (Prasad Padhy and Goutam Prasad Rao, 2011). The load balancing model given in this article is aimed at the public cloud which has numerous nodes with distributed computing resources in many different geographic locations. Thus, this model divides the public cloud into several cloud partitions. The cloud has a main balancer that chooses the appropriate partitions and nodes for arriving jobs. Most of the previous work in load balancing and distributed decision making in general, do not effectively take into account the uncertainty and inconsistency in state information. The aim of this study was to take into account two major parameters,node's processor utilization and the time delay between order and service provider with respect to geographical distance using fuzzy logic, we have advantage of using crisps inputs. It also aimed at maximizing the system's performance and achieving a more appropriate load balance for various clouds in different sizes. Load Balancing In computer networking, load balancing is a technique to spread work between two or more computers, network links, CPUs, hard drives, or other resources, in order to get optimal resource utilization, throughput, or response time (Karimi et al., 2009). This load considered can be in terms of CPU load, amount of memory used, delay or Network load. Depending on the current state of the system, load balancing algorithms can be divided into 2 catagories as given in: Static: It doesnt depend on the current state of the system. Prior knowledge of the system is needed. Dynamic: Decisions on load balancing are based on current state of the system. No prior knowledge is needed. So it is better than static approach (Prasad Padhy and Goutam Prasad Rao, 2011). Related Works RRLB: Round Robin Load Balancer In this, the datacenter controller assigns the requests to a list of VMs on a rotating basis. The first request is allocated to a VM- picked randomly from the group and then the DataCenter controller assigns the subsequent requests in a circular order. Once the VM is assigned the request, the VM is moved to the end of the list. Round Robin scheme work well with number of processes larger than number of processors (James and Verma, 2012).
Genetic Algorithm Scheduling Approach for Virtual Machine Resources The current virtual machine(vm) resources scheduling in cloud computing environment mainly considers the current state of the system but seldom considers system variation and historical data, which always leads to load imbalance of the system. Most of the load balancing exists in VM migration.yet, when the entire VM resources are migrated, due to the large granularity of VM resources and the great amount of data transferred in migration and the suspension of VM service, the migration cost becomes a problem. In view of the load balancing problem in VM resources scheduling, this paper presents a scheduling strategy on load balancing of VM resources based on genetic algorithm. According to historical data and current state of the system and through genetic algorithm, this strategy computes ahead the influence it will have on the system after the deployment of the needed VM resources and then chooses the least-affective solution, through which it achieves the best load balancing and reduces or avoids dynamic migration. This strategy solves the problem of load imbalance and high migration cost by traditional algorithms after scheduling. Experimental results prove that this method is able to realize load balancing and reasonable resources utilization both when system load is stable and variant. Genetic algorithm is a random searching method developed from the evolution rule in ecological world (the genetic mechanism of survival of the fittest).it has internal implicit parallelism and better optimization ability. By the optimization method of probability, it can automatically obtain and instruct the optimized searching space and adjust the searching direction by itself. Considering the VM resources scheduling in cloud computing environment and with the advantage of genetic algorithm, this paper presents a balanced scheduling strategy of VM resources based on genetic algorithm (Hu et al., 2010). LBVFT: Load Balancing Technique for Virtualization and Fualt tolerance A lot of work has been done in the area of load balancing and fault tolerance for cloud computing. But due to its virtualization and internet based service providing behavior load balancing and fault tolerance in cloud computing are still a big challenge.the proposed technique distributes loads in a smart way by considering the success rates and the loads history of the available virtual nodes. The success rates is: SR=n1/n2 n1 is the number of times the virtual node of a particular physical server gives successful results. n2 is the number of times the Load Balancer of the cloud manager(cm) assigns tasks to a particular server s virtual node. In the model the load balancer takes high responsibility by distributing loads only to those virtual nodes whose corresponding physical servers have a good performance history. According to the scheme load balancer (LB) searches for the available virtual nodes having good SR value and lower load history by various searching algorithms like Binary Search, Linear Search and Randomized Searching Algorithm (RSA) etc. LB then distributes loads to the desired virtual nodes. Thus the LBVFT helps the VFT model to tolerate not only faults but also reduce the chance of future faults by not assigning tasks to virtual nodes of physical servers whose success rates are very low and loads are very high (Das and Mohan Khilar, 2013). Load Balancing using Stochastic Hill Climbing-A Soft Computing Approach The authors use stochastic hill-climbing for local optimization to assign incoming jobs to the servers or virtual machines. There are two main families of procedures for solving a optimization problem. Complete methods which guarantees either to find a valid assignment of values to variables or prove that no such assignment exists. These methods frequently exhibit good performance, and guarantee a correct and optimal answer for all inputs. Unfortunately, they require exponential time in the worst case, which is not acceptable in the cloud computing domain. The other Incomplete methods may not guarantee correct answers for all inputs. Rather these methods finds satisfying assignments for solvable problems with high probability. These algorithms have gained popularity in recent years, due to their simplicity, speed and observed effectiveness at solving certain types of problems. A variant of Hill Climbing algorithm Stochastic Hill Climbing(SHC) is one of the incomplete approaches for solving such optimization problems. A stochastic and Local Optimization algorithm is simply a loop that continuously moves in the direction of increasing value, which is uphill. It stops when it reaches a peak where no neighbor has a higher value. This variant chooses at random from among the uphill moves and the probability of selection can vary with the steepness of the uphill move. Thus it maps assignments to a set of assignments by making minor changes to the original assignment. Each element of the set is evaluated according to some criteria designed to move closer to a valid assignment to improve the evaluation score of the state. The best element of the set is made the next assignment. This basic operation is repeated until either a solution is found or a stopping criteria is reached. So it has two main components a candidate generator which maps one solution candidate to a set of possible successors,and a evaluation criteria which ranks each valid solution (or invalid full assignments), such that improving the evaluation leads to better (or closer to valid) solutions. The proposed algorithm for selecting the virtual machine in cloud works as follows: with the arrival of a new job, a machine is randomly selected. If the machine is not assigned a job, the job is assigned to the machine. Otherwise, a random function is used to select another machine. The job is assigned to the determined machine with a probability that it can finish the job efficiently. The machine performance is kept in a table. if it does not perform according to expectation (cost value) decrease its probability for 9
assignment in next iteration. This method is evaluated based on average response time compared to basic round robin and FCFS algorithms and the results are completely satisfactory (Mondal et al., 2012). Load Balancing Using Metaheuristic Algorithm This research proposes a load balancing scheduling method based on the memetic algorithm that considers the previous states of the system in addition to its current state. The memetic algorithm is a variant of the metaheuristic algorithm that combines heuristic local search with genetic algorithm to reduce the time to find the optimal solution. Genetic algorithms are created to search the global search space, but memetic algorithm locally searches the vicinity of each solution found by the genetic algorithm to find better solutions. Selection of the population generation operators for the genetic part of the memetic algorithm and its local search method will lead to different results. The results of the experiments reveal that the memtic algorithm executes load balancing much better than basic round robin and genetic evolution algorithms and optimizes the response time (Arab et al., 2012). Load Balancing of Nodes in Cloud Using Ant Colony Optimization The Ant Colony Optimization algorithm is used for optimization problems that need to find the shortest path such as intracity and inter-city routing, routing between posts of high voltage power distribution networks, and large-scale computer network routing such as cloud and grid networking. When walking, ants leave a trace of the chemical pheromones which evaporates over time but in the short term it will remain on the ground. When choosing between two paths in a probabilistic manner, ants choose the path with more pheromones. Paths that have the highest pheromone intensity have the shortest distance between the point and the best food source. The movements of these ants independently update a solution set. The Traversal of ants in this system is generally of two types: 1) Forward movements-in this type of movement the ants move for extracting the food, or searching for the food sources. 2) Backward movements-in this type of movements the ants after picking up food from the food sources traverse back to the nest for storing their food. In proposed algorithm, first a Regional load balancing node (RLBN) is chosen in a cloud computing service providers (CCSP), which will act as a head node. The ants in proposed algorithm will continuously originate from the Head node. These ants traverse the width and length of the network in such a way that they know about the location of underloaded or overloaded nodes in the network. These Ants along with their traversal will be updating a pheromone table, which will keep a tab on the resources utilization by each node. The authors also proposed the movement of ants in two ways similar to the classical ACO, which are as follows: 1)Forward movement-the ants continuously move in the forward direction in the cloud encountering overloaded node or under loaded node. 2) Backward movement-if an ant encounters an overloaded node in its movement when it has previously encountered an under loaded node then it will go backward to the under loaded node to check if the node is still under loaded or not and if it finds it still under loaded then it will redistribute the work to the under loaded node. The vice-versa is also feasible and possible. In this paper, an algorithm is proposed for load distribution of workloads among the nodes of a cloud using Ant Colony Optimization (ACO). The main advantage of this algorithm is that it determines node with overload and underloaded features with the aim of minimizing the response time (Nishant et al., 2012). Dynamic Load Balancing:Improve Efficiency in Cloud Computing The Proposed algorithm checks the CPU usage and the memory usage of the three VM and identifies the reliable VM which contains fewer loads and high memory can process the client request. The balancing section is responsible for determining where virtual machines will be instantiated. It does this by first gathering the utilization percentage of each active compute node. In this algorithm the load balancer node check the CPU utilization if the CPU is less than 80% utilization the request accepts otherwise VM load balancing Algorithm instantiates a new virtual machine on the compute node with the lowest utilization number. The algorithm is to identify the reliable VM and process the client request. The performance analysis of the load balancing gives the high throughput and increases the performance (Roy and Dutta, 2013). Weighted Active Monitoring Load Balancing The Weighted Active Monitoring Load Algorithm is implemented; modifying the Active Monitoring Load Balancer by assigning a weight to each VM as discussed in Weighted Round Robin Algorithm of cloud computing in order to achieve better response time and processing time. This algorithm allocate weighted count according to the computing power of the VM s in Datacenter. If one VM is capable of having twice as much load as the other, the powerful server gets a weight of 2 or if it can take four times load then server gets a weight of 4 and so on. The Active Monitoring Load Balancer (AMLB) maintains information about each VMs and the number of requests currently allocated to which VM. When a request to allocate a new VM arrives, it identifies the least loaded VM. If there are more than one,the first identified is selected. The WeightedActiveVmLoadBalancer maintains an index table of VMs, associated weighted count and the number of requests currently allocated to the VM. When a request to allocate a new VM from the DataCenterController arrives, it parses the table 10
and identifies the least loaded VM. After Identifying the least loaded VM s in different datacenters, it allocate requests to the most powerful VM according to the weight assigned. If there are more than one, the first identified is selected. The WeightedActiveVmLoadBalancer updates the allocation table by decreasing the allocation count for the VM by one. The purpose of algorithm is to find the expected Response Time of each Virtual Machine because virtual machine are of heterogeneous capacity with regard to its processing performance (James and Verma, 2012). System Model A large public cloud will include many nodes and the nodes in different geographical locations. A cloud partition is a subarea of the public cloud with divisions based on the geographic locations. Load balancing policy in the general cloud is as follows: when jobs arrive at the system, the balancer check the status information from every node and then choose appropriate partitions and nodes based on fuzzy inference to distribute the jobs. The whole process is shown in Figure 1. Start Jobs arrive at the Balancer Choose cloud partitions & nodes Based on Fuzzy Inference Assign jobs to particular nodes End Figure 1.Job assignment strategy Balancer The balancers check the status information from every node and then choose appropriate nodes to distribute the jobs. The relationship between the balancers and partition nodes is shown in Figure 2. INTERNET Figure 2. Relationships between the balancers and the nodes. Assigning jobs to the nodes: When jobs arrives at the public cloud, The balancer checks load information from every node to evaluate status. This evaluation of each node s load status is very important. 11
Evaluation nodes: The first task is to determine the appropriateness of the nodes. The appropriateness of nodes is related to various static parameters and dynamic parameters. The static parameters include the number of CPU s, the CPU processing speeds, the memory size, etc. Dynamic parameters are the memory utilization ratio, the CPU utilization ratio, the network bandwidth, etc. Nodes are evaluated in three steps. Step1.Define Parameter Set:It is assumed that there are two parameters for evaluating the appropriate node: Processor Utilization Time Delay Step2.determining the appropriateness of nodes in the system: To determine the appropriateness of nodes in the system, the appropriateness of both node evaluation parameters needs to be examined. Assume that the system on which a job is to be performed is comprised of K partitions (j=1,...k). Assume that the jth partition (j=1,...k) in job allocation system includes nj nodes. Then the appropriateness of the rth parameter from the ith node of the jth partition is indicated as αr ij. which is defined as follows. Frij is rij F rij n k j 1 i1 F rij [0,1] r=1,2 numeral value assigned to the rth parameter from the ith node of the jth partition. For instance, if the rth parameter is time delay, jth partition, where r=1 denotes each node's processor Utilization, r=2 denotes the time delay between order location and node in milliseconds. Frij will be the distance between job orderer location and the ith node from the Step3.Choose the appropriate Node: phase1.fuzzification Fuzzification in the appropriateness of parameters: The linguistic variable used to represent the node processor utilization, are divided into three levels: low, medium and high, respectively, and there are three levels to represent the node timedelay: close,adequate and far, respectively. The membership functions developed and their corresponding linguistic states are represented in tables 1,2 and diagrams1,2. Diag1.Fuzzy set for fuzzy variable α (Processor Utilization) Table1.Ranges for α (Processor Utilization) Variable Input Fuzzy logic Description Linguistic term Params low low [0 0 0.1 0.5] medium med [0.1 0.5 0.9] high high [0.5 0.9 1 1] Diag2.Fuzzy set for fuzzy variable α (Time Delay) Table2.Ranges for α (Time Delay) Variable Input Fuzzy logic Description Linguistic term Params close close [0 0 0.1 0.3] adequate adeq [0.1 0.5 0.9] far far [0.7 0.9 1 1] 12
Fuzzification in the appropriateness of nodes: The outcome to represent the output was divided into seven levels: Excellent, Good, rather Good, medium, Rather bad, bad, and very bad. The membership function developed and their corresponding linguistic states are represented in Table and diagrams 3. Diag3.Fuzzy set for fuzzy variable Output Table 3.Ranges for output Variable Output Fuzzy logic Description Linguistic term Params excellent exce [0 0 0.15 0.3] good good [0 0.175 0.35] Rather good rgood [0.25 0.35 0.45] medium med [0.3 0.5 0.7] Rather bad rbad [0.55 0.65 0.75] bad bad [0.65 0.825 1] Very bad vbad [0.7 0.85 1 1] Phase2.Fuzzy Rules: The fuzzy rule base currently includes rules like the following: if the α (Processor Utilization) is high and α (Time Delay) is close then the node is bad. Thus we used 3 2 = 9 rules for the fuzzy rule base. We used triangle membership functions to represent the fuzzy sets medium and adequate and trapezoid membership functions to represent low, high, close and far fuzzy sets. The fuzzy rule base is represented in Table 4. Instead of α (Processor Utilization) and α (Time Delay), processor utilization and DelayTime were used, respectively. Table 4. Fuzzy rule base Phase3.Aggregation of the rule outputs We have used the most commonly used fuzzy inference technique called Mamdani Method due to its simplicity. Phase4.Defuzzification In practice, the COG (Center of Gravity) is calculated and estimated over a sample of points on the aggregate output membership function, using the following formula: where, μ A(x) is the membership function of set A. 13
Assumptions: Time: millisecond Nodes : heterogeneous Response time in cloud computing was calculated as follows (Mohapatra et al., 2009). Response Time = Fint - Arrt + Tdelay(1) Where, Arrt is the arrival time of user request and Fint is the finish time of user request and the transmission delay can be determined by using the following formulas: TDelay = T + T(2)latencytransfer Where, TDelay is the transmission delay Tlatency is the network latency and T transfer is the time taken to transfer the size of data of a single request from source location to destination. It was assumed that connections bandwidth in storage centers and computations did not make a hindrance and were not important to be taken into account in the problem. Therefore, network latency (tlatency) was not taken into account. To calculate TDelay, the table of the distance between order location and nodes was only exploited. Conclusion A number of 40 independent orders, which were all entered at zero moment, were fed to the system. They were entered in 6 states, such as short-time order, long time order, and with short, long, and random distances from the destination node. They were distributed between 12 nodes, which were divided into 4 levels of 1x, 2x, 3x and 4x with respect to processing power and geographically spaced from one another. The proposed model was evaluated using fuzzy tools introduced by MATLAB. Results are shown in Table 5. Table 5. Comparison Response time of Fuzzy purpose algorithm vs. Round Robin load balancing algorithm. Mode Response Time (ms) No Proposed Execution Time Distance Model RR 1 Near 9.4 16.775 2 Short Random 35.2 70.55 3 Far 1147 1752 4 Near 23.42 40.825 5 Long Random 50.35 93.2 6 Far 1275 1776 Results show that response time decreased significantly using fuzzy reasoning. They also show that the distance between orderer and destination node is the parameter that has the highest effect on the performance of the proposed model. References Sethi Srinivas.,Sah Anupama.,Kumar Jena Suvendu, 2012 Efficient load Balancing in Cloud Computing using Fuzzy Logic, IOSR Journal of Engineering (IOSRJEN), 2250-3021 Volume 2, Issue 7. Das Pranesh, Mohan Khilar Pabitra, : LBVFT 2013 A Load Balancing Technique for Virtualization and Fault Tolerance in Cloud Computing, International Journal of Computer Applications (0975 8887),Volume 69 No.28. Prasad Padhy Ram,Goutam Prasad Rao P, 2011 LOAD BALANCING IN CLOUD COMPUTING SYSTEMS, Bachelor of Technology in Computer Science, department of Computer Science and Engineering, National Institute of Technology. Rourkela Orissa, India. Karimi Abbas.,Zarafshan Faraneh., Jantan Adznan b, 2009 A New Fuzzy Approach for Dynamic Load Balancing Algorithm,International Journal of Computer Science and Information Security(IJCSIS), Vol. 6, No. 1. Jasmin James, Bhupendra Verma,2012 EFFICIENT VM LOAD BALANCING ALGORITHM FOR A CLOUD COMPUTING ENVIRONMENT, International Journal on Computer Science and Engineering (IJCSE), ISSN: 0975-3397 Vol. 4 No. 09 Sep 2012. Hu Jinhua, [other], 2010 A Scheduling Strategy on Load Balancing of Virtual Machine Resources in Cloud Computing Environment, 3rd IEEE International Symposium on Parallel Architectures, Algorithms and Programming, DOI 10.1109/PAAP.2010.65. Mondal Brototi.,Dasgupta Kousik., Dutta Paramartha, 2012 Load Balancing in Cloud Computing using Stochastic Hill Climbing-A Soft Computing Approach, Elsevier Ltd. doi: 10.1016/j. protcy.2012.05.128. Arab Nasrin., Abotalebi Majid., Rafati Mostafa, 2012 Load Balancing in Cloud Computing Enviroment Using Metaheuristic Algorithms, 2nd Lahijan s National Conference on Software Engineering. 14
Nishant Kumar., other].2012 ] Load Balancing of Nodes in Cloud Using Ant Colony Optimization. 14th IEEE International Conference on Modelling and Simulation. DOI 10.1109/UKSim.2012.11. Roy Argha, Dutta Diptam, 2013 Dynamic Load Balancing:Improve Efficiency in Cloud Computing, International Journal of Emerging Research in Management &Technology, ISSN: 2278-9359 (Volume-2, Issue-4). Mohapatra Subasish,Mohanty Subhadarshini, Smruti Rekha K,2009 Analysis of Different Variants in Round Robin Algorithms for Load Balancing in Cloud Computing, International Journal of Computer Applications (0975 8887), Volume 69 No.22. 15