Publication Data
Maestro: Quality-of-Service in Large Disk Arrays
Abstract: Provisioning storage in disk arrays is a difficult problem
because many applications with different workload characteristics and priorities share
resources provided by the array. Currently, storage in disk arrays is statically
partitioned, leading to difficult choices between over-provisioning to meet peak
demands and resource sharing to meet efficiency targets. In this paper, we present
Maestro, a feedback controller that can manage resources on large disk arrays to
provide performance differentiation among multiple applications. Maestro monitors the
performance of each application and dynamically allocates the array resources so that
diverse performance requirements can be met without static partitioning. It supports
multiple performance metrics (e.g., latency and throughput) and application priorities
so that important applications receive better performance in case of resource
contention. By ensuring that high-priority applications sharing storage with other
applications obtain the performance levels they require, Maestro makes it possible to
use storage resources efficiently. We evaluate Maestro using both synthetic and
real-world workloads on a large, commercial disk array. Our experiments indicate that
Maestro can reliably adjust the allocation of disk array resources to achieve
application performance targets.
