Message ID | 20191213040915.3502922-5-naohiro.aota@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: zoned block device support | expand |
On 12/12/19 11:08 PM, Naohiro Aota wrote: > Supporting the RAID5/6 profile in HMZONED mode is not trivial. For example, > non-full stripe writes will cause overwriting parity blocks. When we do a > non-full stripe write, it writes to the parity block with the data at that > moment. Then, another write to the stripes will try to overwrite the parity > block with new parity value. However, sequential zones do not allow such > parity overwriting. > > Furthermore, using RAID5/6 on SMR drives, which usually have a huge > capacity, incur large overhead of rebuild. Such overhead can lead to higher > to higher volume failure rate (e.g. additional drive failure during > rebuild) because of the increased rebuild time. > > Thus, let's disable RAID5/6 profile in HMZONED mode for now. > > Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> > Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com> Reviewed-by: Josef Bacik <josef@toxicpanda.com> Thanks, Josef
diff --git a/fs/btrfs/hmzoned.c b/fs/btrfs/hmzoned.c index 0182bfb9c903..1b24facd46b8 100644 --- a/fs/btrfs/hmzoned.c +++ b/fs/btrfs/hmzoned.c @@ -236,6 +236,13 @@ int btrfs_check_hmzoned_mode(struct btrfs_fs_info *fs_info) goto out; } + /* RAID56 is not allowed */ + if (btrfs_fs_incompat(fs_info, RAID56)) { + btrfs_err(fs_info, "HMZONED mode does not support RAID56"); + ret = -EINVAL; + goto out; + } + fs_info->zone_size = zone_size; btrfs_info(fs_info, "HMZONED mode enabled, zone size %llu B",