Patent ID: 7836212

Claim:
A method for processing a first input/output (I/O) request on a network attached storage (NAS) device, comprising: receiving the first I/O request from a first virtual machine by the NAS device; placing the first I/O request in an I/O queue associated with the NAS device, wherein the first I/O request is placed in the I/O queue based on a priority of the first I/O request using a remote storage access protocol; and when the first I/O request is associated with the highest priority in the I/O queue: determining whether a bandwidth associated with the first virtual machine is exceeded; processing the first I/O request if the bandwidth associated with the first virtual machine is not exceeded; placing the first I/O request in sleep mode if the bandwidth associated with the first virtual machine is exceeded; removing the first I/O request from sleep mode after a specified time interval; re-assessing whether the bandwidth associated with the first virtual machine is exceeded; processing the first I/O request if the bandwidth associated with the first virtual machine is not exceeded; and returning the first I/O request to sleep mode if the bandwidth associated with the first virtual machine is exceeded, wherein the bandwidth associated with the first virtual machine is stored on the NAS device, wherein the bandwidth associated with the first virtual machine is updated when a bandwidth update message is transmitted to the NAS device from the first virtual machine, and wherein a second I/O request received from a second virtual machine is processed at a bandwidth associated with the second virtual machine when the first I/O request is placed in sleep mode.