Capacity-aware Dynamic Volume Provisioning For LVM-based Local Storage
summary
A CSI driver that creates LVM logical volumes per node and chooses the node with the most free space (example: picks 100GB over 15GB and 5GB) to satisfy PVCs, implemented with a Kubernetes scheduler extender + CSI topology for filtering and scoring; supports dynamic provisioning, thin provisioning, ext4/xfs and raw block, resizing and snapshots; used in production with over ~100–200 users and >10 external contributors and upstreamed into OpenShift including a surprising mainframe deployment, so it works.
AI-written summary · about
chapters (15)
- 0:00Intro
- 1:13Cybozu's Kubernetes cluster
- 2:19Requirements for local storage
- 3:10What was the best storage driver?
- 3:46Arbitrary volume size
- 5:14Pod scheduling and volume provisioning(1/2)
- 8:17Other features
- 11:44Challenges
- 14:27The parameters of the TopoLVM's scheduler extender
- 15:34CSI topology
- 16:09Example
- 17:46Scheduler extender: Filtering
- 18:20Scheduler extender: Scoring
- 19:21Next plans
- 20:40Conclusion
related talks
35mSmart Capacity-Aware Volume Provisioning for LVM Local Stora...
28mKubernetes Storage Evolution: Enabling High Performance Distributed Datastores
05mLightning Talk: Automate Local Volume Provisioning with Local-Volume-Provisioner
37mKubernetes Storage 101
46mUsing Kubernetes Local Storage for Scale-Out Storage Services
45mThird Party Dynamic Volume Provisioners
30mKubernetes Storage Cheat Sheet for VM Administrators
05mLightning Talk: Automate Local Volume Provisioning with Local-Volume-Provisioner
