1. A plurality of hardware computer systems each including at least one processor, comprising: a virtual machine management module executing on at least one of the processors that causes a plurality of virtual machines to be executed on at least one of the processors in accordance with instructions from each of a plurality of principals; a plurality of persistent storage devices directly or indirectly accessible, via one or more physical storage controllers, to the processors on which the plurality of virtual machines are executed; and virtual storage management software executed on at least one of the processors to: receive a persistent storage request from one of the plurality of virtual machines, and in response to receiving the persistent storage request from one of the plurality of virtual machines: dynamically choosing a proper subset of the plurality of persistent storage devices to service the persistent storage request received from one of the plurality of virtual machines, wherein the subset of the plurality of persistent storage device has two or more persistent storage devices, and dynamically selecting a respective persistent storage device of the identified subset to service the persistent storage request.