mclock

mclock - mClock: Handling Throughput Variability for...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the 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 [43]. 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 [19] 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 [11] 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.

Page1 / 15

mclock - mClock: Handling Throughput Variability for...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online