From: Song Liu Date: Wed, 21 Oct 2015 18:35:15 +0000 (-0700) Subject: mdadm: Add description of write journal to md.4 X-Git-Tag: mdadm-3.4~39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=28f83f6d3b1b3b386e60b45848b9284e2238f77f;p=thirdparty%2Fmdadm.git mdadm: Add description of write journal to md.4 Signed-off-by: Song Liu Signed-off-by: Shaohua Li Signed-off-by: NeilBrown --- diff --git a/md.4 b/md.4 index e955c3b4..f1b88ee6 100644 --- a/md.4 +++ b/md.4 @@ -874,6 +874,26 @@ The list is particularly useful when recovering to a spare. If a few blocks cannot be read from the other devices, the bulk of the recovery can complete and those few bad blocks will be recorded in the bad block list. +.SS RAID456 WRITE JOURNAL + +Due to non-atomicity nature of RAID write operations, interruption of +write operations (system crash, etc.) to RAID456 array can lead to +inconsistent parity and data loss (so called RAID-5 write hole). + +To plug the write hole, from Linux 4.4 (to be confirmed), +.I md +supports write ahead journal for RAID456. When the array is created, +an additional journal device can be added to the array through +.IR write-journal +option. The RAID write journal works similar to file system journals. +Before writing to the data disks, md persists data AND parity of the +stripe to the journal device. After crashes, md searches the journal +device for incomplete write operations, and replay them to the data +disks. + +When the journal device fails, the RAID array is forced to run in +read-only mode. + .SS WRITE-BEHIND From Linux 2.6.14,