IP Library Granted Patent US 11,747,997
Granted Patent B2
US 11,747,997 · App. 17/237,120 · Granted Sep 5, 2023

Method and apparatus for providing differentiated share prioritization in a storage system

Inventors: Jai Gahlot (Pune, IN); Shiv Kumar (Pune, IN); Amit Chauhan (Pune, IN)
Assignee: Dell Products, L.P.
G06F3/0622G06F3/067G06F3/0655
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 11,747,997
App. No.
17/237,120
Granted
Sep 5, 2023
Kind
B2
Abstract

A Software Defined Network Attached Storage (SDNAS) executes on a storage system to provide access to shared file systems, referred to as “shares”, on the storage system. Users access the shares using protocol clients. To enable the SDNAS to provide differentiated prioritization between the various shares, a share priority table is maintained by the SDNAS. As shares are created, or optionally after the shares have been created, each share is assigned a share priority which is stored in the share priority table. When an IO operation is received from a protocol client on a share, the SDNAS process determines a share priority value of the share from the share priority table. The share priority value is used to specify an IO priority which used by the operating system scheduling mechanism to schedule the IO operation and to establish a CPU priority for the IO operation.

Claims (40)

1. A non-transitory tangible computer readable storage medium having stored thereon a computer program for implementing a method of providing differentiated share prioritization in a storage system, the computer program including a set of instructions which, when executed by a computer, cause the computer to perform a method comprising the steps of:

instantiating a Software Defined Network Attached Storage (SDNAS) process on a storage system, the storage system having an operating system configured to receive share access requests from the SDNAS process, retrieve data from physical storage resources in response to the share access requests from the SDNAS process, and return the data to the SDNAS process;

exposing shares by the SDNAS process to protocol clients;

maintaining a share priority table, by the SDNAS process, the share priority table correlating share priority values with the exposed shares, wherein the share priority values include a plurality of different share priority values;

receiving share access requests, by the SDNAS process, from protocol clients on the shares exposed by the SDNAS process;

determining a respective share priority value associated with each respective share access request, by the SDNAS process, from the share priority table;

determining a respective operating system IO priority value from the determined respective share priority value;

determining a respective CPU scheduling priority value from the determined respective share priority value;

adding the determined respective operating system IO priority value and CPU scheduling priority value to each respective share access request, by the SDNAS process, prior to passing the respective share access request to the operating system of the storage system; and

passing each respective share access request from the SDNAS process to the operating system of the storage system, each respective share access request including the respective operating system IO priority value and the respective CPU scheduling priority value to specify the priority to be used by the operating system to prioritize implementation of the respective share access request relative to other storage access operations in connection with retrieving data associated with the respective share access request from the physical storage resources and returning the data associated with the respective share access request to the SDNAS process; and

responding to the share access requests, by the SDNAS process, by forwarding the returned data associated with the respective share access requests to the protocol clients.

2. The non-transitory tangible computer readable storage medium of claim 1 , further comprising implementing each respective share access request, by the operating system on the storage system.

3. The non-transitory tangible computer readable storage medium of claim 2 , wherein the step of implementing each respective share access request comprises using the respective operating system IO priority value and the respective CPU scheduling priority value, by a scheduling mechanism of the operating system, to set a priority of scheduling of the respective share access request relative to the other storage access operations and to determine a CPU assignment to a thread associated with the respective share access request.

4. The non-transitory tangible computer readable storage medium of claim 3 , wherein the respective operating system IO priority value is specific to the respective share access request and configured to be used by the operating system to prioritize IO operations for execution on the storage system.

5. The non-transitory tangible computer readable storage medium of claim 3 , wherein the respective CPU scheduling priority value is specific to the respective share access request and configured to adjust an amount of CPU cycles provided to a thread assigned to implement the respective share access request on the CPU.

6. The non-transitory tangible computer readable storage medium of claim 1 , further comprising receiving the share priority values, by the SDNAS process, from a share management system.

