nergy efficiency has become a major concern in large data centers. In the United States, data centers consumed about 1.5 percent of the total generated electricity in 2006, an amount that is equivalent to the annual energy consumption of 5.8 million households [1]. In U.S. dollars, this translates into power costs of 4.5 billion per year. Data center owners, as a result, are eager now more than ever to save energy in any way they can in order to reduce their operating costs.There are also increasing environmental concerns that also call for the reduction of the amounts of energy consumed by these large data centers, especially after reporting that information and communication technology (ICT) itself contributes about 2 percent to global carbon emissions [2]. These energy costs and carbon footprints are expected to increase rapidly in the future as data centers are anticipated to grow significantly both in size and in numbers due to the increasing popularity of their offered services. All of these factors have alerted industry, academia, and government agencies to the importance of developing and implementing effective solutions and techniques that can reduce energy consumption in data centers.Cloud data centers are examples of such large data centers whose offered services are gaining in popularity, especially with the recently witnessed increasing reliance of mobile devices on cloud services [3,4]. Thus, our focus in this article is on energy consumption efficiency in cloud data centers. We start the article by introducing the cloud paradigm. We then explain the new challenges and opportunities that arise when trying to save energy in cloud centers. We then describe the most popular techniques and solutions that can be adopted by cloud data centers to save energy. Finally, we provide some conclusions and directions for future work.
The Cloud ParadigmIn the cloud paradigm, a cloud provider company owns a cloud center that consists of a large number of servers, also called physical machines (PMs). These PMs are grouped into multiple management units called clusters, where each cluster manages and controls a large number of PMs, typically in the order of thousands. A cluster can be homogeneous, meaning that all of its managed PMs are identical, or it can be heterogeneous, meaning that it manages PMs with different resource capacities and capabilities.Cloud providers offer these computing resources as a service for their clients and charge them based on their usage in a pay-as-you-go fashion. Cloud clients submit requests to the cloud provider, specifying the amount of resources they need to perform certain tasks. Upon receiving a client request, the cloud provider scheduler creates a virtual machine (VM), allocates the requested resources to it, chooses one of the clusters to host the VM, and assigns the VM to one of the PMs within that cluster. Client requests are thus also referred to as VM requests. After this allocation process takes place, the client can then use its allocated resources to perform its tasks. ...