IP Library › Granted Patent US 10,254,991
Granted Patent B2
US 10,254,991 · App. 15/451,139 · Granted Apr 9, 2019

Storage area network based extended I/O metrics computation for deep insight into application performance

Inventor: Harsha Bharadwaj (Bangalore, IN)
Assignee: CISCO TECHNOLOGY, INC.
G06F3/0644G06F3/061G06F3/067G06F13/102H04L67/1097
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,254,991
App. No.
15/451,139
Filed
Mar 6, 2017
Granted
Apr 9, 2019
Kind
B2
Art Unit
2185
USPC
710/74
Abstract

A method is described and in one embodiment includes monitoring by an integrated circuit device READ/WRITE commands in connection with a flow of an application executing in a Fiber Channel Storage Area Network (“FC-SAN”); determining from the monitored READ/WRITE commands at least one metric for characterizing I/O performance of the application with respect to a storage device, wherein the at least one metric includes at least one of an inter I/O gap (“IIG”), a Logical Unit Number (“LUN”) I/O access pattern (“IAP”), relative block size, I/O operations per second (“IOPS”) and throughput, and IOPS per virtual server; storing the calculated at least one metric in a flow record associated with the flow; and using the calculated at least one metric to identify a storage device for use by the flow, wherein the calculated at least one metric is indicative of a performance of the application in the FC-SAN.

Claims (92)

1. A method comprising:

monitoring by an integrated circuit device READ/WRITE commands in connection with a flow of an application executing in a Fibre Channel Storage Area Network (“FC-SAN”);

determining from the monitored READ/WRITE commands a Logical Unit Number (“LUN”) I/O access pattern (“IAP”), comprising:

determining an LBA identified in a first I/O command;

determining an LBA identified in an immediately subsequent I/O command;

designating the LUN IAP as sequential if the LBA identified in the first I/O command is one less than the LBA identified in the immediately subsequent I/O command; and

designating the LUN IAP as random if the LBA identified in the first I/O command is not one less than the LBA identified in the immediately subsequent I/O access;

storing the calculated at least one metric in a flow record associated with the flow; and

using the calculated at least one metric to identify a storage device for use by the flow;

wherein the calculated at least one metric is indicative of a performance of the application in the FC-SAN.

2. The method of claim 1 , wherein the at least one metric includes an inter I/O gap (“IIG”), and determining the IIG comprises:

detecting timestamps associated with immediately successive READ/WRITE commands; and

determining a time difference between the detected timestamps;

wherein the determined time difference comprises an interim IIG for the immediately successive READ/WRITE commands.

3. The method of claim 2 , wherein the determining the IIG further comprises:

repeating the detecting and determining for a plurality of immediately successive READ/WRITE commands of the flow to determine a plurality of interim IIGs; and

determining from the plurality of interim IIGs at least one of a maximum IIG, a minimum IIG, and an average IIG for the flow.

4. The method of claim 1 , wherein the at least one metric includes a relative block size, and determining relative block size comprises:

determining a LUN block size from a field in a response to a SCSI command issued by the application;

determining a total number of I/O bytes indicated in a data length field of an I/O command issued by the application;

comparing the LUN block size with the number of bytes to determine whether a mismatch exists between the LUN block size and the number of bytes.

5. The method of claim 1 , wherein the at least one metric includes I/O operations per second (“IOPS”) and throughput, and determining IOPS and throughput comprises at least one of:

tracking a number of READ operations performed per second;

tracking a number of WRITE operations performed per second; and

tracking an amount of data read from the storage device per second; and

tracking an amount of data written to the storage device per second.

6. The method of claim 1 , wherein the at least one metric includes IOPS per virtual server, and determining IOPS per virtual server comprises:

tracking a number of READ operations performed per second with respect to a first virtual server;

tracking a number of WRITE operations performed per second with respect to the first virtual server.

7. The method of claim 1 , wherein the integrated circuit device comprises a network processing unit (“NPU”) disposed in an FC switch.

8. One or more non-transitory tangible media that includes code for execution and when executed by a processor is operable to perform operations comprising:

monitoring by an integrated circuit device READ/WRITE commands in connection with a flow of an application executing in a Fibre Channel Storage Area Network (“FC-SAN”);

determining from the monitored READ/WRITE commands a Logical Unit Number (“LUN”) I/O access pattern (“IAP”), comprising:

determining an LBA identified in a first I/O command;

determining an LBA identified in an immediately subsequent I/O command;

designating the LUN IAP as sequential if the LBA identified in the first I/O command is one less than the LBA identified in the immediately subsequent I/O command; and

designating the LUN IAP as random if the LBA identified in the first I/O command is not one less than the LBA identified in the immediately subsequent I/O access;

storing the calculated at least one metric in a flow record associated with the flow; and

using the calculated at least one metric to identify a storage device for use by the flow;

