IP Library Granted Patent US 7,836,212
Granted Patent B2
US 7,836,212 · App. 11/489,936 · Granted Nov 16, 2010

Reflecting bandwidth and priority in network attached storage I/O

Assignee: Oracle America, Inc.
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 7,836,212
App. No.
11/489,936
Granted
Nov 16, 2010
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 (51)

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 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.

2. 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 first virtual machine;

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 first virtual machine is not exceeded;

place the I/O request in sleep mode if the bandwidth associated with the first virtual machine is exceeded;

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

re-assess whether the bandwidth associated with the first virtual machine is exceeded;

process the I/O request if the bandwidth associated with the first virtual machine is not exceeded; and

return the I/O request to sleep more 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.

3. A non-transitory computer usable medium having computer readable program code embodied therein for causing a computer system to execute a method for prosecuting 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 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.

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

5. The system of claim 2 , further comprising:

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

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

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0556 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2006
From: TRIPATHI, SUNAY; MOORE, WILLIAM H.; WONG, BRIAN L.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018583/0121 →
Continuity (1)
Related Publication 20080126580A1 · May 29, 2008