A cloud environment is the popular shareable computing environments where large number of clients/users are connected to the common cloud computing environment to access the resources and the services. The presented work is focused on the concept of effective resource allocation, de-allocation and reallocation in a cloud environment. To present the concept, we have taken a cloud environment with multiple clouds along with multiple virtual machines. All the machines are homogenous. These all clouds are assigned by a specific priority. Now as the user request arrive, it performs the request to the priority cloud under its requirements in terms of memory & processor capabilities. When the client stops the task then the service allocated to the client is released & same can be reallocated to another client in the waiting. We can also some migration work so that if a cloud is under utilize then its services are migrated to nearest cloud having sufficient utilization. Hence the work provides efficient allocation, de-allocation and reallocation of cloud services with minimum need for migration of service from one cloud to another.
Introduction
I. INTRODUCTION
Cloud computing [1] is a technology that combines the internet and central remote servers to provide & maintain data and applications resources. It provides facility of centralize memory, storage, applications and processing for powerful computing. Through its centralized computing facilities, the cloud computing allows users and organizations to use applications and other services without local storage and local location. Cloud computing is a comprehensive solution that delivers Information Technology as a service.
Cloud environment helps us to create, configure and utilize application remotely. A user only needs to connect the Internet to avail the facility of cloud computing at anytime and t any location. The cloud computing services can be available either through private or public networks. All types of popular services such as mailing, chatting, conferencing are now available through cloud computing.
Cloud computing comprises of 2 components ?the front end and the back end. The front end includes client’s devices and applications that are required to access cloud. The back end refers to the cloud itself. The whole cloud is administered by a central server that is used to monitor client’s demands.
The presented work is focused on the concept of effective resource allocation, de-allocation and reallocation in a cloud environment. We can also some migration work so that if a cloud is under utilize then its services are migrated to nearest cloud having sufficient utilization. Hence the work provides efficient allocation, de-allocation and reallocation of cloud services with minimum need for migration of service from one cloud to another.
II. RESOURCE SCHEDULING & ALLOCATION
Two main actors involve in cloud computing are cloud providers and the cloud users. Clouds providers i.e., cloud itself establish the cloud data centers and various resources to be used by cloud users. Cloud users i.e., end users can actually use the cloud resources & pay according to their usage. The basic communication (interaction) between cloud providers and cloud users can be easily understood using Figure 1 below [3].
The interaction steps are listed below:
The cloud user sends a request for any specific resources to the cloud provider.
On receiving the request the cloud provider checks for the availability of specific resource.
If resource exists then assign the resource to the requesting user.
The user now utilizes the services of assigned resources to perform any specific task or application.
When no more service is required then the user releases the resource, pay for the resource & closes the connection.
The provider now schedule and allocate the resource to other requesting clients. [5, 6].
One interesting aspect of the cloud computing environment is that these actors or say players are generally from different organization and regions with their own need & interests. The main goal of cloud providers is to generate as much revenue as possible with minimum investment on cloud infrastructure. To achieve this objective the cloud providers, host multiple virtual machines to be used by multiple clients to attain maximum profit.
Energy efficient Cloud resources allocation consists in identifying and assigning resources to each incoming user request in such a way, that the user requirements are met, that the least possible number of resources is used and that data center energy efficiency is optimized. Figure 2 shows the resource allocation and scheduling scheme for cloud computing.
A. Resource Allocation
Resource allocation [8, 9] involves deciding what, how many, where, and when to make the resource available to the user. Typically, users decide the type and amount of the resource containers to request then providers place the requested resource containers onto nodes in their datacenters. To run the application efficiently, the type of resource container need to be well matched to the workload characteristics, and the amount should be sufficient to meet the constraints i.e., job must be completed before its deadline. In an elastic environment like the Cloud where users can request or return resources dynamically, it is also important to consider when to make such adjustments.
B. Job Scheduling
Once the resource containers are given to the user, the application makes a scheduling decision. In many cases, the application consists of multiple jobs to which the allocated resources are given. The job scheduler is responsible for assigning preferred resources to a particular job so that the overall computing resources are utilized effectively. The application also has to make sure each job is given adequate amount of resources, or its fair share. Such a scheduling decision becomes more complex if the environment is heterogeneous.
III. LITERATURE REVIEW
Several works related to our work, which presents the efficient resource allocation in cloud computing as describe below:
A. Meera and S. Swamynathan [10] proposed an approach for allocating resources based on the analyzed data that is being analyzed by a monitoring agent. The monitoring agent will collect the resources usage information that is currently being used by a virtual machine and will display it in a dashboard. Statistical report that is being displayed on a dashboard provides information for cloud administrator for better optimization of resources.
K. C. Gouda, Radhika T. V., and Akshatha M. [11] proposed a priority based resource allocation approach with minimum wastage and a maximum profit. Priority is being considered in terms of different parameters like time, cost, numbers of processor requests etc. priority can be used for better resource allocation in cloud environment.
Diptangshu Pandit, Matangini Chattopadhyay, and Nabendu Chaki [12] proposed an efficient resource allocation algorithm with the use of simulated annealing. In this approach authors had introduced the concept of bin, soft computing and simulated annealing. In this approach, problem of resource allocation is being solved with the help of bin packing problem. In this approach temperature is being considered as a control parameter but no formal procedure of selecting the temperature has been described in this approach.
Nguyen Trung Hieu, Mario Di Francesco, Antti YlaJaaski [13] wrote a paper “A Virtual Machine Placement Algorithm for Balanced Resource Utilization in Cloud Data Centers”. In this article, they proposed an algorithm, called Max-BRU, that maximizes the resource utilization and balances the usage of resources across multiple dimensions. Their algorithm is based on multiple resource-constraint metrics that help to find the most suitable server for deploying VMs in large cloud data centers. The proposed Max-BRU algorithm is evaluated by simulations based on synthetic datasets. Experimental results show two major improvements over the existing approaches for VM placement. First, Max-BRU increases the resource utilization by minimizing the amount of physical servers used. Second, Max-BRU effectively balances the utilization of multiple types of resources.
Sumita Bose, Jitender Kumar [14] “An Energy Aware Cloud Load Balancing Technique using Dynamic Placement of Virtualized Resources” in their papers provide provision of migration of resources from one cloud to another for efficient load balancing in cloud environment. This migration concept provides extra overhead for cloud processing.
Pratik P. Pandya, Hitesh A. Bheda [15] “Dynamic Resource Allocation Techniques in Cloud Computing” in their papers provide provision of dynamic allocation of resources for the client. They also provide provision of migration from one cloud to another for efficient load balancing in cloud environment.
Conclusion
A cloud environment is one of the most shareable environments where multiple clients are connected to the common environment to access the services and the products. A cloud environment can be public or the private cloud. In such environment, all the resources are available on an integrated environment where multiple users can perform the request at same time. In such case, some approach is required to perform the effective scheduling and the resource allocation. This paper provided review of different resource allocation strategies in cloud environment.