Re: [PATCH] BTRFS: Adds an option to select RAID Stripe size

From: Qu Wenruo
Date: Wed Dec 30 2015 - 07:01:15 EST




On 12/30/2015 02:39 PM, Sanidhya Solanki wrote:
On Tue, 29 Dec 2015 18:06:11 +0100
David Sterba <dsterba@xxxxxxx> wrote:

So you want to make the stripe size configurable?...

As I see it there are 3 ways to do it:
-Make it a compile time option that only configures it for a single
system with any devices that are added to the RAID.
-Make it a runtime option that can change based on how the
administrator configures it.
-A non-user facing option that is configurable by someone like a
distribution maintainer for all systems using the Binary Distribution.

Not really sure about the difference between 2 and 3.

When you mention runtime option, did you mean ioctl/mount/balance convert option?

And what's the third one? Default mkfs time option?

If you can make it mkfs time option, it won't be really hard to make it configurable.


As I see it, DS would like something like the third option, but CAM
(ostensibly a SysAdmin) wants the second option.

I didn't consider David means something that.

As far as I read, he means balance convert option along with mkfs option.


On the other hand, I implemented the first option.

At least from what I have learned in recent btrfs development, either we provide a good enough interfaces (normally, balance convert ioctl with mkfs time option) to configure some on-disk fields.

Or we just leave it to fixed value(normally 0, just like for encryption of EXTENT_DATA, and that's the case for current stripe_size).

So fixed kernel value is not a really good idea, and should at least be replace by mkfs time option.


The first and third option can co-exit, the second is an orthogonal
target that needs to be setup separately.

Or we can make all options co-exist, but make it more complicated.

No need.
Just refer to how btrfs kernel handle chunk profile.

It can be specified at mkfs time (by -d and -m options), and can also be converted later by balance ioctl. (by btrfs balance convert filter).

The only tricky thing I am a little considered about is, how do we keep the default chunk stripe size for a fs.

Thanks,
Qu

Please let me know which implementation is preferable, and, if you just
want me to expand the description (as DS' mail asked for) or redo the
entire setup.

Thanks
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/