Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data
First Claim
1. A method for storing a data file in a storage system having a plurality of storage disks, said method comprising:
- striping said data file across said plurality of storage disks using a plurality of data stripe units and a parity stripe unit;
initially storing said data file in a first format consistent with RAID-1 and RAID-X using a first data stripe unit from said plurality of data stripe units and said parity stripe unit, wherein said parity stripe unit maintains a mirrored copy of a first data contained in said first data stripe unit, and RAID-X refers to a non-mirrored RAID scheme employing an XOR-based error correcting code;
continuing storing said data file in said first format consistent with RAID-1 and RAID-X until the size of said first data exceeds a storage space allocated to said first data stripe unit in one of said storage disks; and
migrating from storing said data file in said first format consistent with RAID-1 and RAID-X to storing said data file in a second format consistent with RAID-X and inconsistent with RAID-1 when the size of said first data exceeds said storage space allocated to said first data stripe unit, said migration being performed without rewriting said first data.
8 Assignments
0 Petitions
Accused Products
Abstract
A data storage methodology wherein a data file is initially stored in a format consistent with RAID-1 and RAID-X and then migrated to a format consistent with RAID-X and inconsistent with RAID-1 when the data file grows in size beyond a certain threshold. Here, RAID-X refers to any non-mirrored storage scheme employing XOR-based error correction coding (e.g., a RAID-5 configuration). Each component object (including the data objects and the parity object) for the data file is configured to be stored in a different stripe unit per object-based secure disk. Each stripe unit may store, for example, 64 KB of data. So long as the data file does not grow beyond the size threshold of a stripe unit (e.g., 64 KB), the parity stripe unit contains a mirrored copy of the data stored in one of the data stripe units because of the exclusive-ORing of the input data with “all zeros” assumed to be contained in empty or partially-filled stripe units. When the file grows beyond the size threshold, the parity stripe unit starts storing parity information instead of a mirrored copy of the file data. Thus, the data file can be automatically migrated from a format consistent with RAID-1 and RAID-X to a format consistent with RAID-X and inconsistent with RAID-1 without the necessity to duplicate or rewrite the stored data.
-
Citations
24 Claims
-
1. A method for storing a data file in a storage system having a plurality of storage disks, said method comprising:
-
striping said data file across said plurality of storage disks using a plurality of data stripe units and a parity stripe unit;
initially storing said data file in a first format consistent with RAID-1 and RAID-X using a first data stripe unit from said plurality of data stripe units and said parity stripe unit, wherein said parity stripe unit maintains a mirrored copy of a first data contained in said first data stripe unit, and RAID-X refers to a non-mirrored RAID scheme employing an XOR-based error correcting code;
continuing storing said data file in said first format consistent with RAID-1 and RAID-X until the size of said first data exceeds a storage space allocated to said first data stripe unit in one of said storage disks; and
migrating from storing said data file in said first format consistent with RAID-1 and RAID-X to storing said data file in a second format consistent with RAID-X and inconsistent with RAID-1 when the size of said first data exceeds said storage space allocated to said first data stripe unit, said migration being performed without rewriting said first data.
-
-
2. A method for storing a data file in a storage system having a plurality of storage disks, said method comprising:
-
striping said data file across said plurality of storage disks using a plurality of data stripe units and a parity stripe unit;
initially storing said data file in a first format consistent with RAID-1 and RAID-5 using a first data stripe unit from said plurality of data stripe units and said parity stripe unit, wherein said parity stripe unit maintains a mirrored copy of a first data contained in said first data stripe unit;
continuing storing said data file in said first format consistent with RAID-1 and RAID-5 until the size of said first data exceeds a storage space allocated to said first data stripe unit in one of said storage disks; and
migrating from storing said data file in said first format consistent with RAID-1 and RAID-5 to storing said data file in a second format consistent with RAID-5 and inconsistent with RAID-1 when the size of said first data exceeds said storage space allocated to said first data stripe unit, said migration being performed without rewriting said first data. - View Dependent Claims (3, 4, 5, 6)
-
-
7. A method for storing a data file object in a storage system having a plurality of storage disks, said method comprising:
-
striping said data file object across said plurality of storage disks using a plurality of data stripe units and one or more parity stripe units, wherein each stripe unit in said plurality of data stripe units and in said one or more parity stripe units is allocated a respective storage space in a different one of said plurality of storage disks;
initially storing said data file object in a first format consistent with RAID-1 and RAID-5 using a first data stripe unit from said plurality of data stripe units and a first parity stripe unit from said one or more parity stripe units, wherein said first parity stripe unit maintains a mirrored copy of a first data contained in said first data stripe unit;
continuing storing said data file object in said first format consistent with RAID-1 and RAID-5 until the size of said first data exceeds said respective storage space allocated to said first data stripe unit; and
migrating from storing said data file object in said first format consistent with RAID-1 and RAID-5 to storing said data file object in a second format consistent with RAID-5 and inconsistent with RAID-1 when the size of said first data exceeds said respective storage space allocated to said first data stripe unit, wherein said migration being performed without rewriting said first data. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. An object-based storage system for storing a data file object comprising:
-
a plurality of object based secure disks (OBDs);
means for treating said data file object as a unitary RAID-5 file object;
means for striping said RAID-5 file object across said plurality of OBDs using a plurality of data stripe units and a parity stripe unit;
means for allocating a respective storage space to each stripe unit in said plurality of data stripe units and said parity stripe unit in a different one of said plurality of OBDs;
means for initially storing said RAID-5 file object as a RAID-1 file object using a first data stripe unit from said plurality of data stripe units and said parity stripe unit, wherein said parity stripe unit maintains a mirrored copy of a first data contained in said first data stripe unit;
means for continuing storing said RAID-5 file object as said RAID-1 file object until the size of said first data exceeds said respective storage space allocated to said first data stripe unit; and
means for migrating from storing said data file object as said RAID-1 file object to said RAID-5 file object when the size of said first data exceeds said respective storage space allocated to said first data stripe unit, wherein said migration being performed without rewriting said first data. - View Dependent Claims (23, 24)
-
Specification