[lvm-devel] RAID: Allow implicit stripe (and parity) when creating RAID LVs

Zdenek Kabelac zkabelac at redhat.com
Tue Feb 11 10:25:07 UTC 2014


Dne 11.2.2014 00:27, Jonathan Brassow napsal(a):
> There are typically 2 functions for the more advanced segment types that
> deal with parameters in lvcreate.c: _get_*_params() and _check_*_params().
> (Not all segment types name their functions according to this scheme.)
> The former function is responsible for reading parameters before the VG
> has been read.  The latter is for sanity checking and possibly setting
> parameters after the VG has been read.
>
> This patch adds a _check_raid_parameters() function that will determine
> if the user has specified 'stripe' or 'mirror' parameters.  If not, the
> proper number is computed from the list of PVs the user has supplied or
> the number that are available in the VG.  Now that _check_raid_parameters()
> is available, we move the check for proper number of stripes from
> _get_* to _check_*.
>
> This gives the user the ability to create RAID LVs as follows:
> # 5-device RAID5, 4-data, 1-parity (i.e. implicit '-i 4')
> ~> lvcreate --type raid5 -L 100G -n lv vg /dev/sd[abcde]1
>
> # 5-device RAID6, 3-data, 2-parity (i.e. implicit '-i 3')
> ~> lvcreate --type raid6 -L 100G -n lv vg /dev/sd[abcde]1
>
> # If 5 PVs in VG, 5-device RAID5
> ~> lvcreate --type raid5 -L 100G -n lv vg
>

I guess you can't change the stable command line API - since you would break
all existing scripts.

What you could probably do is to add new  command line option like i.e.:

--bestfit

or something similar with this meaning.

Zdenek




More information about the lvm-devel mailing list