A Review: Resource Allocation Problem in Cloud Environment

— Cloud computing is the process of providing and managing computing resources such as hardware and software over the Internet as pay-as-you-go. Cloud Service Provider and User are two main players in cloud. On one hand, cloud provider carries number of computing resources in their large datacenters and rent resources out to users on pay-as-you-go basis. On the other hand, there are large numbers of users who have applications with changing loads and request required resources from providers to run their applications slickly. Typically, the goal of providers is to generate as much revenue as possible with minimum investment and proper resource utilization. On the other hand, users want their jobs done at minimal expense. In the Cloud computing resources need to be allocated and scheduled in such a way that providers achieve their objectives and users meet their applications requirements with minimum expenditure. We call this as a cloud resource allocation problem. Resource allocation is traditionally looked upon as an optimization problem hence resource allocation is NP-Hard; limited resources are available and allocate these resources to competitive events/activities such a way that both parties will achieve their goals. This extensive review aims to elaborate and analyze the numerous solved/unresolved issues in cloud resource allocation.


Client (End User):
Clients are the devices that the end user interact with to manage their information on the client. 2. Provider: Cloud Service provider is an owner of cloud infrastructure who provides services to requester via internet on pay-as-you-basis. 3. Datacenter: A datacenter is a set of physical resources such as CPU, memory, storage, and so on. 4. Virtual Machine: Simulation of a Physical Machine in the form of Software is known as a virtual machine. 5. Physical Machine: Physical machine is a set of hardware like CPU, RAM, I/O which are request for applications. 6. Virtualization: Virtualization is basically process of making a virtual image of cloud resources such as server, desktop, operating system, storage devices or network [4]. This paper shapes Resource Allocation problem in cloud environment, problem formulation, objectives, constraints, solution representation and different techniques to be used to solve resource allocation in cloud.
The rest of the paper organized in as follows: Section II describes Resource allocation problem, solution representation and formulation. Section III review of objectives and constraints, and Section IV gives details about techniques used to solve resource allocation problem and Section V outline the conclusion of our studies.

II. RESOURCE ALLOCATION IN CLOUD
Resource Allocation (RA) in a cloud computing is the process of assigning available resources to the needed cloud user application over the internet [5]. A large number of Physical Machines (PM) is deployed in a Datacenters. A Cloud Service Provider can have large number of geographically distributed datacenters. Virtual Machine (VM) requests should be first distributed optimally over datacenters. The requests in each datacenter are then distributed over physical machines if required resources are available [6]. Resource allocation problem is formulated as bin packing Problem. VM allocation in cloud is NP-Hard Problem because at the end we able to find optimal allocation of VMs on PMs. A. Types of Resource Allocation [6]  Static Resource Allocation: Static placement of VMs is done either during system startup or in offline mode. This is the initial placement of VMs in the cloud computing environment.  Dynamic Resource Allocation: If an existing mapping of VMs onto PMs is present, we go for dynamic placement of virtual machines. The main goal of dynamic VM placement is to achieve optimum solutions from the already present mapping of VMs at minimal cost.

Parameter
Cloud User Provider When required resources are allocated to user by service provider some criteria should be avoided by service provider. These considerations are as follows: [5] 1.  x is decision vector belongs to X(decision space) and y is objective vector of objective space Y.

III. OBJECTIVES AND CONSTRAINTS
To solve resource allocation problem in cloud computing various studies are successfully find solutions for resource assignments and some studies are going to finds various solutions, at the time of studies various objectives are achieved by considering some conditions and satisfying that various constraints/conditions. Table  II describes various studies on various objectives to achieve optimal resource allocation in cloud computing. 11. Satisfy Customer Demand [30] 1. Resource Utilization: In cloud computing hardware and software resources are provided by provider to user on pay-as-you-go basis. Effective utilization and management of these resources by minimizing and maximizing some parameters is called as resource utilization. 2. Profit Maximization: Profit maximization is objective of service provider by allocating requested resources to needed cloud user and gaining profit. 3. Execution time: Execution time is defined as total time required for VM on each PM. 4. Cost Minimization: It is minimization of cost of application running on cloud. Cost is in the form of data transfer cost or computational cost. 5. Load Balancing: Load balancing is the process of distributing workloads and computing resources such as computers, a computer cluster, network links, central processing units, bandwidth, RAM, or disk drives in a cloud computing environment. Load balancing aims to optimize resource use, maximize throughput, minimize response time, and avoid overload of any single resource [32]. 6. Energy Consumption: Servers consume a larger fraction of energy in cloud environments and their energy consumption varies with utilization. This consumption also vary with the type of computation going on in the server e.g., data retrieval and data processing [28]. 7. Load Migration: In Cloud, migration is the process of moving data and applications from on cloud to another cloud because of some constraints, e.g. Load on server. [33]. 8. Number of PMs used: Allocate VMs on PMs such that numbers of physical machines are used should be minimum by considering load, SLA, etc. it used for optimal resource allocation. 9. Response Time: Response time is the time needed to complete the enquiry about resources and start of response [34]. 10. SLA: A service-level agreement (SLA) is a contract between a service provider and cloud customers that account which type of service provided by provider to user according application need [35].Services arequality, availability, responsibilities that agreed between the service provider and the service user [36]. 11. Satisfy Customer Demand: Optimal allocation of requested resources to the user application by considering some aspects like SLA, Quality of services, and profit then only customer will satisfy. While allocating the resources by considering some objectives there should be some conditions to be satisfied by both parties are listed below:  Capacity/Overloading: The sum of resource demands of all VMs on that PM does not exceed the total capacity of the PM [8].  Placement Guarantee Constraints: Requested VMs should be placed on PM otherwise which results on SLA violation.  Number of server used: If PM/server not in use then switch off that server. It is binary value 1 if used, 0 otherwise.

IV. RESOURCE ALLOCATION TECHNIQUES
To solve resource allocation problem in cloud number of techniques are used evolutionary algorithms, Optimization techniques, Heuristic algorithms, Hybrid algorithms etc. That various techniques are listed below:: Graph Theory [26] V. CONCLUSION This work explored the resource allocation problem in cloud. From this review it is clear that so many researches are going on and completed on cloud computing. We have tried to focus on problem formulation, number of objectives and constraints as well as techniques used to solve such problem. From this analysis it has been observed that there is no one fixed algorithm to solve problem there are so many algorithms try to satisfying the conditions and solve it. Resource allocation in cloud is optimization problem hence it is NP-hard Problem.