high-level applications. A virtual machine (VM) usually refers to a vir- tualized server. Virtualization is the key enabler of cloud computing. It provides the capability of sharing the server clusters as a pool of computing resources and the capability of dynamically mapping vir- tual resource to customers and applications. In this section, we review a few existing host virtualization techniques. 2.2.1 Overview As early as 1960s, the concept of virtual machine has been introduced by IBM for providing concurrent access to the server. Each VM provides an abstract interface and an illusion of accessing the physical 2.2 Host Virtualization server directly and mutually exclusive to other users. This concept nicely enables time sharing and multiplexing on expensive physical resources and thus reduces the operational cost. 2.2.1.1 Benefits The first important benefit brought by virtualization is the isolation. An application may contain bugs, which could interfere with other applications running on the same system. Most malwares operate like that to cause other applications' crash, compromise other applications, and steal sensitive information. Placing these applications in isolation with others can help improve the stability and security guarantee of the entire system. The second benefit of virtualization comes from performance. VMs provide exclusive access to the resources and thus have better performance guarantees than on a shared infrastructure. Traditional multiuser system provides sharing at the user level. In the user-level sharing, different applications compete on the computation resources, memory, network, and disk I/O. 2.2.1.2 Use Cases There are multiple usage of VMs beyond cloud computing. Using VMs as sandboxes for testing and security purposes: VMs are useful to provide a secure and isolated environment for running untrusted applications. The isolation property provided by VM can prevent the malicious code from accessing underlying operating system resources or accessing other VMs' data and code. It is 