IP Library › Granted Patent US 10,541,928
Granted Patent B2
US 10,541,928 · App. 15/911,192 · Granted Jan 21, 2020

Policy aware framework for application input output management

Inventors: Chiao-Chuan Shih (Palo Alto, CA); Samdeep Nayak (Bangalore, IN); Atanu Panda (Palo Alto, CA); Joy Ghosh (Palo Alto, CA)
Assignee: VMware, Inc.
H04L47/2475H04L47/20H04L47/6255H04L49/205H04L49/356
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 10,541,928
App. No.
15/911,192
Granted
Jan 21, 2020
Kind
B2
Abstract

Certain embodiments described herein are generally directed to enforcing application-specific quality of service (QoS) requirements over a storage network. The method for enforcing application-specific quality of service (QoS) requirements over a storage network includes receiving an input-output (I/O) command from a virtual machine executing an application, wherein the I/O command corresponds to an I/O request generated by the application and is tagged with a QoS classification corresponding to QoS requirements of the application, determining a QoS value corresponding to the QoS classification of the I/O command, and transmitting a data frame including the I/O command and the QoS value to a target network adapter through a switch fabric in a network, the switch fabric having a plurality of switches each configured to forward the data frame based on the QoS value.

Claims (61)

1. A method for enforcing application-specific quality of service (QoS) requirements over a storage network, the method comprising:

receiving, at an initiator network adapter, an input-output (I/O) command to be transmitted to a storage device associated with a target network adapter, the I/O command being received from a virtual machine executing an application, wherein the I/O command corresponds to an I/O request generated by the application and is tagged with a QoS classification corresponding to QoS requirements of the application;

determining, at the initiator adapter, a QoS value corresponding to the QoS classification of the I/O command, wherein:

the QoS classification indicates a bandwidth requirement;

the target network adapter is associated with a plurality of storage devices including the storage device;

the I/O command is received from the virtual machine through a storage stack configured to process I/O commands received by the application;

the storage stack is configured with a plurality of queues, corresponding to the plurality of devices, the plurality of queues having a corresponding plurality of queue depths;

causing, at the initiator network adapter, the plurality of queue depths to be adjusted based on the bandwidth requirement; and

transmitting, at the initiator network adapter, a data frame including the I/O command and the QoS value to a target network adapter through a switch fabric in a network, the switch fabric having a plurality of switches each configured to forward the data frame based on the QoS value.

2. The method of claim 1 , wherein:

the bandwidth requirement indicates a take-all bandwidth requirement; and

causing, at the initiator network adapter, the plurality of queue depths to be adjusted further comprises causing a queue depth of a queue corresponding to the storage device to be set to a queue depth of the initiator adapter and further causing queue depths of the plurality of queue depths to be set to zero.

3. The method of claim 2 , further comprising:

receiving, at the initiator network adapter, an I/O command response corresponding to the I/O command from the target adapter through the switch fabric of the network, the switch fabric being configured to forward the I/O command response based on the QoS value;

determining, at the initiator network adapter, that the QoS classification indicates the take-all bandwidth requirement; determining, at the initiator network adapter, whether the I/O command response is a last pending I/O command response with the take-all bandwidth requirement

causing, at the initiator network adapter, the plurality of queue depths to be readjusted upon determining that the I/O command response is the last pending I/O command response; and

transmitting, at the initiator network adapter, the I/O command response to the storage stack.

4. The method of claim 2 , wherein the determined QoS value indicates a high QoS value.

5. The method of claim 1 , further comprising:

determining, at the initiator network adapter, whether there is any other pending I/O command with the take-all bandwidth requirement, wherein causing the plurality of queue depths to be adjusted further comprises causing a queue depth of a queue corresponding to the storage device to be adjusted upon determining there is no other pending I/O command with the take-all bandwidth requirement.

6. The method of claim 1 , wherein the plurality of switches comprise forwarding tables configured by a QoS controller based on capabilities of the corresponding plurality of switches.

7. The method of claim 1 , wherein the QoS value comprises a class-specific control (CS-CTL) QoS value.

8. The method of claim 1 , wherein the network comprises a Fibre Channel over Ethernet network.

9. A non-transitory computer readable medium comprising instructions to be executed in a computer system, wherein the instructions when executed in the computer system perform a method for enforcing application-specific quality of service (QoS) requirements over a storage network, the method comprising:

receiving, at an initiator network adapter, an input-output (I/O) command to be transmitted to a storage device associated with a target network adapter, the I/O command being received from a virtual machine executing an application, wherein the I/O command corresponds to an I/O request generated by the application and is tagged with a QoS classification corresponding to QoS requirements of the application;

