Close RAID5/6 Write Hole with a Journal as provided by Kernel 4.11


Recommended Posts

The RAID5/6 write hole is one of the remaing data integrity risks. Since 4.11 the Linux kernel has support for a journal device where writes to the array and parity are journaled for a number of stripes before they are written to the array devices. This can help in a case of crash to redo the last write operation and/or use the journaled data to reconstruct inconsistent information. Maybe this could be leveraged for unraid (or implemented in another way), in particular because unraid already is based heavily on a cache drive where this data could be written to. Even if this would require an additonal (smaller) ssd drive, it seems a like a good idea to add in unraid. Performance wise it should not really have in impact as these writes are on an SSD device and can be done in parallel to the array writes.

The relevant changes in the linux kernel:

Kernel 4.11.x: Journaled RAID4/5/6 to close the write hole

Based in work started in Linux 4.4, this release adds journalling support to RAID4/5/6 in the MD layer (not to be confused with btrfs RAID). With a journal device configured (typically NVRAM or SSD), the "RAID5 write hole" is closed - a crash during degraded operations cannot result in data corruption.

Recommended LWN article: A journal for MD/RAID5

Blog entry: Improving software RAID with a write-ahead log

Code: commit

 

Sorry for the Bold Face, but somehow the editior refuses to change it.

Edited by Videodr0me
  • Upvote 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.