This chapter discusses how the problem stated in the previous chapter can be solved in Virtualized Cloud Environment.
4.1 Architecture: Temperature-Aware Virtual Machine Scheduling in Green Clouds
Our proposed technique consists of two levels. At top, there is Load Balancer whose core functions are to entertain new VM requests and control the migration of VMs from one node to other node. To do it functions efficiently, it will keep track of each node in Virtualized Cloud System and maintain following information in tabular form say Global List:-
Current Temperature. Optimal Temperature. Critical Temperature. CPU Utilization. Free Memory (RAM).
Load Balancer will sort above information in increasing order of current temperature of nodes. Bottom level .i.e. second level consists of physical nodes on which VMs run. Every node will be connected to Load Balancer. Apart from Load Balancer‟s Global List every node will maintain a Local List which contain following information regarding VM in it:-
VM Name.
Type of Operating System CPU Utilization
Number of Processors required
42
Fig.4.1. System Architecture
Updating Global and Local Lists
Global List maintained by Load Balancer is to be updated after a fixed interval of time. This fixed interval would be set by the cloud administrator. Duration of this interval would depend upon the complexity of system and services provided by system. Beside this fixed interval Load Balancer will update Global List on occurrence of any of following events:-
Request for new VM arrives. Migrations of VMs.
Shutdown of VMs Powers on of VMs.
Local List which is maintained by every node is updated under the occurrence any of following events:-
Migrations of VMs. Power on of VMs. Shutdown of VMs.
Waiting Queue
It is the queue, through which request for new virtual machines is entertained. Every new request for virtual machine is added at end of Waiting Queue. Load Balancer will service VM requests in same order as appeared in Waiting Queue. If VM request gets node, then Load
43
Balancer will remove that VM request from Waiting Queue otherwise move further in Waiting Queue and service the queue till end.
Critical Queue
It is just like simple queue which contain the information of those nodes which have Current Temperature equals to its Critical Temperature or more than its Critical Temperature. Critical Queue is used in migration of VMs from one physical node to other in order to optimizing the temperature of Virtualized Cloud System. Information in Critical Queue is sorted in decreasing order of Current Temperature of nodes.
Critical Temperature
It is core temperature which is set by original equipment manufacturer (OEM), running the core on Critical Temperature or beyond requires significant amount of cooling to perform computation optimally. Moreover, running machine for significant amount of time beyond Critical Temperature may produce irreversible changes in hardware. And degrades hardware‟s computation efficiency and also decreases the life of core. This Critical Temperature is different for different core e.g. corei3/i5/i7 has 65°C, 72°C for Dual core 2080 [8].
Optimal Temperature
It is core temperature set by OEM, core‟s performance does not degrade or no instability occurs while running core on Optimal Temperature or below Optimal Temperature. Moreover, running core on Optimal Temperature or below Optimal Temperature doesn‟t require any extensive cooling [9]. So running core on this temperature or below this temperature, we can save cost of cooling and increase life of hardware.
4.2 Working of Proposed Scheduling Technique
Our Temperature Aware Scheduling Technique is divided in two parts:- I. Migration of VMs.
44
4.2.1 Migration of VMs
Migration of virtual machines (VMs) from one node to other node is one of the core functions performed by Load Balancer in order to optimize the temperature of nodes in Virtualized Cloud Environment. Load Balancer uses Global List and Critical Queue to perform migration of virtual machines (VMs). Global List helps Load Balancer to identify node(s) which are running above the Critical Temperature or running on Critical Temperature. Once the nodes running on Critical Temperature or above are identified in entire Virtualized Cloud System, Load Balancer puts information of those nodes in Critical Queue in decreasing order of Current Temperature and in same order (as it appears in Critical Queue) nodes are optimized by Load Balancer. Idea behind putting node in decreasing order of Current Temperature is that node with greater temperature in Critical Queue have greater risk of hardware or software failure. So the node with greatest temperature in Critical Queue must optimize to Optimal Temperature first, by Load Balancer.
Load Balancer will check Global List after every update and compare Current Temperature with Critical Temperature of each node. If it finds any node, say victim, running on or above its Critical Temperature, then it will put that node in Critical Queue. After identifying all the victims, Load Balancer will sort Critical Queue in decreasing order of Current Temperature of nodes (victims). Once Critical Queue has been prepared, then Load Balancer takes first victim in Critical Queue and searches most appropriate node (target) for victim‟s first VM (as appears in victim‟s local list) which can accommodate it. Once the target node is identified, then Load Balancer migrates that VM on this node (target). After the migration of VM, Global List and all Local Lists will be updated. Load Balancer will migrate VMs of current node (victim) till current temperature of node (victim) decreases to Optimal Temperature. Load Balancer will repeat this process of migration of VMs for every node in Critical Queue.
4.2.2 Allocation of Nodes to VM Request
Every request for virtual machine (VM) is entertained by Load Balancer through Waiting Queue. Load Balancer uses Global List for the allocation of virtual machine (VM) request on nodes. For every request of virtual machine (VM) in Waiting Queue, Load Balancer will scan Global List from the top to find out node using Global List which has been sorted according to
45
increasing order of Current Temperature of nodes. The reason for arranging the node in increasing order of Current Temperature in Global List is that, the node with less Current Temperature should be used first as compared to nodes with higher current temperature. Thus, we can avoid over heating of nodes, during allocation time of virtual machine (VM) and thus save cost of migrations due to overheating of nodes. If a node for a VM request is found then allocate VM on that node, remove that request from Waiting Queue and update the Global and Local Lists. If requirement of virtual machine request can not satisfied at current moment of time, then that request has to wait and Load Balancer will move further in Waiting Queue to service other requests.
To assure quality of service Load Balancer will service requests in Waiting Queue after every arrival of new virtual machine request or a fixed interval of time say T or whichever is earlier. This time interval is set by the Cloud administrator and it would depend upon nature of arrival rate of new VM request and complexity of Waiting Queue.
4.3 Algorithm for VM Migration
Step1.FOREACH node in Global List
Step2. IF (Current Temperature >= Critical Temperature) Step3. Put node in Critical Queue
Step4. END IF
Step5. END FOREACH
Step6. Sort Critical Queue in decreasing order of Current Temperature of nodes Step7. FOREACH node in Critical Queue
Step8. WHILE (Current Temperature > =Optimal Temperature)
Step9. Find node in Global List which suit current VM in local list in Critical Queue Step10. Migrate VM
Step11. Update Global List and Local Lists Step12. END WHILE
46
4.4 Flow Chart for VM Migration
Yes No No Yes Start
Add victims to Critical Queue
Sort Critical Queue
Is Critical Queue empty
Identify target
Migrate VM on target
Remove node from Critical Queue
Update Global and Local Lists
End
Update Global and Local Lists
Check Current Temp>=
47
4.5 Algorithm for Allocation of Node to VM Request
Step1. IF (new VM request arrives == true OR waiting time ==T) Step2. Put new request in Waiting Queue
Step3. FOREACH VM request in Waiting Queue Step4. FOREACH node in Global List
Step5. Find most appropriate node Step6. IF (node found == true) Step7. Allocate node
Step8. Update Global and Local Lists Step9. Else wait in Waiting Queue Step10. END IF
Step11. END FOREACH Step12. END FOREACH Step13. END IF
48
4.6 Flow Chart for Allocation of Node to VM Request
No No Yes Yes Yes No No Yes Start New VM request arrives Waiting time==T
Add VM request to Waiting Queue
Find node for VM request
Node found
Wait VM request in Waiting Queue
Allocate node to VM request Update Global and Local Lists
End
Waiting Queue scanned
49
In Chapter 5 podium will be set up to implement proposed solution of problem in real time scenario along with details of tools which are used for the implementation. Moreover, chapter 5 provides experimental result to demonstrate the feasibility of proposed solution of the problem.
50