IP Library Granted Patent US 11,226,861
Granted Patent B1
US 11,226,861 · App. 16/784,012 · Granted Jan 18, 2022

Systems and methods for distributing information across failure domains in servers

Inventors: Anindya Banerjee (Pune, IN); Shailesh Marathe (Pune, IN)
Assignee: Veritas Technologies LLC
G06F11/1076G06F3/067G06F3/0619G06F3/0632G06F3/0644G06F3/0647
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,226,861
App. No.
16/784,012
Granted
Jan 18, 2022
Kind
B1
Abstract

The disclosed computer-implemented method for distributing information across failure domains in servers may include (1) dividing, at a computing device, each of a quantity of “K” failure domains (FDs) in a plurality of FDs into a quantity of “P” portions, where the “K” FDs in the plurality of FDs are constituent parts of respective servers in a plurality of servers, “P” is less than “K,” and “P” is a sum of a quantity of “M” data portions and a quantity of “N” parity portions, (2) creating a quantity of “K” erasure-coded volumes in the “K” FDs, where each erasure-coded volume includes “M” data portions and “N” parity portions, and each portion in each erasure-coded volume is stored in a different FD and (3) combining the “K” volumes to create a file system. Various other methods, systems, and computer-readable media are also disclosed.

Claims (59)

1. A computer-implemented method for distributing information across failure domains in servers, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

dividing, by the computing device, each of a quantity of “K” failure domains (FDs) in a plurality of FDs into a quantity of “P” portions, wherein:

the “K” FDs in the plurality of FDs are constituent parts of respective servers in a plurality of servers;

“P” is less than “K”; and

“P” is a sum of a quantity of “M” data portions and a quantity of “N” parity portions;

creating a quantity of “K” erasure-coded volumes in the “K” FDs, wherein:

each erasure-coded volume includes “M” data portions and “N” parity portions; and

each portion in each erasure-coded volume is stored in a different FD; and

combining the “K” volumes to create a file system,

wherein the computing device is a storage device controller.

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

adding a new FD to the plurality of FDs; and

dividing the new FD into “P” portions.

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

moving data information and parity information to portions of the new FD from portions of other FDs in the plurality of FDs; and

creating a new volume from the portions of the other FDs in the plurality of FDs from which the data information and parity information was moved.

4. The computer-implemented method of claim 3 , further comprising adding the new volume to the file system.

5. The computer-implemented method of claim 1 , wherein each of the “P” portions store information as a part of a striped storage scheme.

6. The computer-implemented method of claim 1 , wherein each FD in the plurality of FDs stores data portions and parity portions for different volumes.

7. The computer-implemented method of claim 1 , wherein the respective servers are nodes.

8. A system for distributing information across failure domains in servers in servers, the system comprising:

a dividing module, stored in a memory, that divides each of a quantity of “K” failure domains (FDs) in a plurality of FDs into a quantity of “P” portions, wherein:

the “K” FDs in the plurality of FDs are constituent parts of respective servers in a plurality of servers;

“P” is less than “K”; and

“P” is a sum of a quantity of “M” data portions and a quantity of “N” parity portions;

a creating module, stored in a memory, that creates a quantity of “K” erasure-coded volumes in the “K” FDs, wherein:

each erasure-coded volume includes “M” data portions and “N” parity portions; and

each portion in each erasure-coded volume is stored in a different FD;

a combining module, stored in a memory, that combines the “K” volumes to create a file system; and

at least one physical processor in a storage device controller that executes the dividing module, the creating module, and the combining module.

9. The system of claim 8 , further comprising:

adding a new FD to the plurality of FDs; and

dividing the new FD into “P” portions.

10. The system of claim 9 , further comprising:

moving data information and parity information to portions of the new FD from portions of other FDs in the plurality of FDs; and

creating a new volume from the portions of the other FDs in the plurality of FDs from which the data information and parity information was moved.

11. The system of claim 10 , further comprising adding the new volume to the file system.

12. The system of claim 8 , wherein each of the “P” portions store information as a part of a striped storage scheme.

13. The system of claim 8 , wherein each FD in the plurality of FDs stores data portions and parity portions for different volumes.

14. The system of claim 8 , wherein the respective servers are nodes.

15. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

divide, by the computing device, each of a quantity of “K” failure domains (FDs) in a plurality of FDs into a quantity of “P” portions, wherein:

the “K” FDs in the plurality of FDs are constituent parts of respective servers in a plurality of servers;

“P” is less than “K”; and

“P” is a sum of a quantity of “M” data portions and a quantity of “N” parity portions;

create a quantity of “K” erasure-coded volumes in the “K” FDs, wherein:

each erasure-coded volume includes “M” data portions and “N” parity portions; and

each portion in each erasure-coded volume is stored in a different FD; and

combine the “K” volumes to create a file system,

wherein the computing device is a storage device controller.

16. The non-transitory computer-readable medium of claim 15 , wherein the computer-executable instructions comprise computer-executable instructions that, when executed by the at least one processor of the computing device, cause the computing device to:

add a new FD to the plurality of FDs; and

divide the new FD into “P” portions.

17. The non-transitory computer-readable medium of claim 16 , wherein the computer-executable instructions comprise computer-executable instructions that, when executed by the at least one processor of the computing device, cause the computing device to:

move data information and parity information to portions of the new FD from portions of other FDs in the plurality of FDs; and

create a new volume from the portions of the other FDs in the plurality of FDs from which the data information and parity information was moved.

18. The non-transitory computer-readable medium of claim 17 , wherein the computer-executable instructions comprise computer-executable instructions that, when executed by the at least one processor of the computing device, cause the computing device to add the new volume to the file system.

19. The non-transitory computer-readable medium of claim 15 , wherein each of the “P” portions store information as a part of a striped storage scheme.

20. The non-transitory computer-readable medium of claim 15 , wherein the respective servers are nodes.

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: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0951 →
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 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELESAE OF SECURITY INTEREST IN PATENTS AT R/F 053640/0780 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0492 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Aug 31, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 053640/0780 →
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 Jul 31, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 053373/0367 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2020
From: BANERJEE, ANINDYA; MARATHE, SHAILESH
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 051749/0995 →