IP Library Granted Patent US 11,960,763
Granted Patent B2
US 11,960,763 · App. 17/238,877 · Granted Apr 16, 2024

Load balancing combining block and file storage

Inventors: Shaul Dar (Petach Tikva, IL); Amitai Alkalay (Kadima, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0659G06F3/0611G06F3/0647G06F3/067G06F16/1827
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,960,763
App. No.
17/238,877
Granted
Apr 16, 2024
Kind
B2
Abstract

A technique for performing load balancing between storage nodes includes generating a first performance metric for volumes accessed through a first storage node and generating a second performance metric for volumes accessed through a second storage node. The volumes accessed through the first storage node include a set of volumes that belong to a NAS (network-attached storage) file server hosted by the first storage node. In response to detecting a load imbalance based on the first performance metric and the second performance metric, the technique further includes moving the NAS file server from the first storage node to the second storage node and hosting the set of volumes that belong to the NAS file server from the second storage node.

Claims (45)

1. A method of load balancing in a data storage system, comprising:

performing, by a first storage node of the storage system and a second storage node of the storage system, I/O operations on behalf of clients, the first storage node and the second storage node each having respective control circuitry that includes a set of processing units coupled to memory;

generating performance metrics that include (i) a first performance metric for a first plurality of volumes hosted by the first storage node of the data storage system and (ii) a second performance metric for a second plurality of volumes hosted by the second storage node of the data storage system, the first plurality of volumes including a third plurality of volumes that is part of a NAS file server running on the first storage node;

detecting, based on the first performance metric and the second performance metric, a load imbalance between the first storage node and the second storage node; and

in response to detecting the load imbalance, (1) moving the NAS file server from the first storage node to the second storage node, including (a) disabling the NAS file server running on the first storage node and (b) instantiating the NAS file server on the second storage node, and (2) hosting the third plurality of volumes from the second storage node,

wherein the first performance metric and the second performance metric are generated based on respective sums of per-volume metrics for individual volumes in the first plurality of volumes and the second plurality of volumes, wherein the first performance metric is based at least in part on the third plurality of volumes that is host-accessible via the NAS file server using a file-based protocol, and wherein the second performance metric is based at least in part on a volume that is host-accessible using a block-based protocol, the method thereby providing a common mechanism based on the per-volume metrics for load balancing data accessed using both block-based and file-based protocols.

2. The method of claim 1 ,

wherein the first plurality of volumes includes an additional volume in addition to the third plurality of volumes, the additional volume serving block-based storage requests from a host via a first path that extends between the host and the first storage node, the first path designated as ALUA active/optimized, and

wherein the method further comprises, in response to detecting the load imbalance, redirecting the host to access the additional volume via the second storage node by designating the first path as ALUA active/non-optimized and designating a second path as ALUA active/optimized, the second path extending between the host and the second storage node.

3. The method of claim 2 , wherein (i) moving the NAS file server and (ii) redirecting the host are responsive to commands from a load balancer of the data storage system, the load balancer varying load balance between the first storage node and the second storage node by controlling both block and file data access.

4. The method of claim 1 , further comprising identifying volumes of the third plurality of volumes based on at least one of (i) a table that identifies member volumes of the NAS file server or (ii) a naming convention that names each volume of the third plurality of volumes with a name that includes an indicator of the NAS file server.

5. The method of claim 1 , wherein generating the performance metrics further includes generating a third performance metric for the third plurality of volumes, and wherein detecting the load imbalance is further based on the third performance metric.

6. The method of claim 5 , wherein generating at least one of the first, second, and third performance metrics includes calculating a respective sum of per-volume performance metrics of volumes in the respective plurality of volumes.

7. The method of claim 6 , wherein each of the per-volume performance metrics is based on I/O reads and/or writes of the respective volume.

8. The method of claim 1 , further comprising accessing, by the NAS file server on the second storage node, a set of LUNs (Logical UNits) that back the third plurality of volumes via a set of paths that are designated as ALUA active/optimized.

9. The method of claim 1 , further comprising, prior to moving the NAS file server, enabling access via the first storage node to a set of LUNs that back the third plurality of volumes through (i) a first set of paths that are designated as ALUA active/optimized and do not pass through the second storage node and (ii) a second set of paths that are designated as ALUA active/non-optimized and do pass through the second storage node.

10. The method of claim 9 , further comprising, after moving the NAS file server, enabling access via the second storage node to the set of LUNs through (i) a third set of paths that are designated as ALUA active/optimized and do not pass through the first storage node and (ii) a fourth set of paths that are designated as ALUA active/non-optimized and do pass through the first storage node.

11. The method of claim 1 , wherein the first storage node and the second storage node are parts of a single data storage appliance, the data storage appliance further including shared persistent storage that backs the first plurality of volumes and the second plurality of volumes.

12. The method of claim 1 , wherein the first storage node is part of a first storage appliance and the second storage node is part of a second data storage appliance.

13. A computerized apparatus, comprising a first storage node and a second storage node coupled to shared persistent storage, each storage node having respective control circuitry that includes a set of processing units coupled to memory, the control circuitry of the first storage node and the second storage node constructed and arranged to:

perform, by the first storage node and the second storage node, I/O operations on behalf of clients;

generate performance metrics that include (i) a first performance metric for a first plurality of volumes hosted by the first storage node and (ii) a second performance metric for a second plurality of volumes hosted by the second storage node, the first plurality of volumes including a third plurality of volumes that is part of a NAS file server running on the first storage node;

detect, based on the first performance metric and the second performance metric, a load imbalance between the first storage node and the second storage node; and

in response to detection of the load imbalance, (1) move the NAS file server from the first storage node to the second storage node, including (a) disabling the NAS file server running on the first storage node and (b) instantiating the NAS file server on the second storage node, and (2) host the third plurality of volumes from the second storage node,

wherein the first performance metric and the second performance metric are generated based on respective sums of per-volume metrics for individual volumes in the first plurality of volumes and the second plurality of volumes, wherein the first performance metric is based at least in part on the third plurality of volumes that is host-accessible via the NAS file server using a file-based protocol, and wherein the second performance metric is based at least in part on a volume that is host-accessible using a block-based protocol, the control circuitry thereby constructed and arranged to provide a common mechanism for load balancing based on the per-volume metrics data accessed using both block-based and file-based protocols.

14. The computerized apparatus of claim 13 ,

wherein the first plurality of volumes includes an additional volume in addition to the third plurality of volumes, the additional volume serving block-based storage requests from a host via a first path that extends between the host and the first storage node, the first path designated as ALUA active/optimized, and

wherein, in response to detection of the load imbalance, the control circuitry is further constructed and arranged to redirect the host to access the additional volume via the second storage node by designating the first path as ALUA active/non-optimized and designating a second path as ALUA active/optimized, the second path extending between the host and the second storage node.

15. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a computerized apparatus, cause the computerized apparatus to perform a method of load balancing, the method comprising:

performing, by a first storage node of the storage system and a second storage node of the storage system, I/O operations on behalf of clients, the first storage node and the second storage node each having respective control circuitry that includes a set of processing units coupled to memory;

generating performance metrics that include (i) a first performance metric for a first plurality of volumes hosted by the first storage node of a data storage system and (ii) a second performance metric for the second plurality of volumes hosted by a second storage node of the data storage system, the first plurality of volumes including a third plurality of volumes that is part of a NAS file server running on the first storage node;

detecting, based on the first performance metric and the second performance metric, a load imbalance between the first storage node and the second storage node; and

in response to detecting the load imbalance, (1) moving the NAS file server from the first storage node to the second storage node, including (a) disabling the NAS file server running on the first storage node and (b) instantiating the NAS file server on the second storage node, and (2) hosting the third plurality of volumes from the second storage node,

wherein the first performance metric and the second performance metric are generated based on respective sums of per-volume metrics for individual volumes in the first plurality of volumes and the second plurality of volumes, wherein the first performance metric is based at least in part on the third plurality of volumes that is host-accessible via the NAS file server using a file-based protocol, and wherein the second performance metric is based at least in part on a volume that is host-accessible using a block-based protocol, the method thereby providing a common mechanism based on the per-volume metrics for load balancing data accessed using both block-based and file-based protocols.

16. The computer program product of claim 15 ,

wherein the first plurality of volumes includes an additional volume in addition to the third plurality of volumes, the additional volume serving block-based storage requests from a host via a first path that extends between the host and the first storage node, the first path designated as ALUA active/optimized, and

wherein the method further comprises, in response to detecting the load imbalance, redirecting the host to access the additional volume via the second storage node by designating the first path as ALUA active/non-optimized and designating a second path as ALUA active/optimized, the second path extending between the host and the second storage node.

17. The computer program product of claim 16 , wherein (i) moving the NAS file server and (ii) redirecting the host are responsive to commands from a load balancer of the data storage system, the load balancer varying load balance between the first storage node and the second storage node by controlling both block and file data access.

18. The computer program product of claim 15 , wherein generating the performance metrics further includes generating a third performance metric for the third plurality of volumes, and wherein detecting the load imbalance is further based on the third performance metric.

19. The computer program product of claim 15 , wherein the method further comprises:

prior to moving the NAS file server, enabling access via the first storage node to a set of LUNs that back the third plurality of volumes through (i) a first set of paths that are designated as ALUA active/optimized and do not pass through the second storage node and (ii) a second set of paths that are designated as ALUA active/non-optimized and do pass through the second storage node; and

after moving the NAS file server, enabling access via the second storage node to the set of LUNs through (i) a third set of paths that are designated as ALUA active/optimized and do not pass through the first storage node and (ii) a fourth set of paths that are designated as ALUA active/non-optimized and do pass through the first storage node.

20. The method of claim 1 ,

wherein the first plurality of volumes includes a fourth plurality of volumes that is not part of the third plurality of volumes, the fourth plurality of volumes including block-based volumes; and

wherein moving the NAS file server includes not moving the fourth plurality of volumes.

Assignments (10)
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/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 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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2021
From: DAR, SHAUL; ALKALAY, AMITAI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056993/0820 →
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/0124 →
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 →
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 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
Continuity (1)
Related Publication 20220342598A1 · Oct 27, 2022
Cited By (1)
US 12,596,599