IP Library Granted Patent US 11,500,556
Granted Patent B1
US 11,500,556 · App. 17/238,615 · Granted Nov 15, 2022

Storage system with passive witness node

Inventors: Sally Golan (Tel Aviv, IL); Liran Loya (Hod Hasharon, IL); Yuval Harduf (Yehud, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0629G06F3/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,500,556
App. No.
17/238,615
Filed
Apr 23, 2021
Granted
Nov 15, 2022
Kind
B1
Art Unit
2138
USPC
711/154
Abstract

A method for use in a first storage array, comprising: detecting whether a second storage array has designated the first storage array as a locally-preferred storage array, the detecting being performed when a first link between the second storage array and a witness node is down; setting a value of a first configuration setting to indicate that the first storage array is designated as a system-preferred storage array, the value of the first configuration setting being stored in a memory of the first storage array, the value of the first configuration setting being set only when the second storage array has designated the first storage array as a locally-preferred storage array; detecting, by the first storage array; and when the second link is down, assuming one of an active role or a passive role based, at least in part, on the value of the first configuration setting.

Claims (52)

1. A method for use in a first storage array, comprising:

detecting whether a second storage array has designated the first storage array as a locally-preferred storage array, the detecting being performed when a first link between the second storage array and a witness node is down;

setting a value of a first configuration setting to indicate that the first storage array is designated as a system-preferred storage array, the value of the first configuration setting being stored in a memory of the first storage array, the value of the first configuration setting being set only when the second storage array has designated the first storage array as a locally-preferred storage array;

detecting, by the first storage array, whether a second link between the first storage array and the second storage array is down; and

when the second link is down, assuming one of an active role or a passive role based, at least in part, on the value of the first configuration setting.

2. The method of claim 1 , wherein assuming one of an active role or a passive role based, at least in part, on the value of the first configuration setting includes:

assuming, by the first storage array, an active role, when the first configuration setting indicates that the first storage array is designated as a system-preferred storage array,

assuming, by the first storage array, a passive role, when the first configuration setting indicates that the second storage array is designated as a system-preferred storage array, and

assuming, by the first storage array, a role that is, at least in part, specified by a second configuration setting, when the first configuration setting indicates that neither the first storage array nor the second storage array is designated as a system-preferred storage array.

3. The method of claim 1 , wherein detecting whether the second storage array has designated the first storage array as the locally-preferred storage array includes:

receiving a first status message from the second storage array, the first status message indicating whether the second storage array has designated the first storage array as a locally-preferred storage array;

receiving a second status message from the witness node, the second status message indicating whether the second storage array has designated the first storage array as a locally-preferred storage array;

detecting whether the first status message and the second status message agree.

4. The method of claim 1 , wherein the value of the first configuration setting is left unchanged when the second storage array has not designated the first storage array as a locally-preferred storage array.

5. The method of claim 1 , wherein detecting whether the second storage array has designated the first storage array as the locally-preferred storage array includes receiving a status message that is transmitted from the second storage array to the first storage array, and processing the status message to determine whether the second storage array has designated the first storage array as the locally-preferred storage array.

6. The method of claim 1 , wherein detecting whether the second storage array has designated the first storage array as the locally-preferred storage array includes receiving a status message that is transmitted from the witness node to the first storage array, and processing the status message to determine whether the second storage array has reported to the witness node that the second storage array has designated the first storage array as the locally-preferred storage array.

7. The method of claim 1 , wherein assuming the active role includes continuing to serve incoming IO requests, and assuming a passive role includes stopping to serve incoming IO requests.

8. A storage array, comprising:

a memory configured to store a first configuration setting and a second configuration setting; and

at least one processor operatively coupled to the memory, the at least one processor being configured to perform the operations of:

detecting whether a peer storage array has designated the storage array as a locally-preferred storage array, the detecting being performed when a first link between the peer storage array and a witness node is down;

setting a value of the first configuration setting to indicate that the storage array is designated as a system-preferred storage array, the value of the first configuration setting being stored in a memory of the storage array, the value of the first configuration setting being set only when the peer storage array has designated the storage array as a locally-preferred storage array;

detecting, by the storage array, whether a second link between the storage array and the peer storage array is down; and

when the second link is down, assuming one of an active role or a passive role based, at least in part, on the value of the first configuration setting.

9. The storage array of claim 8 , wherein assuming one of an active role or a passive role based, at least in part, on the value of the first configuration setting includes:

assuming, by the storage array, an active role, when the first configuration setting indicates that the storage array is designated as a system-preferred storage array,

assuming, by the storage array, a passive role, when the first configuration setting indicates that the peer storage array is designated as a system-preferred storage array, and

assuming, by the storage array, a role that is, at least in part, specified by the second configuration setting, when the first configuration setting indicates that neither the storage array nor the peer storage array is designated as a system-preferred storage array.

10. The storage array of claim 8 , wherein detecting whether the peer storage array has designated the storage array as the locally-preferred storage array includes:

receiving a first status message from the peer storage array, the first status message indicating whether the peer storage array has designated the storage array as a locally-preferred storage array;

receiving a second status message from the witness node, the second status message indicating whether the peer storage array has designated the storage array as a locally-preferred storage array;

detecting whether the first status message and the second status message agree.

11. The storage array of claim 8 , wherein the value of the first configuration setting is left unchanged when the peer storage array has not designated the storage array as a locally-preferred storage array.

12. The storage array of claim 8 , wherein detecting whether the peer storage array has designated the storage array as the locally-preferred storage array includes receiving a status message that is transmitted from the peer storage array to the storage array, and processing the status message to determine whether the peer storage array has designated the storage array as the locally-preferred storage array.

13. The storage array of claim 8 , wherein detecting whether the peer storage array has designated the storage array as the locally-preferred storage array includes receiving a status message that is transmitted from the witness node to the storage array, and processing the status message to determine whether the peer storage array has reported to the witness node that the peer storage array has designated the storage array as the locally-preferred storage array.

14. The storage array of claim 8 , wherein assuming the active role includes continuing to serve incoming IO requests, and assuming a passive role includes stopping to serve incoming IO requests.

15. A non-transitory computer-readable medium storing one or more processor-executable instructions, which, when executed by at least one processor of a first storage array, cause the at least one processor to perform the operations of:

detecting whether a second storage array has designated the first storage array as a locally-preferred storage array, the detecting being performed when a first link between the second storage array and a witness node is down;

setting a value of a first configuration setting to indicate that the first storage array is designated as a system-preferred storage array, the value of the first configuration setting being stored in a memory of the first storage array, the value of the first configuration setting being set only when the second storage array has designated the first storage array as a locally-preferred storage array;

detecting, by the first storage array, whether a second link between the first storage array and the second storage array is down; and

when the second link is down, assuming one of an active role or a passive role based, at least in part, on the value of the first configuration setting.

16. The non-transitory computer-readable medium of claim 15 , wherein assuming one of an active role or a passive role based, at least in part, on the value of the first configuration setting includes:

assuming, by the first storage array, an active role, when the first configuration setting indicates that the first storage array is designated as a system-preferred storage array,

assuming, by the first storage array, a passive role, when the first configuration setting indicates that the second storage array is designated as a system-preferred storage array, and

assuming, by the first storage array, a role that is, at least in part, specified by a second configuration setting, when the first configuration setting indicates that neither the first storage array nor the second storage array is designated as a system-preferred storage array.

17. The non-transitory computer-readable medium of claim 15 , wherein detecting whether the second storage array has designated the first storage array as the locally-preferred storage array includes:

receiving a first status message from the second storage array, the first status message indicating whether the second storage array has designated the first storage array as a locally-preferred storage array;

receiving a second status message from the witness node, the second status message indicating whether the second storage array has designated the first storage array as a locally-preferred storage array;

detecting whether the first status message and the second status message agree.

18. The non-transitory computer-readable medium of claim 15 , wherein the value of the first configuration setting is left unchanged when the second storage array has not designated the first storage array as a locally-preferred storage array.

19. The non-transitory computer-readable medium of claim 15 , wherein detecting whether the second storage array has designated the first storage array as the locally-preferred storage array includes receiving a status message that is transmitted from the second storage array to the first storage array, and processing the status message to determine whether the second storage array has designated the first storage array as the locally-preferred storage array.

20. The non-transitory computer-readable medium of claim 15 , wherein detecting whether the second storage array has designated the first storage array as the locally-preferred storage array includes receiving a status message that is transmitted from the witness node to the first storage array, and processing the status message to determine whether the second storage array has reported to the witness node that the second storage array has designated the first storage array as the locally-preferred storage array.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2022
From: GOLAN, SALLY; LOYA, LIRAN; HARDUF, YUVAL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 060164/0794 →
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 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 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 →
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 →