7. The non-transitory tangible computer readable storage medium of claim 6 , wherein receiving the share priority values comprises differentiating between share management system privileges by restricting share priority value ranges according to the share management system privileges.

8. The non-transitory tangible computer readable storage medium of claim 7 , wherein differentiating between share management system privileges comprises providing higher share priority value ranges to enable higher share management system privileges with access to higher share priority values.

9. The non-transitory tangible computer readable storage medium of claim 7 , wherein differentiating between share management system privileges comprises providing only lower share priority value ranges to restrict lower share management system privileges to accessing only the lower share priority values.

10. The non-transitory tangible computer readable storage medium of claim 6 , wherein receiving the share priority values comprises differentiating between share management system user privileges by allocating share priority value ranges according to share management user share access subscription levels.

11. A method of providing differentiated share prioritization in a storage system comprising the steps of:

instantiating a Software Defined Network Attached Storage (SDNAS) process on a storage system, the storage system having an operating system configured to receive share access requests from the SDNAS process, retrieve data from physical storage resources in response to the share access requests from the SDNAS process, and return the data to the SDNAS process;

exposing shares by the SDNAS process to protocol clients;

maintaining a share priority table, by the SDNAS process, the share priority table correlating share priority values with the exposed shares, wherein the share priority values include a plurality of different share priority values;

receiving share access requests, by the SDNAS process, from protocol clients on the shares exposed by the SDNAS process;

determining a respective share priority value associated with each respective share access request, by the SDNAS process, from the share priority table;

determining a respective operating system IO priority value from the determined respective share priority value;

determining a respective CPU scheduling priority value from the determined respective share priority value;

adding the determined respective operating system IO priority value and CPU scheduling priority value to each respective share access request, by the SDNAS process, prior to passing the respective share access request to the operating system of the storage system; and

passing each respective share access request from the SDNAS process to the operating system of the storage system, each respective share access request including the respective operating system IO priority value and the respective CPU scheduling priority value to specify the priority to be used by the operating system to prioritize implementation of the respective share access request relative to other storage access operations in connection with retrieving data associated with the respective share access request from the physical storage resources and returning the data associated with the respective share access request to the SDNAS process; and

responding to the share access requests, by the SDNAS process, by forwarding the returned data associated with the respective share access requests to the protocol clients.

12. The method of claim 11 , further comprising implementing each respective share access request, by the operating system on the storage system.

13. The method of claim 12 , wherein the step of implementing each respective share access request comprises using the respective operating system IO priority value and the respective CPU scheduling priority value, by a scheduling mechanism of the operating system, to set a priority of scheduling of the respective share access request relative to the other storage access operations and to determine a CPU assignment to a thread associated with the respective share access request.

14. The method of claim 13 , wherein the respective operating system IO priority value is specific to the respective share access request and configured to be used by the operating system to prioritize IO operations for execution on the storage system.

15. The method of claim 13 , wherein the respective CPU scheduling priority value is specific to the respective share access request and configured to adjust an amount of CPU cycles provided to a thread assigned to implement the respective share access request on the CPU.

16. The method of claim 11 , further comprising receiving the share priority values, by the SDNAS process, from a share management system.

17. The method of claim 16 , wherein receiving the share priority values comprises differentiating between share management system privileges by restricting share priority value ranges according to the share management system privileges.

18. The method of claim 17 , wherein differentiating between share management system privileges comprises providing higher share priority value ranges to enable higher share management system privileges with access to higher share priority values.

19. The method of claim 17 , wherein differentiating between share management system privileges comprises providing only lower share priority value ranges to restrict lower share management system privileges to accessing only the lower share priority values.

20. The method of claim 16 , wherein receiving the share priority values comprises differentiating between share management system user privileges by allocating share priority value ranges according to share management user share access subscription levels.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062021/0844 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0012 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2021
From: GAHLOT, JAI; KUMAR, SHIV; CHAUHAN, AMIT
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055998/0866 →