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:
- (a) providing a stripe across said plurality of storage disks, said stripe comprising a plurality of data stripe units and a parity stripe unit;
(b) storing said data file in a first format consistent with RAID-1 using only a first data stripe unit from said plurality of data stripe units and said parity stripe unit until a size of said data file exceeds an allocated storage space in said first data stripe unit, wherein during step (b) said parity stripe unit maintains a mirrored copy of data contained in said first data stripe unit; and
(c) when the size of the data file exceeds said allocated storage space, storing said data file in a second format consistent with RAID-X and inconsistent with RAID-1 using said first data stripe unit, at least one further data stripe unit and the parity stripe unit wherein no rewriting of the data contained in the first data stripe unit occurs when storage of the data file transitions from said first format to said second format, and wherein RAID-X refers to a non-mirrored RAID scheme employing an XOR-based error correcting code.
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
23 Claims
-
1. A method for storing a data file in a storage system having a plurality of storage disks, said method comprising:
-
(a) providing a stripe across said plurality of storage disks, said stripe comprising a plurality of data stripe units and a parity stripe unit;
(b) storing said data file in a first format consistent with RAID-1 using only a first data stripe unit from said plurality of data stripe units and said parity stripe unit until a size of said data file exceeds an allocated storage space in said first data stripe unit, wherein during step (b) said parity stripe unit maintains a mirrored copy of data contained in said first data stripe unit; and
(c) when the size of the data file exceeds said allocated storage space, storing said data file in a second format consistent with RAID-X and inconsistent with RAID-1 using said first data stripe unit, at least one further data stripe unit and the parity stripe unit wherein no rewriting of the data contained in the first data stripe unit occurs when storage of the data file transitions from said first format to said second format, and wherein RAID-X refers to a non-mirrored RAID scheme employing an XOR-based error correcting code.
-
-
2. A method for storing a data file in a storage system having a plurality of storage disks, said method comprising:
-
(a) providing a stripe across said plurality of storage disks, said stripe comprising a plurality of data stripe units and a parity stripe unit;
(b) storing said data file in a first format consistent with RAID-1 using only a first data stripe unit from said plurality of data stripe units and said parity stripe unit until a size of said data file exceeds an allocated storage space in said first data stripe unit, wherein during step (b) said parity stripe unit maintains a mirrored copy of data contained in said first data stripe unit; and
(c) when the size of the data file exceeds said allocated storage space, storing said data file in a second format consistent with RAID-5 and inconsistent with RAID-1 using said first data stripe unit, at least one further data stripe unit and the parity stripe unit wherein no rewriting of the data contained in the first stripe unit occurs when storage of the data file transitions from said first format to said second format. - 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:
-
(a) providing a stripe across said plurality of storage disks, said stripe comprising 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;
(b) storing said data file object in a first format consistent with RAID-1 using only 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 until a size of said data file object exceeds an allocated storage space in said first data stripe unit, wherein during step (b) said first parity stripe unit maintains a mirrored copy of data contained in said first data stripe unit; and
(c) when the size of the data file object exceeds said allocated storage space, storing said data file object in a second format consistent with RAID-5 and inconsistent with RAID-1 using said first data stripe unit, at least one further data stripe unit and one or more parity stripe units wherein no rewriting of the data contained in the first data stripe unit occurs when storage of the data file object transitions from said first format to said second format. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An object-based storage system for storing a data file object comprising:
-
a plurality of object based secure disks (OBDs);
means for striping said data 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;
first means for storing said data file object in a first format consistent with RAID-1 using only a first data stripe unit from said plurality of data stripe units and said parity stripe unit until a size of said data file object exceeds an allocated storage space in said first data stripe unit, wherein said first means for storing causes said parity stripe unit to maintain a mirrored copy of a data contained in said first data stripe unit; and
second means for storing said data file object in a second format consistent with RAID-5 and inconsistent with RAID-1 using said first data stripe unit, at least one further data stripe unit and said parity stripe unit when the size of said data file object exceeds said allocated storage space, wherein no rewriting of the data contained in the first data stripe unit occurs when storage of the data file object transitions from said first format to said second format. - View Dependent Claims (22, 23)
-
Specification