Description
Describe the problem/challenge you have
I'd like to be able to use lvm-localpv
with lvmraid
(LVM native RAID) to take advantage of RAID on a VolumeGroup with multiple drives.
Unfortunately LVM does not allow setting default Logical Volume type
s on VolumeGroups (this is probably for the best, complexity wise), so when lvm-localpv
the only way to enforce a non-default type
currently is via thinProvision
.
Describe the solution you'd like
Support for mirroring and other RAID configurations in StorageClass
parameters for lvm-localpv
.
Along with support for RAID configurations I'd like support for the --raidIntegrity
option to allow for some checksums of data on disk.
Anything else you would like to add:
I'd like to work on this, and have a few questions/comments:
- Should I write a design doc? (I'd probably mirror the one for thin provisioning)
- Initially I'm only planning on supporting
raid0
/stripe
,raid
/raid1
/mirror
,raid5
,raid6
, andraid10
VolumeInfo
(which maybe should be namedVolumeParams
) seems to put it's own spin on the settings, so I have a few style-related questions:- Which is better --
Mirror
(mirror
in YAML) orLvType
(lvType
in YAML) ?Mirror
is a bit closer toThinProvision
in spirit,LvType
is a bit more explicit about the passing down of settings - Some of the modes require additional configuration (ex.
--stripes
,--mirrors
,--stripesize
), would that be best as something likeMirrorCount
(mirrorCount
in YAML)?
- Which is better --
Currently I'm using a quite well-known workaround -- running mdraid
(via mdadm
, with dm-integrity
configured) on the two disks below LVM and giving lvm-localpv
a volume group based on /dev/mdX
. I'd like to test LVM-native RAID against mdraid
itself as well ultimately so some support would be great.
Environment:
- LVM Driver version
- Kubernetes version (use
kubectl version
): - Kubernetes installer & version:
- Cloud provider or hardware configuration:
- OS (e.g. from
/etc/os-release
):