wherein the calculated at least one metric is indicative of a performance of the application in the FC-SAN.

9. The apparatus of claim 8 , wherein the at least one metric includes an inter I/O gap (“IIG”), and determining the IIG comprises:

detecting timestamps associated with immediately successive READ/WRITE commands; and

determining a time difference between the detected timestamps, wherein the determined time difference comprises an interim IIG for the immediately successive READ/WRITE commands;

repeating the detecting and determining for a plurality of immediately successive READ/WRITE commands of the flow to determine a plurality of interim IIGs; and

determining from the plurality of interim IIGs at least one of a maximum IIG, a minimum IIG, and an average IIG for the flow.

10. The apparatus of claim 8 , wherein the at least one metric includes a relative block size, and determining relative block size comprises:

determining a LUN block size from a field in a response to a SCSI command issued by the application;

determining a total number of I/O bytes indicated in a data length field of an I/O command issued by the application;

comparing the LUN block size with the number of bytes to determine whether a mismatch exists between the LUN block size and the number of bytes.

11. The apparatus of claim 8 , wherein the at least one metric includes I/O operations per second (“IOPS”) and throughput, and determining IOPS and throughput comprises at least one of:

tracking a number of READ operations performed per second;

tracking a number of WRITE operations performed per second; and

tracking an amount of data read from the storage device per second; and

tracking an amount of data written to the storage device per second.

12. The apparatus of claim 8 , wherein the at least one metric includes IOPS per virtual server, and determining IOPS per virtual server comprises:

tracking a number of READ operations performed per second with respect to a first virtual server;

tracking a number of WRITE operations performed per second with respect to the first virtual server.

13. An apparatus comprising:

a memory element configured to store data; and

a processor operable to execute instructions associated with the data;

the apparatus configured for:

monitoring by an integrated circuit device READ/WRITE commands in connection with a flow of an application executing in a Fibre Channel Storage Area Network (“FC-SAN”);

determining from the monitored READ/WRITE commands a Logical Unit Number (“LUN”) I/O access pattern (“IAP”), comprising:

determining an LBA identified in a first I/O command;

determining an LBA identified in an immediately subsequent I/O command;

designating the LUN IAP as sequential if the LBA identified in the first I/O command is one less than the LBA identified in the immediately subsequent I/O command; and

designating the LUN IAP as random if the LBA identified in the first I/O command is not one less than the LBA identified in the immediately subsequent I/O access;

storing the calculated at least one metric in a flow record associated with the flow; and

using the calculated at least one metric to identify a storage device for use by the flow;

wherein the calculated at least one metric is indicative of a performance of the application in the FC-SAN.

14. The apparatus of claim 13 , wherein the at least one metric includes an inter I/O gap (“IIG”), and determining the IIG comprises:

detecting timestamps associated with immediately successive READ/WRITE commands; and

determining a time difference between the detected timestamps, wherein the determined time difference comprises an interim IIG for the immediately successive READ/WRITE commands;

repeating the detecting and determining for a plurality of immediately successive READ/WRITE commands of the flow to determine a plurality of interim IIGs; and

determining from the plurality of interim IIGs at least one of a maximum IIG, a minimum IIG, and an average IIG for the flow.

15. The apparatus of claim 13 , wherein the determining the LUN IAP further comprises:

determining an LBA identified in a first I/O command;

determining an LBA identified in an immediately subsequent I/O command;

designating the LUN LAP as sequential lithe LBA identified in the first I/O command is one less than the LBA identified in the immediately subsequent I/O command; and

designating the LUN IAP as random if the LBA identified in the first I/O command is not one less than the LBA identified in the immediately subsequent I/O access.

16. The apparatus of claim 13 , wherein the at least one metric includes a relative block size, and determining relative block size comprises:

determining a LUN block size from a field in a response to a SCSI command issued by the application;

determining a total number of I/O bytes indicated in a data length field of an I/O command issued by the application;

comparing the LUN block size with the number of bytes to determine whether a mismatch exists between the LUN block size and the number of bytes.

17. The apparatus of claim 13 , wherein the at least one metric includes I/O operations per second (“IOPS”) and throughput, and determining IOPS and throughput comprises at least one of:

tracking a number of READ operations performed per second;

tracking a number of WRITE operations performed per second; and

tracking an amount of data read from the storage device per second; and

tracking an amount of data written to the storage device per second.

18. The apparatus of claim 13 , wherein the at least one metric includes IOPS per virtual server, and determining IOPS per virtual server comprises:

tracking a number of READ operations performed per second with respect to a first virtual server;

tracking a number of WRITE operations performed per second with respect to the first virtual server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2017
From: BHARADWAJ, HARSHA
To: CISCO TECHNOLOGY, INC.
Reel/Frame 041478/0463 →
Continuity (1)
Related Publication 20180253256A1 · Sep 6, 2018