This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: mClock: Handling Throughput Variability for Hypervisor IO Scheduling Ajay Gulati Arif Merchant Peter Varman VMware Inc HP Labs Rice University [email protected] [email protected] [email protected] Abstract Virtualized servers run a diverse set of virtual machines (VMs), ranging from interactive desktops to test and de- velopment environments and even batch workloads. Hy- pervisors are responsible for multiplexing the underly- ing hardware resources among VMs while providing de- sired isolation using various resource management con- trols. Existing methods [3, 43] provide many knobs for allocating CPU and memory to VMs, but support for I/O resource allocation has been quite limited. IO resource management in a hypervisor introduces significant new challenges and needs more extensive controls compared to the commodity operating systems. This paper introduces a novel algorithm for IO re- source allocation in a hypervisor. Our algorithm, mClock , supports proportional-share fairness subject to a minimum reservation and a maximum limit on the IO allocation for VMs. We present the design and imple- mentation of mClock as a prototype inside VMware ESX hypervisor. Our results indicate that these rich set of QoS controls are quite effective in isolating VM perfor- mance and providing lower latencies to applications. We also show adaptation of mClock (called dmClock ) to a distributed storage environment, where storage is jointly provided by multiple nodes. 1 Introduction The increasing trend towards server virtualization has el- evated hypervisors to first class entities in today’s data- centers. Virtualized hosts run tens to hundreds of virtual machines (VMs), and the hypervisor needs to provide each virtual machine with an illusion of owning dedi- cated physical resources in terms of CPU, memory, net- work and storage IO. Strong isolation is needed for suc- cessful consolidation of VMs with diverse requirements on a shared infrastructure. Existing products such as VMware ESX Server provide guarantees for CPU and Figure 1: Highly fluctuating IOPS and orders/sec seen by VMs as the load on the shared storage changes. memory allocation using sophisticated controls such as reservations, limits and shares . The current state of the art in terms of IO resource allocation is however much more rudimentary, and is limited to providing pro- portional shares  to different VMs. IO scheduling in a hypervisor introduces many new challenges compared to managing other shared re- sources. First, virtualized servers typically access a shared storage device using either a clustered file sys- tem such as VMFS  or NFS volumes. A storage de- vice in the guest OS or a VM is just a large file on the shared storage device. Second, the IO scheduler in the hypervisor is running one layer below the elevator based scheduling in the guest OS. So it needs to handle issues such as locality of accesses across VMs, high variability in IO sizes, different request priority based on the appli-...
View Full Document
This note was uploaded on 02/23/2012 for the course CS 591 taught by Professor Dongyanxu during the Fall '10 term at Purdue.
- Fall '10