1. A method of managing distributed storage resources including a first storage unit and a second storage unit, comprising: while the first storage unit and the second storage unit are online, monitoring workloads on the first storage unit and the second storage unit, the workloads being associated with objects stored in the first storage unit and the second storage unit, and monitoring performance of the first storage unit and the second storage unit, wherein the performance of the first storage unit is dependent on the number of outstanding input-output requests to the first storage unit and average latency of input-output requests to the first storage unit, and wherein the performance of the second storage unit is dependent on the number of outstanding input-output requests to the second storage unit and average latency of input-output requests to the second storage unit; calculating a load metric for each of the first and second storage units based on measurements of the monitored workloads on the respective storage unit and a measurement of the monitored performance of the respective storage unit; selecting an object to be migrated between the first storage unit and the second storage unit, wherein the object to be migrated is selected from the storage unit with the higher calculated load metric and comprises a disk image of a virtual machine; and migrating the disk image of the virtual machine between the first storage unit and the second storage unit without substantially interrupting the virtual machine.