IP Library Granted Patent US 11,079,971
Granted Patent B2
US 11,079,971 · App. 15/476,415 · Granted Aug 3, 2021

Input/output (i/o) fencing without dedicated arbitrators

Inventors: Vikas Goel (Maharashtra, IN); Jai Gahlot (Maharashtra, IN); Shailesh Marathe (Maharashtra, IN); Abhijit Toley (Maharashtra, IN); Narender Singh Mehra (Uttar Pradesh, IN)
Assignee: Veritas Technologies LLC
G06F3/0665G06F3/067G06F3/0617G06F3/0619G06F3/0659G06F3/0689G06F13/1605G06F11/142
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,079,971
App. No.
15/476,415
Granted
Aug 3, 2021
Kind
B2
Abstract

Disclosed herein are methods, systems, and processes to perform input/output (I/O) fencing without dedicated arbitrators. A coordination storage identifier is stored in a storage device as metadata. The coordination storage identifier is associated with a node of a cluster coupled to the storage device, and an I/O fencing operation is performed using the coordination storage identifier.

Claims (107)

1. A computer-implemented method for use in an appliance, wherein the appliance includes a plurality of nodes configured to access a plurality of data disks, the method comprising:

designating a data disk of the plurality of data disks as a coordinator and data disk, wherein

the data disk is designated as the coordinator and data disk by storing metadata in the data disk, and

the metadata represents a coordination storage identifier;

storing, by a fencing engine, volume manager-compliant data keys on the coordinator and data disk for each of the plurality of nodes, wherein

each volume manager-compliant data key is respectively associated with a node of the plurality of nodes;

storing, by a volume manager of each node, the volume manager-compliant data key for each node on the coordinator and data disk and on data disks shared by the node; and

performing an input/output fencing operation, wherein

the input/output fencing operation comprises

identifying the coordinator and data disk using the coordination storage identifier, and

ejecting the volume manager-compliant data key for at least one node of the plurality of nodes from at least one of the plurality of data disks shared by the at least one node of the plurality of nodes.

2. The computer-implemented method of claim 1 , further comprising:

accessing a configuration file, wherein

the configuration file comprises

the metadata representing the coordination storage identifier and

the volume manager-compliant data key of the node.

3. The computer-implemented method of claim 2 , wherein

the volume manager-compliant data key for a node is generated by the volume manager of the node.

4. The computer-implemented method of claim 3 , further comprising:

identifying at least one of the plurality of data disks as a data disk shared by a node, wherein

identifying at least one the plurality of data disks comprises accessing the volume manager-compliant data key on the data disk shared by the node.

5. The computer-implemented method of claim 4 , further comprising:

determining, by a node, that another node has lost a fencing race;

determining whether the volume manager-compliant data key of the another node has been ejected from the coordinator and data disk by the fencing engine of the node; and

if the volume manager-compliant data key of the another node has not been ejected from the coordinator and data disk by the fencing engine of the node, ejecting the volume manager-compliant data key from the coordinator and data disk.

6. The computer-implemented method of claim 5 , further comprising:

detecting that a cluster of nodes is partitioned into a plurality of network partitions, wherein

the plurality of nodes form the cluster of nodes.

7. The computer-implemented method of claim 6 , further comprising:

executing a fencing race as part of the input/output fencing operation;

determining that the node is a winner node and that the another node is a loser node;

sending a notification to the volume manager of the winner node to eject the volume manager-compliant data key of the loser node from each data disk shared by the another node other than the coordinator and data disk; and

receiving confirmation from the volume manager of the winner node that the volume manager-compliant data key of the another node has been ejected from each data disk shared by the another node other than the coordinator and data disk.

8. The computer-implemented method of claim 7 , wherein

the input/output fencing operation is performed without one or more dedicated arbitrators; and

the input/output fencing operation is performed by the fencing engine and the volume manager of a node on a same set of Small Computer System Interface (SCSI)-3 compliant disks.

9. A non-transitory computer readable storage medium comprising program instructions executable to perform a method for use in an appliance, wherein the appliance includes a plurality of nodes configured to access a plurality of data disks, the method comprising:

designating a data disk of the plurality of data disks as a coordinator and data disk, wherein

the data disk is designated as the coordinator and data disk by storing metadata in the data disk, and

the metadata represents a coordination storage identifier;

storing, by a fencing engine, volume manager-compliant data keys on the coordinator and data disk for each of the plurality of nodes, wherein

each volume manager-compliant data key is respectively associated with a node of the plurality of nodes;

storing, by a volume manager of each node, the volume manager-compliant data key for each node on the coordinator and data disk and on data disks shared by the node; and

performing an input/output fencing operation, wherein

the input/output fencing operation comprises

identifying the coordinator and data disk using the coordination storage identifier, and

ejecting the volume manager-compliant data key for at least one node of the plurality of nodes from at least one of the plurality of data disks shared by the at least one node of the plurality of nodes.

10. The non-transitory computer readable storage medium of claim 9 , wherein the method further comprises:

