I/O consolidation is a growing trend in production environments due to the increasing complexity in tuning and managing storage systems. A consequence of this trend is the need to serve multiple users/workloads simultaneously. It is imperative to make sure that these users are insulated from each other by virtualization in order to meet any service level objective (SLO). Previous proposals for performance virtualization suffer from one or more of the following drawbacks: (i) rely on a fairly detailed performance model of the underlying storage system, (ii) couple rate and latency allocation in a single scheduler making them less flexible, or (iii) may not always exploit the full bandwidth offered by the storage system. This paper presents a 2-level scheduling framework that can be built on top of an existing storage utility. This framework uses a low-level feedback-driven request scheduler, called AVATAR, that is intended to meet the latency bounds determined by the SLO. The load imp...