Cloud Computing Cloud computing is a rapidly growing technology that allows users to share computer resources according to their need. It is expected that cloud computing will generate close to 13.8 million jobs world wide. In Egypt is the number of cloud computing jobs is expected to increase to 113 thousand in 2015. This number is expected to further increase in the coming years as information industry giants like Microsoft, IBM and EMC2 expand their Egyptian cloud division that provide international support services. In cloud computing a typical data center consists from a number of physical computer servers. The cloud provides software that allows a user to build an emulation of real machine on a physical machine. This emulation is called a virtual machine. Virtual machines are assigned processing power, memory and storage according to the requirements specified by the user. The virtual machine will only use the hardware resources during periods of active processing. When the virtual machine is not active or has nothing to process the same hardware resources can be used by another virtual machine. Because of this several virtual machines can share the same physical machine hence decreasing the cost of establishing a virtual machine. However as more VMs use the same physical machine the load on the machine increases and the some processing tasks will have to wait until other tasks finish. This decreases the time need to finish a given computing task and increases the response time of a given machine hence decreasing the quality of service received by the user. With the activation and deactivation of virtual machines on a given physical server, the virtual machines on each server in the data center will be different. Situation will arise were certain server will be heavily loaded will other will have a very small number of virtual machines. This variation of a server load in given data center poses three main problems that require further research. 1. Load balancing. 2. Power saving. 3. Scheduling. The next sections provide an overview of the gradution projects offered in this domain. Data Centers Data Centers Network Network
1. Simulation of load balancing in a cloud computing environment using OMNET The main objective of load balancing in cloud computing environment ensure that the amount of processing memory usage and storage usage is nearly equal in all servers with in a given data center. In other words the objective is to minimize the maximum load on any given server. The load imbalance occurs because of the constant load variation on each server which stems from the activation and deactivation of VM as well as the arrival and termination of VMs. At a given time some servers will have more active VMs than the others hence causing their performance to degrade. The solution to this problem is to move (migrate) VMs from the heavily loaded machines to the lightly loaded machine. This migration increases the network load and for a short time will present increased processing on both the old and new machine. Load balancing approaches are focused on the following 1- Selecting which machine to migrate the load to in such a way to avoid the situation where all highly loaded machines would migrate to the same low loaded machine. 2- Defining the condition and threshold at which the server will decide to migrate its machine. 3- Evaluating the performance gain associated with balancing. To be able to evaluate these load balancing approaches and to be able to compare between them a simulation tool is requires to study the effect of different parameters on the performance of load balancing. OMNET++ is widely used open source network simulation software that provides libraries and tools to enable complex and detailed simulation of various networking platforms and protocols. Icancloud is set of could simulation libraries that is build for OMNET++. The main objective of icancloud is to predict the trade-offs between cost and performance of a given set of applications executed in a specific hardware, and then provide to users useful information about such costs. The project objective is to use Icancloud and OMNET++ to build a simulation plate form that can be used to evaluate load balancing approaches this would include Building a simulation of data centers. Building a model for the migration process. Building an example load balancing approach. Modeling virtual machine activation and deactivation. Data networking knowledge (Communication networks) Simulation (Modeling and Simulation) Programing using C ++ ( Java knowledge is a very good as a start)
2. Simulation of Power Saving in a Cloud computing environment using OMNET In recent years the cloud computing has become an attractive solution for providing cost effective computing services. As the use of clouds is expanding, the size and scale of data is becoming larger and hence their energy consumption is increasing. To reduce cost and meet the emerging green computing requirements cloud providers are interested in reducing their power consumption. This reduction can either be done by using energy efficient servers or by decreasing the number of active server. The number of active servers can be decreased by switching off servers that have a small number of virtual machines and migrating these virtual machines to other servers. Switching off servers reduces the energy consumption of data centers however doing so faces the following challenges. Migrating virtual machines to other servers increases the load on theses servers. As the load increases the, the performance of the server decreases. This decreases the QoS service offered to the cloud users and may present a violation of the service level agreements between the user the cloud provider. The powers saving approaches have to decide the load below which the server can be switched off. Setting this load to a high value will save more energy but will decrease the performance. While setting it too low will decrease load but may have minimum effect on power saving. The dynamic nature of the load my present scenarios were it is needed to switch on servers to meet the increase on load. The change in the load may cause excessive turn off and on of servers which will increase the power consumption and may decrease the network performance. The power saving approach has to be able to predict the power consumption of each virtual machine and may also need to predict the expected increase or decrease in load. Currently there is an ongoing research towards finding good power saving approaches. To be able to evaluate these approaches there is need for a simulation tool that enables comparing the different approach and studding the effect of different could parameters on the performance of these approaches. OMNET++ is widely used open source network simulation software that provides libraries and tools to enable complex and detailed simulation of various networking platforms and protocols. Icancloud is set of could simulation libraries that is build for OMNET++. The main objective of icancloud is to predict the trade-offs between cost and performance of a given set of applications executed in a specific hardware, and then provide to users useful information about such costs. The project objective is to use Icancloud and OMNET++ to build a simulation plate form that can be used to evaluate power saving approaches this would include Building a simulation of data centers. Building a model for the migration process. Building a model for power consumption of virtual machines. Building an example power saving approach. Modeling virtual machine activation and deactivation. Data networking knowledge (Communication networks) Simulation (Modeling and Simulation) Programing using C ++ ( Java knowledge is a very good as a start)
3. Simulation of scheduling techniques in Cloud computing environment using OMNET In data center environment an computing jobs arrive to the data center randomly according to certain pattern. The jobs have different Quality of Service requirement. To satisfying theses quality of service requirements the service provider has to provide each virtual machine with resources (memory, processing and storage) that would grantee the satisfaction of these QoS requirements. To enhance utilization the service provider needs to use scheduling techniques to maximize the sharing of these resources. These scheduling techniques range from simple approaches such as FIFO queues, and priority queues to more sophisticated scheduling system such as earliest due time and weighted fair queue. Currently there is an ongoing research towards finding good schduling approaches. To be able to evaluate these approaches there is need for a simulation tool that enables comparing the different approach and studding the effect of different parameters on the performance of these approaches. OMNET++ is widely used open source network simulation software that provides libraries and tools to enable complex and detailed simulation of various networking platforms and protocols. Icancloud is set of could simulation libraries that is built for OMNET++. The main objective of icancloud is to predict the trade-offs between cost and performance of a given set of applications executed in a specific hardware, and then provide to users useful information about such costs. The project objective is to use Icancloud and OMNET++ to build a simulation plate form that can be used to evaluate power saving approaches this would include Building a simulation of server in a data center. Building a model for the basic scheduling techniques. Build a model for the variation of computing requirements. Data networking knowledge (Communication networks) Simulation (Modeling and Simulation) Programing using C ++ ( Java knowledge is a very good as a start)
4. Building a GUC Mini Cloud test bed One of the leading companies in the cloud computing domain is EMC. The GUC has joint cooperation with EMC2 to provide quality research and education in the field of cloud computing. This cooperation is presented in the Cloud computing lab that is located in the C3.328. The lab contains four servers a storage unit and a connecting network. Currently the lab supports the cloud computing courses that is offered by GUC. However the lab can be used to more sophisticated experiments that would test approaches such as load balancing, migration and power saving. It could also be used to gain better understating of the nature of computing load offered to the cloud. To be able to do so there is a need to build a mini data center in the lab and setup example models that can be used for the evaluation of research algorithms. The objective of this project is use the equipment in the lab to build a two test beds for cloud computing. The first test bed would be based on VMware and the other would be based on open source virtualization tools. Both models should support providing virtual machines for students to do their projects on and to provide an environment for where big data tools can run on multiple machines. An added value would be to build a service provisioning plate form where students can request virtual machines automatically. Data networking knowledge (Communication networks + internet) The ability to work with hardware (setup routers, install applications,..) Programing knowledge is an added value.
5. Performance measurement in the GUC Cloud To provide a good Quality of service in the cloud it is required to properly allocate the network resources such as processing power, memory and storage to virtual machine. Finding the proper resource allocation approach requires two things 1- Measuring the cloud performance versus a give allocation of resources 2- Characterizing the nature of the variation of the load. These measurements can be used to build models that represent the arrival of computing tasks the load they present on the cloud and their activity variation. The objective of this project to provide a data collection scripts and approaches that would collect measurement for a simplified version of the GUC cloud. Once the data is collected the project aims to search for the statistical model that best describes these collected data. Programing knowledge Matlab. Random processes knowledge ( Random and performance courses)