Modern computer systems are expected to be up continuously: even planned downtime to accomplish system reconfiguration is becoming unacceptable, so more and more changes are having to be made to “live” systems that are running production workloads. One of those changes is data migration: moving data from one storage device to another for load balancing, system expansion, failure recovery, or a myriad of other reasons. Traditional methods for achieving this either require application down-time, or severely impact the performance of foreground applications – neither a good outcome when performance predictability is almost as important as raw speed. Our solution to this problem, Aqueduct, uses a control-theoretical approach to statistically guarantee a bound on the amount of impact on foreground work during a data migration, while still accomplishing the data migration in as short a time as possible. The result is better quality of service for the end users, less stress for the system administrators, and systems that can be adapted more readily to meet changing demands.