accessing a configuration file, wherein

the configuration file comprises

the metadata representing the coordination storage identifier and

the volume manager-compliant data key of the node.

11. The non-transitory computer readable storage medium of claim 10 , wherein

the volume manager-compliant data key for a node is generated by the volume manager of the node.

12. The non-transitory computer readable storage medium of claim 11 , wherein the method further comprises:

identifying at least one of the plurality of data disks as a data disk shared by a node, wherein

identifying at least one the plurality of data disks comprises accessing the volume manager-compliant data key on the data disk shared by the node.

13. The non-transitory computer readable storage medium of claim 12 , wherein the method further comprises:

determining, by a node, that another node has lost a fencing race;

determining whether the volume manager-compliant data key of the another node has been ejected from the coordinator and data disk by the fencing engine of the node;

if the volume manager-compliant data key of the another node has not been ejected from the coordinator and data disk by the fencing engine of the node, ejecting the volume manager-compliant data key from the coordinator and data disk;

detecting that a cluster of nodes is partitioned into a plurality of network partitions, wherein

the plurality of nodes form the cluster of nodes, and

executing a fencing race as part of the input/output fencing operation;

determining that the node is a winner node and that the another node is a loser node;

sending a notification to the volume manager of the winner node to eject the volume manager-compliant data key from each data disk shared by the another node other than the coordinator and data disk; and

receiving confirmation from the volume manager of the winner node that the volume manager-compliant data key has been ejected from each data disk shared by the another node other than the coordinator and data disk.

14. The non-transitory computer readable storage medium of claim 13 , wherein

the input/output fencing operation is performed without one or more dedicated arbitrators; and

the input/output fencing operation is performed by the fencing engine and the volume manager on a same set of Small Computer System Interface (SCSI)-3 compliant disks.

15. A computer system comprising:

one or more processors;

and

a computer-readable storage medium communicatively coupled to the one or more processors, wherein the computer-readable storage medium stores program instructions executable by the one or more processors to implement an appliance having a plurality of nodes configured to access a plurality of data disks, the program instructions executable by the one or more processors being further executable by the one or more processors to perform a method comprising

designating a data disk of the plurality of data disks as a coordinator and data disk, wherein

the data disk is designated as the coordinator and data disk by storing metadata in the data disk, and

the metadata represents a coordination storage identifier,

storing, by a fencing engine, volume manager-compliant data keys on the coordinator and data disk for each of the plurality of nodes, wherein

each volume manager-compliant data key is respectively associated with a node of the plurality of nodes,

storing, by a volume manager of each node, the volume manager-compliant data key for each node on the coordinator and data disk and on data disks shared by the node; and

performing an input/output fencing operation, wherein

the input/output fencing operation comprises

identifying the coordinator and data disk using the coordination storage identifier, and

ejecting the volume manager-compliant data key for at least one node of the plurality of nodes from at least one of the plurality of data disks shared by the at least one node of the plurality of nodes.

16. The computer system of claim 15 , wherein the method further comprises:

accessing a configuration file, wherein

the configuration file comprises

the metadata representing the coordination storage identifier and

the volume manager-compliant data key of the node.

17. The computer system of claim 16 , wherein

the volume manager-compliant data key for a node is generated by the volume manager of the node.

18. The computer system of claim 17 , wherein the method further comprises:

identifying at least one of the plurality of data disks as a data disk shared by a node, wherein

identifying at least one the plurality of data disks comprises accessing the volume manager-compliant data key on the data disk shared by the node.

19. The computer system of claim 18 , wherein the method further comprises:

determining, by a node, that another node has lost a fencing race;

determining whether the volume manager-compliant data key of the another node has been ejected from the coordinator and data disk by the fencing engine of the node;

if the volume manager-compliant data key of the another node has not been ejected from the coordinator and data disk by the fencing engine of the node, ejecting the data key from the coordinator and data disk;

detecting that a cluster of nodes is partitioned into a plurality of network partitions, wherein

the plurality of nodes form the cluster of nodes, and

executing a fencing race as part of the input/output fencing operation;

determining that the node is a winner node and that the another node is a loser node;

sending a notification to the volume manager of the winner node to eject the volume manager-compliant data key from each disk shared by the another node other than the coordinator and data disk; and

receiving confirmation from the volume manager that the volume manager-compliant data key has been ejected from each of the plurality of data disks other than the coordinator and data disk.

20. The computer system of claim 19 , wherein

the input/output fencing operation is performed without one or more dedicated arbitrators; and

the input/output fencing operation is performed by the fencing engine and the volume manager on a same set of Small Computer System Interface (SCSI)-3 compliant disks.

Assignments (10)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0931 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2018
From: GOEL, VIKAS; GAHLOT, JAI; MARATHE, SHAILESH; TOLEY, ABHIJIT; MEHRA, NARENDER SINGH
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 044931/0799 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jul 10, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 043141/0403 →
Continuity (1)
Related Publication 20180285221A1 · Oct 4, 2018