khimaros/raid-explorations

raid1c3 in metadata for btrfs

Closed this issue · 2 comments

Hello,

Regarding metadata level on btrfs it's complicated. When you have 3 or more disks it makes sense to have raid1c3 regardless of data level. Only if your kernel does not support it, or you have only 2 disks it must be raid1.
That could explain why raid6 fails:

dm-crypt + btrfs: 30KB corruption on 2/4 raid6 disks
btrfs fails catastrophically in this case despite the corruption being within expected parameters for a raid6 array.

Of course raid5/raid6 is still problematic on btrfs.

mkfs.btrfs -f -m raid1 -d ${RAID_LEVEL} "${CRYPT_DEVICES[@]}"

Thank you for the feedback on this.

I can confirm that btrfs is quite reliable when raid1c3 is used for both data and metadata. I believe the result described in README.md is still positive even though I was using raid1 in the format script. It's possible this was a matter of luck!

I will update the scripts to default the metadata raid level to that of RAID_LEVEL, while allowing config override.

I've updated README.md with explorations of both raid6/raid1c3 and raid1c3/raid1c3. I've re-verified these outcomes and included example configs for each to improve reproducibility. Closing this issue.