IP Library Granted Patent US 9,021,142
Granted Patent B2
US 9,021,142 · App. 12/848,359 · Granted Apr 28, 2015

Reflecting bandwidth and priority in network attached storage I/O

Inventors: Sunay Tripathi (Palo Alto, CA); William H. Moore (Fremont, CA); Brian L. Wong (Midlothian, VA)
Assignee: Oracle America, Inc.
G06F3/0659G06F3/0613G06F3/067H04L49/70H04L49/102H04L49/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,021,142
App. No.
12/848,359
Granted
Apr 28, 2015
Kind
B2
Abstract

A method for processing a first input/output (I/O) request on a network attached storage (NAS) device that includes receiving the first I/O request from a source 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 source of the first I/O request is exceeded, processing the first I/O request if the bandwidth associated with the source of the first I/O request is not exceeded, and placing the first I/O request in sleep mode if the bandwidth associated with the source of the first I/O request is exceeded.

Claims (53)

1. 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 source by the NAS device;

placing the first I/O request in an I/O queue included in 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 source of the first I/O request is exceeded;

processing the first I/O request if the bandwidth associated with the source of the first I/O request is not exceeded;

placing the first I/O request in sleep mode if the bandwidth associated with the source of the first I/O request is exceeded;

removing the first I/O request from sleep mode after a specified time interval;

re-assessing whether the bandwidth associated with the source of the first I/O request is exceeded;

processing the first I/O request if the bandwidth associated with the source of the first I/O request is not exceeded; and

returning the first I/O request to sleep mode if the bandwidth associated with the source of the first I/O request is exceeded.

2. The method of claim 1 , wherein the source is a virtual machine.

3. The method of claim 1 , wherein the bandwidth associated with the source of the first I/O request is stored on the NAS device.

4. The method of claim 3 , wherein the bandwidth associated with the source is updated when a bandwidth update message is transmitted to the NAS device from the source.

5. The method of claim 1 , wherein the virtual machine is associated with a volume operatively connected to the NAS device.

6. The method of claim 1 , wherein after the first I/O request is placed in sleep mode processing a second I/O request at a bandwidth associated with a source of the second I/O request.

7. A system for processing an input/output (I/O) request on a network attached storage (NAS) device, comprising:

the NAS device, comprising:

an I/O queue;

functionality to execute a remote storage access protocol; and

a file system;

wherein the NAS device is configured to:

receive the I/O request from a source;

placing the I/O request in the I/O queue based on a priority of the I/O request using the remote storage access protocol; and

when the I/O request is associated with the highest priority in the I/O queue:

determine whether a bandwidth associated with the source of the I/O request is exceeded;

process the I/O request if the bandwidth associated with the source of the I/O request is not exceeded;

place the I/O request in sleep mode if the bandwidth associated with the source of the I/O request is exceeded;

remove the I/O request from sleep mode after a specified time interval;

re-assess whether the bandwidth associated with the source of the I/O request is exceeded;

process the I/O request if the bandwidth associated with the source of the I/O request is not exceeded; and

return the I/O request to sleep more if the bandwidth associated with the source of the I/O request is exceeded.

8. The system of claim 7 , further comprising:

a volume operatively connected to the NAS device, wherein the source is associated with the volume.

9. The system of claim 7 , wherein the bandwidth associated with the source of the I/O request is stored on the NAS device.

10. The system of claim 9 , wherein the bandwidth associated with the source is updated when a bandwidth update message is transmitted to the NAS device from the source.

11. The system of claim 7 , wherein the virtual machine is associated with a volume operatively connected to the NAS device.

12. A non-transitory computer usable medium having computer readable program code embodied therein for causing a computer system to execute a method for processing a first input/output (I/O) request on a network attached storage (NAS) device, the method comprising:

receiving the first I/O request from a source by the NAS device;

placing the first I/O request in an I/O queue included in 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 source of the first I/O request is exceeded;

processing the first I/O request if the bandwidth associated with the source of the first I/O request is not exceeded;

placing the first I/O request in sleep mode if the bandwidth associated with the source of the first I/O request is exceeded;

removing the first I/O request from sleep mode after a specified time interval;

re-assessing whether the bandwidth associated with the source of the first I/O request is exceeded;

processing the first I/O request if the bandwidth associated with the source of the first I/O request is not exceeded; and

returning the first I/O request to sleep mode if the bandwidth associated with the source of the first I/O request is exceeded.

13. The non-transitory computer usable medium of claim 12 , wherein the source is a virtual machine.

14. The non-transitory computer usable medium of claim 12 , wherein the bandwidth associated with the source of the first I/O request is stored on the NAS device.

15. The non-transitory computer usable medium of claim 14 , wherein the bandwidth associated with the source is updated when a bandwidth update message is transmitted to the NAS device from the source.

16. The non-transitory computer usable medium of claim 12 , wherein the virtual machine is associated with a volume operatively connected to the NAS device.

17. The non-transitory computer usable medium of claim 12 , wherein after the first I/O request is placed in sleep mode processing a second I/O request at a bandwidth associated with a source of the second I/O request.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2015
From: TRIPATHI, SUNAY; MOORE, WILLIAM H.; WONG, BRIAN L.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 035078/0873 →
MERGER Recorded Mar 3, 2015
From: SUN MICROSYSTEMS, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 035078/0882 →
Continuity (2)
Continuation 11489936 · Jul 20, 2006
Related Publication 20100299459A1 · Nov 25, 2010