NativeStor is an open source cloud-native local storage orchestrator for Kubernetes, which orchestrates topolvm and provides the raw device.
PS:Don't be surprised if you search for Topolvm-operator, NativeStor's original name is Topolvm-operator.
- Kubernetes: 1.21 1.22
- Node OS: Linux with LVM2
- Filesystems: ext4, xfs
- Storage capacity expand dynamically
- Volume capacity limit
- Prometheus metric and alarm
- Auto discover available devices
- Raw device
NativeStor had been shared in operatorhub.io home.
see our roadmap
topolvm csi: LVM Capacity-aware CSI plugin for Kubernetesraw device csi: Raw Device and Capacity-aware CSI plugin for Kubernetes
A diagram of components and the how they work see below:
operatorwatch theTopolvmCluster(CRD)operatorwatch theoperator-setting ConfigMapoperatorstartdiscover devices DaemonsetoperatorstartConfigMap controllerto watchlvmd ConfigMapifTopolvmClustercreatedTopolvmCluster controllercreatepreparevgJob,Topolvm-controllerDeployment depend onTopolvmClusterpreparevgJob on specific node check disk that provided inTopolvmClusterand create volume group, if volume group created successfully and then createlvmd ConfigMapfor the nodeConfigMap controllerfinds the newlvmd ConfigMapthen createTopolvm-nodeDeploymentTopolvmCluster controllerupdateTopolvmClusterstatus
docs directory contains documents about installation and specifications
| nfs | rook ceph | longhorn | host path | topolvm | |
|---|---|---|---|---|---|
| filesystem | yes | yes | yes | yes | yes |
| filesystem type | nfs | ext4/xfs | driver specific | ext4/xfs | ext4/xfs |
| block | no | yes (rbd) | yes | no | yes |
| bandwidth | standard | high | high | high | high |
| IOPS | standard | standard | standard | high | high |
| latency | standard | standard | standard | low | low |
| snapshot | no | yes | yes | no | no |
| clone | no | yes | no | no | no |
| quota | no | yes | yes | no | yes |
| access mod | ReadWriteOnce ReadOnlyMany ReadWriteMany | ReadWriteOnce ReadOnlyMany ReadWriteMany | ReadWriteOnce ReadOnlyMany | ReadWriteOnce | ReadWriteOnce ReadWriteOncePod |
| resizing | yes | yes | yes | yes | yes |
| data redundancy | Hardware RAID | yes | yes | Hardware RAID | Hardware RAID |
| protocol type | nfs | rados | iscsi | fs | lvm |
| ease of maintainess | driver specific | high maintainess effort | medium | medium | ops-free |
| usage scenarios | general storage | extremly scalability | container attach storage | temporary data | high performance block device for cloudnative applications |
docs directory contains documents about designs and specifications.
For filing bugs, suggesting improvements, or requesting new features, please open an issue.