IP Library Granted Patent US 7,937,421
Granted Patent B2
US 7,937,421 · App. 10/714,326 · Granted May 3, 2011

Systems and methods for restriping files in a distributed file system

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 7,937,421
App. No.
10/714,326
Granted
May 3, 2011
Kind
B2
Abstract

Systems and methods for restriping files distributed among a set of smart storage units, wherein data blocks for a particular stripe do not typically need to be located at any particular location on the storage units, wherein data can be typically restriped among the smart storage units with minimal data movement, and wherein data is typically protected and recoverable even if a system failure occurs during the restriping process.

Claims (37)

1. A distributed file storage system comprising:

multiple storage units configured to communicate with each other, each storage unit comprising a storage device, a processor, and at least one executable software module stored on the storage unit, the processor configured to execute the at least one executable software module;

a first file stored on the distributed file system in a first set of a plurality of stripes, the first file comprising multiple data blocks, each of the first set of a plurality of stripes comprising a subset of the multiple data blocks, wherein at least a first one of the multiple data blocks is stored on a first one of the multiple storage units and at least a second one of the multiple data blocks is stored on a second one of the multiple storage units;

error correction data related to the first file stored on the distributed file system wherein the error correction data is configured to be used in conjunction with available data blocks to reconstruct the first file;

a first metadata block associated with the first file stored on a third one of the multiple storage units, the first metadata block comprising an address location of each of the multiple data blocks of a stripe stored on the distributed file system and at least one address location of error correction data stored on the distributed file system;

a second file stored on the distributed file system in a second set of a plurality of stripes;

a second metadata block associated with the second file stored on a fourth one of the multiple storage units which is different than the third one of the multiple storage units, wherein the second metadata block is different than the first metadata block;

wherein the at least one executable software module of each storage unit is configured to:

access one or more metadata blocks stored on one or more different storage units;

restripe, according to one or more preferences, at least a portion of the first file among two or more of the multiple storage units, wherein the one or more preferences comprise one or more of the following: minimizing movement of data, distributing the at least a portion of the first file or at least a portion of the error correction data among two or more of an optimal or preferred subset of the multiple storage units, distributing the at least a portion of the first file or at least a portion of the error correction data among two or more of an optimal or preferred ordered subset of the multiple storage units, or distributing the at least a portion of the first file or at least a portion of the error correction data based on one or more performance metrics;

restripe, according to the one or more preferences, at least a portion of the error correction data among two or more of the multiple storage units; and

update the first metadata block to include a new address location for each of the multiple data blocks that was restriped and a new address location for each of the error correction data that was restriped, wherein the new address location includes data locations on different storage units.

2. The distributed file system of claim 1 wherein the software module is further configured to minimize movement of data during restriping.

3. The distributed file system of claim 1 wherein the software module is further configured to initiate restriping in response to a predetermined change in the distributed file system.

4. The distributed file system of claim 3 wherein the predetermined change includes an indication to change the first file's protection scheme from a first protection scheme to a second, different protection scheme.

5. The distributed file system of claim 3 wherein the predetermined change includes an indication to add one or more additional storage units.

6. The distributed file system of claim 3 wherein the predetermined change includes an indication to respond to one or more failed storage units.

7. The distributed file system of claim 3 wherein the predetermined change includes an indication to remove one or more existing storage units.

8. The distributed file system of claim 1 wherein an address location comprises at least an indication of a storage unit on which the data is stored and a memory block address.

9. The distributed file system of claim 1 wherein the error correction data includes at least one of parity data blocks and mirrored data blocks.

10. The distributed file system of claim 1 wherein each of the storage units is configured to store data and respond to and implement read requests on behalf of the distributed file system.

11. The distributed file system of claim 1 wherein one of the storage units is configured to store data and another one of the storage devices is configured to respond to and implement read requests on behalf of the distributed file system.

12. The distributed file system of claim 1 wherein the first, second, and third storage units are different storage units.

