nativestor
nativestor copied to clipboard
NativeStor provide kubernetes local storage which is light weight and high performance
NativeStor
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.
Supported environments
- Kubernetes: 1.21 1.22
- Node OS: Linux with LVM2
- Filesystems: ext4, xfs
Features
- Storage capacity expand dynamically
- Volume capacity limit
- Prometheus metric and alarm
- Auto discover available devices
- Raw device
OperatorHub.io
NativeStor had been shared in operatorhub.io home.
RoadMap
see our roadmap
Components
-
topolvm csi
: LVM Capacity-aware CSI plugin for Kubernetes -
raw device csi
: Raw Device and Capacity-aware CSI plugin for Kubernetes
Diagram
A diagram of components and the how they work see below:
How topolvm components work
-
operator
watch theTopolvmCluster
(CRD) -
operator
watch theoperator-setting ConfigMap
-
operator
startdiscover devices Daemonset
-
operator
startConfigMap controller
to watchlvmd ConfigMap
ifTopolvmCluster
created -
TopolvmCluster controller
createpreparevg
Job,Topolvm-controller
Deployment depend onTopolvmCluster
-
preparevg
Job on specific node check disk that provided inTopolvmCluster
and create volume group, if volume group created successfully and then createlvmd ConfigMap
for the node -
ConfigMap controller
finds the newlvmd ConfigMap
then createTopolvm-node
Deployment -
TopolvmCluster controller
updateTopolvmCluster
status
How raw device components work
Getting started and Documentation
docs directory contains documents about installation and specifications
NativeStor vs Other local storage Implement
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 |
Docker images
Documentation
docs directory contains documents about designs and specifications.
Report a Bug
For filing bugs, suggesting improvements, or requesting new features, please open an issue.