Self-healing log-structured RAID
First Claim
1. ) A method of storing data on a disk storage subsystem comprising:
- Receiving a request to write data;
Appending each write operation to a first log to identify a storage location of data written to the disk subsystem, wherein the first log consists of a sequence of segments, the segments consist of a sequence of variable length stripes, a length of a stripe varies based on a quantity of disks addressed by a stripe; and
in response to adding a disk to the disk storage subsystem, increasing a length of the stripes and increasing a number of disks available for striping data.
4 Assignments
0 Petitions
Accused Products
Abstract
This invention describes a high-performance, log-structured implementation of a RAID subsystem that can be efficiently implemented in software. The methods described in this invention are extraordinarily well suited for software-based RAID 5 systems. In one embodiment, the disk storage subsystems receiving a request to write data. Thereafter, the write operation is appended to a first log to identify a storage location of data written to the disk subsystem, wherein the first log consists of a sequence of segments, the segments consist of a sequence of variable length stripes, a length of a stripe varies based on a quantity of disks addressed by a stripe. In response to adding a disk to the disk storage subsystem, increasing a length of the stripes and increasing a number of disks available for striping data. Alternatively, in response to a disk failing within the disk storage subsystem or a disk being removed from the disk storage system, narrowing a length of the stripes.
144 Citations
22 Claims
-
1. ) A method of storing data on a disk storage subsystem comprising:
-
Receiving a request to write data;
Appending each write operation to a first log to identify a storage location of data written to the disk subsystem, wherein the first log consists of a sequence of segments, the segments consist of a sequence of variable length stripes, a length of a stripe varies based on a quantity of disks addressed by a stripe; and
in response to adding a disk to the disk storage subsystem, increasing a length of the stripes and increasing a number of disks available for striping data. - View Dependent Claims (2, 3, 4, 5)
-
-
6. ) A method of storing data on a disk storage subsystem comprising:
-
Receiving a request to write data;
Appending each write operation to a first log to identify a storage location of data written to the disk subsystem, wherein the log consists of a sequence of segments, the segments consist of a sequence of variable length stripes, a length of a stripe varies based on a quantity of disks addressed by a stripe; and
in response to a disk failing within the disk storage subsystem or a disk being removed from the disk storage system, narrowing a length of the stripes. - View Dependent Claims (7, 8, 9, 10, 21)
-
-
11. ) A machine readable-medium having stored there on a set of instructions, which when executed, perform a method of storing data on a disk storage subsystem comprising:
-
Receiving a request to write data;
Appending each write operation to a first log to identify a storage location of data written to the disk subsystem, wherein the first log consists of a sequence of segments, the segments consist of a sequence of variable length stripes, a length of a stripe varies based on a quantity of disks addressed by a stripe; and
in response to adding a disk to the disk storage subsystem, increasing a length of the stripes and increasing a number of disks available for striping data. - View Dependent Claims (12, 13, 14, 15)
-
-
16. ) A machine readable-medium having stored there on a set of instructions, which when executed, perform a method of storing data on a disk storage subsystem comprising:
-
Receiving a request to write data;
Appending each write operation to a first log to identify a storage location of data written to the disk subsystem, wherein the log consists of a sequence of segments, the segments consist of a sequence of variable length stripes, a length of a stripe varies based on a quantity of disks addressed by a stripe; and
in response to a disk failing within the disk storage subsystem or a disk being removed from the disk storage system, narrowing a length of the stripes. - View Dependent Claims (17, 18, 19, 20, 22)
-
Specification