| CPC G06F 11/108 (2013.01) [G06F 11/1096 (2013.01)] | 16 Claims |

|
1. A storage system, comprising:
a main data storage on a plurality of storage devices associated with a redundant array of independent disks (RAID) group;
a non-volatile journal storage associated with the main data storage also stored on the plurality of storage devices, wherein the non-volatile journal storage comprises a journal data storage portion and a journal metadata storage portion, wherein the journal data storage portion comprises respective journal data spaces across the plurality of storage devices and the journal metadata storage portion comprises respective journal metadata spaces across the plurality of storage devices;
a RAID controller configured to:
write a record of a new write operation to the non-volatile journal storage including to:
compute a set of parity chunks and a set of data chunks associated with new data associated with the new write operation based at least in part on a RAID level associated with the RAID group;
write the set of parity chunks and the set of data chunks to the respective journal data spaces of a first at least subset of the plurality of storage devices; and
write redundant sets of metadata associated with the new write operation to the respective journal metadata spaces of a second at least subset of the plurality of storage devices;
after the record of the new write operation is written to the non-volatile journal storage, write the set of parity chunks and the set of data chunks to the main data storage; and
after the new data associated with the new write operation is written to the main data storage, invalidate the record of the new write operation in the non-volatile journal storage; and
wherein upon restarting the plurality of storage devices associated with the RAID group, the non-volatile journal storage is checked and one or more write operations associated with valid records in the non-volatile journal storage are performed on the main data storage.
|