determining, at the initiator adapter, a QoS value corresponding to the QoS classification of the I/O command, wherein:

the QoS classification indicates a bandwidth requirement;

the target network adapter is associated with a plurality of storage devices including the storage device;

the I/O command is received from the virtual machine through a storage stack configured to process I/O commands received by the application;

the storage stack is configured with a plurality of queues, corresponding to the plurality of devices, the plurality of queues having a corresponding plurality of queue depths;

causing, at the initiator network adapter, the plurality of queue depths to be adjusted based on the bandwidth requirement; and

transmitting, at the initiator network adapter, a data frame including the I/O command and the QoS value to a target network adapter through a switch fabric in a network, the switch fabric having a plurality of switches each configured to forward the data frame based on the QoS value.

10. The non-transitory computer readable medium of claim 9 , wherein:

the bandwidth requirement indicates a take-all bandwidth requirement;

causing, at the initiator network adapter, the plurality of queue depths to be adjusted further comprises causing a queue depth of a queue corresponding to the storage device to be set to a queue depth of the initiator adapter and further causing queue depths of the plurality of queue depths to be set to zero.

11. The non-transitory computer readable medium of claim 10 , further comprising:

receiving, at the initiator network adapter, an I/O command response corresponding to the I/O command from the target adapter through the switch fabric of the network, the switch fabric being configured to forward the I/O command response based on the QoS value;

determining, at the initiator network adapter, that the QoS classification indicates the take-all bandwidth requirement;

determining, at the initiator network adapter, whether the I/O command response is a last pending I/O command response with the take-all bandwidth requirement; and

causing, at the initiator network adapter, the plurality of queue depths to be readjusted upon determining that the I/O command response is the last pending I/O command response; and

transmitting, at the initiator network adapter, the I/O command response to the storage stack.

12. A computer system comprising:

an initiator network adapter;

a non-transitory memory comprising executable instructions; and

a processor in data communication with the memory and configured to execute the instructions to cause the apparatus to perform a method comprising:

receiving, at the initiator network adapter, an input-output (I/O) command to be transmitted to a storage device associated with a target network adapter, the I/O command being received from a virtual machine executing an application, wherein the I/O command corresponds to an I/O request generated by the application and is tagged with a QoS classification corresponding to QoS requirements of the application;

determining, at the initiator adapter, a QoS value corresponding to the QoS classification of the I/O command, wherein:

the QoS classification indicates a bandwidth requirement;

the target network adapter is associated with a plurality of storage devices including the storage device;

the I/O command is received from the virtual machine through a storage stack configured to process I/O commands received by the application;

the storage stack is configured with a plurality of queues, corresponding to the plurality of devices, the plurality of queues having a corresponding plurality of queue depths;

causing, at the initiator network adapter, the plurality of queue depths to be adjusted based on the bandwidth requirement; and

transmitting, at the initiator network adapter, a data frame including the I/O command and the QoS value to a target network adapter through a switch fabric in a network, the switch fabric having a plurality of switches each configured to forward the data frame based on the QoS value.

13. The computer system of claim 12 , wherein: the bandwidth requirement indicates a take-all bandwidth requirement;

causing, at the initiator network adapter, the plurality of queue depths to be adjusted further comprises causing a queue depth of a queue corresponding to the storage device to be set to a queue depth of the initiator adapter and further causing queue depths of the plurality of queue depths to be set to zero.

14. The computer system of claim 13 , further comprising:

receiving, at the initiator network adapter, an I/O command response corresponding to the I/O command from the target adapter through the switch fabric of the network, the switch fabric being configured to forward the I/O command response based on the QoS value;

determining, at the initiator network adapter, that the QoS classification indicates the take-all bandwidth requirement;

determining, at the initiator network adapter, whether the I/O command response is a last pending I/O command response with the take-all bandwidth requirement

causing, at the initiator network adapter, the plurality of queue depths to be readjusted upon determining that the I/O command response is the last pending I/O command response; and

transmitting, at the initiator network adapter, the I/O command response to the storage stack.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2018
From: SHIH, CHIAO-CHUAN; NAYAK, SAMDEEP; PANDA, ATANU; GHOSH, JOY
To: VMWARE, INC.
Reel/Frame 045101/0288 →
Priority Claims (1)
IN 201841002148 · Jan 18, 2018 · national
Continuity (1)
Related Publication 20190222522A1 · Jul 18, 2019
Cited By (1)
US 12,452,143