13. A distributed file storage system comprising:

multiple storage units configured to communicate with each other, each storage unit comprising a storage device, a processor, and at least one executable software module;

a first data file stored on the distributed file system in multiple stripes, the first data file comprising multiple data blocks, each of the multiple stripes comprising a subset of the multiple data blocks, wherein the multiple data blocks are distributed among a subset of two or more said multiple storage units;

error correction data related to the first data file comprising multiple error correction blocks, the multiple error correction blocks distributed among a subset of two or more said multiple storage units;

a first metadata associated with the first data file, the first metadata stored on at least one of the multiple storage units and comprising locations of each of said multiple data blocks of each stripe of the first data file and locations of each of said multiple error correction blocks; and

a second metadata associated with a second data file, wherein the second metadata is different than the first metadata;

wherein the location of the first metadata is not dependent on the locations of each of said multiple data blocks, the locations of each of said multiple error correction blocks, or the location of the second metadata; and

wherein said at least one executable software module of each storage unit is configured to:

access metadata stored on a different storage unit;

reconstruct at least a subset of said multiple data blocks using at least a subset of said multiple error correction blocks and a subset of said multiple data blocks;

redistribute at least a subset of said multiple data blocks among a subset of two or more said multiple storage units based on one or more preferences, wherein the one or more preferences comprise one or more of the following: minimizing movement of data, distributing the at least a portion of the first file or at least a portion of the error correction data among two or more of an optimal or preferred subset of the multiple storage units, distributing the at least a portion of the first file or at least a portion of the error correction data among two or more of an optimal or preferred ordered subset of the multiple storage units, or distributing the at least a portion of the first file or at least a portion of the error correction data based on one or more performance metrics;

redistribute at least a subset of said multiple error correction blocks among a subset of two or more said multiple storage units based on the one or more preferences;

update the first metadata to include a new location for one or more of said multiple data blocks; and

update the first metadata to include a new location for one or more of said multiple error correction blocks.

Assignments (21)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2011
From: IVY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 026083/0036 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2011
From: ISILON SYSTEMS LLC
To: IVY HOLDING, INC.
Reel/Frame 026069/0925 →
MERGER Recorded Mar 31, 2011
From: ISILON SYSTEMS, INC.
To: ISILON SYSTEMS LLC
Reel/Frame 026066/0785 →
RELEASE Recorded Oct 26, 2010
From: SILICON VALLEY BANK
To: ISILON SYSTEMS, INC.
Reel/Frame 025192/0863 →
RELEASE Recorded Oct 26, 2010
From: SILICON VALLEY BANK
To: ISILON SYSTEMS, INC.
Reel/Frame 025192/0566 →
RELEASE Recorded Oct 26, 2010
From: SILICON VALLEY BANK
To: ISILON SYSTEMS, INC.
Reel/Frame 025192/0568 →
RELEASE OF SECURITY INTEREST Recorded Oct 15, 2010
From: HORIZON TECHNOLOGY FUNDING COMPANY LLC
To: ISILON SYSTEMS, INC.
Reel/Frame 025173/0542 →
SECURITY AGREEMENT Recorded Nov 22, 2006
From: ISILON SYSTEMS, INC.
To: HORIZON TECHNOLOGY FUNDING COMPANY LLC
Reel/Frame 018613/0916 →
SECURITY INTEREST Recorded Aug 15, 2005
From: ISILON SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 016887/0906 →
SECURITY AGREEMENT Recorded Jan 19, 2005
From: ISILON SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 016168/0547 →
SECURITY AGREEMENT Recorded Jul 1, 2004
From: ISILON SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 015512/0151 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2004
From: MIKESELL, PAUL A.; ANDERSON, ROB; PASSEY, AARON JAMES; GODMAN, PETER JOHN; KHAN, HASSAN F.; SCHACK, DARREN P.
To: ISILON SYSTEMS, INC.
Reel/Frame 015218/0980 →