1. A computer-executed method for managing shared storage input-output  (I/O) resources, comprising: receiving a first request for a first I/O operation on a storage system to which a plurality of requests for I/O operations have been recently issued; wherein the plurality of requests includes a first set of requests that are associated with a first I/O scheduling group of a plurality of I/O scheduling groups, and a second set of requests that are associated with a second I/O scheduling group of the plurality of I/O scheduling groups; determining which I/O scheduling group of the plurality of I/O scheduling groups the first request is associated with; in response to determining that the first request is associated with the first I/O scheduling group: identifying a first I/O policy, associated with the first I/O scheduling group, that specifies a particular maximum I/O rate, and not a maximum throughput rate, at which I/O operations should issue to said storage system for requests associated with said first I/O scheduling group; determining an I/O rate at which I/O operations have recently issued to said storage system for said first I/O scheduling group; determining, based at least in part on said I/O rate and on said first I/O policy, whether to place said first request in an I/O request queue; in response to determining to place said first request in an I/O request queue: placing said first request in a particular I/O request queue associated with said first I/O scheduling group; and issuing said first request to said storage system when said first request is dequeued from said particular I/O request queue based on said first I/O policy, for performance of said first I/O operation by said storage system; receiving a second request for a second I/O operation on the storage system; determining which I/O scheduling group of the plurality of I/O scheduling groups the second request is associated with; in response to determining that the second request is associated with the second I/O scheduling group: identifying a second I/O policy, associated with the second I/O scheduling group, that specifies a particular maximum throughput rate, and not a maximum I/O rate, at which I/O operations should issue to said storage system for requests associated with said second I/O scheduling group; determining a throughput rate at which I/O operations have recently issued to said storage system for said second I/O scheduling group; determining, based at least in part on said throughput rate and on said second I/O policy, whether to place said second request in an I/O request queue; in response to determining to place said second request in an I/O request queue: placing said second request in a second I/O request queue associated with said second I/O scheduling group; and issuing said second request to said storage system when said second request is dequeued from said second I/O request queue based on said second I/O policy, for performance of said second I/O operation by said storage system; wherein the method is performed by one or more computing devices.