Project Status: Testing for production
- Node OS
- Linux with LVM2
- Dynamic provisioning: Volumes are created dynamically when
PersistentVolumeClaimobjects are created.
- Raw block volume: Volumes are available as block devices inside containers.
- Topology: TopoLVM uses CSI topology feature to schedule Pod to Node where LVM volume exist.
- Extended scheduler: TopoLVM extends the general Pod scheduler to prioritize Nodes having larger storage capacity.
A diagram of components is available in docs/design.md.
This repository contains these programs:
csi-topolvm: Unified CSI driver.
lvmd: gRPC service to manage LVM volumes.
lvmetrics: A DaemonSet sidecar container to expose storage metrics as Node annotations.
topolvm-scheduler: A scheduler extender for TopoLVM.
topolvm-node: A sidecar to communicate with CSI controller over TopoLVM custom resources.
topolvm-hook: A MutatingAdmissionWebhook for
lvmd is a standalone program that should be run on Node OS as a systemd service.
Other programs are packaged into container images.
For production deployments, see deploy directory.
docs directory contains documents about designs and specifications.