Article Preview
TopIntroduction
Cloud computing, providing software, platforms and infrastructures as services, is popular as a rising application paradigm (Armbrust et al., 2009). Virtualization technology (Smith & Nair, 2005), as an essential impetus of cloud computing, allows multiple applications to run on the Virtual Machines (VMs) instead of the physical ones (PMs) by virtualizing the resources (e.g. CPU, memory, etc.), which effectively improves the resource utilizations, scalabilities, flexibilities, availabilities, and isolation of applications. Due to these advantages, the large-scale distributed applications are preferred to be hosted on the cloud platforms.
In a typical cloud computing environment, VM is the basic unit of placement and management, and the platform provider takes the responsibility of satisfying the resource demands of the applications. The provider determines where to place VMs and how to allocate the resources through the operation, including static VM placement, VM adjustment (Almeida et al., 2006; Padala, 2007), live migration (Wood et al., 2007) and consolidation (Hermenier et al., 2009), to achieve the flexible resource allocation and the efficient resource utilization. In the static placement, a set of VMs and their resource requirements, as well as a set of PMs and their individual capacity are given, and the objective is to minimize the required PMs when placing the VMs onto them. The VM adjustment changes the resource allocations of VMs dynamically. The live migration can transfer VMs from the overloaded PMs to the ones having sufficient resources in short time. The consolidation aims to reduce power consumption and maximize the resource utilization, by moving several VMs on multiple PMs to a single one. Except for the static placement, all the operations can be performed at runtime.
VM placement and reconfiguration are important because they can achieve some objectives, including making the sufficient resource utilization, maintaining the Qualities of Services (QoS), mitigating the hotspots, and so on. However, they are also complicated because of: 1) the large scale of the cloud computing, 2) many decisive factors, including the multiple resource capacities, Service Level Agreement (SLA) violation penalties, power consumptions, hotspot dissipation and other management costs, and 3) the objectives of the different stakeholders.
VM placement and reconfiguration have attracted considerable interests, and there is some work devoted to addressing the problems with various objectives, including maximizing the resource utilization, reducing power consumption, and minimizing VM migration costs. Initially, some work just considered the resource utilizations and the workload, using ordering algorithm (Khanna et al., 2006), constraint programming (Hermenier et al., 2009) and genetic algorithm (Xu& Fortes, 2010). Recently, some factors relating to providers’ costs, including power consumption (Jung et al., 2010), thermal dissipation, reconfiguration costs (Tarighi et al., 2010) and penalty of SLA violation (Bobroff et al., 2007), were considered. Ramos & Bianchini (2008) and Tang (2008) proposed the temperature-aware workload placements method respectively. Xu & Fortes (2011) simultaneously considered workload, power consumption and thermal management when performing runtime reconfiguration.
However, we find that there are still some other issues should be considered: