You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Existing Issue: #12309
We've had some discussion regarding adding LVM capabilities in talos, here
Addressing the first question would be do we even need to introduce LVM in talos.
First of all, CSIs (as far as I know) today happily manage LVM volumes without any Talos involvement, so I'm not sure why we need to introduce any concept of it to Talos.
To be clear Volumes in talos can be defined as a disk/partition/director/overlay mount, talos handles static provisioning really well, for any k8s use case we can use UserVolumes.
Their are few scenarios where the need for LVM arises:
When multiple physical disks need to be pooled into a single logical storage pool that workloads can consume as one volume.
Gradual storage expansion by adding new disks over time without reconfiguring applications or Pods.
Resizing volumes (primarily growing) without recreating disks or redeploying workloads.
Strong per-workload storage isolation, preventing one Pod from exhausting disk space and impacting others.
Disk replacement and maintenance on a node without stopping workloads or losing data.
Use of Volume Layouts like striping or mirroring
Fast, point-in-time snapshots for short-term rollback or experimentation.
Cloning volumes for development, testing, or CI workloads.
We can have LVM in talos using any csi drivers like csi-driver-lvm or topolvm
But there are multiple limitations which needs to be addressed while using these, topolvm-limitations
I tried using csi-driver-lvm in my initial attempts.
First attempt: The cluster broke because csi-driver-lvm was installed without restricting it to worker nodes. The driver attempted pvcreate on the Talos system disk, CSI drivers will destroy the OS disk if allowed.
Second attempt: After restricting the driver to worker nodes, the pod started but failed with failed to mkdir "/etc/lvm/backup": read-only file system, as the CSI driver assumed /etc/lvm was writable.
Final attempt: Reinstalled the CSI driver with lvm.hostWritePath=/var/lib/lvm, after which the driver started successfully and LVM provisioning worked as expected.
Later setting up a pod and pvc with proper storage class worked fine:
If these points make a strong case for adding LVM support in Talos, we can further discuss relevant use cases and scenarios, and how such support could improve usability , as done in common config
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Existing Issue: #12309
We've had some discussion regarding adding LVM capabilities in talos, here
Addressing the first question would be do we even need to introduce LVM in talos.
To be clear Volumes in talos can be defined as a
disk/partition/director/overlay mount, talos handles static provisioning really well, for any k8s use case we can use UserVolumes.Their are few scenarios where the need for LVM arises:
We can have LVM in talos using any csi drivers like csi-driver-lvm or topolvm
But there are multiple limitations which needs to be addressed while using these, topolvm-limitations
I tried using
csi-driver-lvmin my initial attempts.csi-driver-lvmwas installed without restricting it to worker nodes. The driver attemptedpvcreateon the Talos system disk, CSI drivers will destroy the OS disk if allowed.failed to mkdir "/etc/lvm/backup": read-only file system, as the CSI driver assumed/etc/lvmwas writable.lvm.hostWritePath=/var/lib/lvm, after which the driver started successfully and LVM provisioning worked as expected.Later setting up a pod and pvc with proper storage class worked fine:
IMHO, this way works fine, we should work on LVM support in Talos if it simplifies the user experience and helps avoid the following issues:
If these points make a strong case for adding LVM support in Talos, we can further discuss relevant use cases and scenarios, and how such support could improve usability , as done in common config
Beta Was this translation helpful? Give feedback.
All reactions