High-performance NVMe/TCP (NVMe-over-Fabrics) CSI Driver for Kubernetes
simplyblock-csi
is the official simplyblock storage plugin for Kubernetes.
The simplyblock CSI extension delivers high-performance block storage to Kubernetes. Simplyblock leverages SPDK and NVMe-over-TCP to implement a high-performance and ultra-low latency storage solution.
Simplyblock's CSI driver enables enterprise-grade, NVMe/TCP-powered block storage directly inside Kubernetes, offering high performance, scalability, and resilience without the need for specialized hardware or vendor lock-in. It supports dynamic provisioning, snapshots, and seamless integration via the Container Storage Interface (CSI).
With simplyblock, you can seamlessly integrate software-defined storage (SDS) into your Kubernetes environment, enabling support for advanced features like:
- β‘ Ultra-low latency: Unlock performance with NVMe-over-TCP
- π§© Native Proxmox integration: Manage volumes directly in Kubernetes
- π‘οΈ Enterprise data services: Snapshots, clones, erasure coding, multi-tenancy
- π Secure & robust: Cluster authentication and Quality of Service (QoS)
- βοΈ Cloud & on-prem flexibility: Deploy into any Kubernetes-based distribution
π For full documentation, see the Simplyblock Kubernetes Deployment Guide.
Feature | Benefit |
---|---|
Dynamic Volume Provisioning | Dynamically provision and lifecycle-manage persistent volumes in Kubernetes |
NVMe/TCP Support | High throughput, low latency storage over standard Ethernet |
Snapshots & Clones | Efficient data protection and instant provisioning |
Erasure Coding | Fault-tolerant, space-efficient redundancy |
Multi-tenancy & QoS | Isolated tenants with guaranteed IOPS, bandwidth, and latency |
Resilient Networking | Supports redundant or isolated storage/control networks |
Auto-Reconnect | Automatic reconnection of NVMe devices after network or host failures |
Branch/Tag | Kubernetes Version | Stability |
---|---|---|
master |
1.21+ | Stable |
v0.1.0 |
1.21+ | Beta |
v0.1.1 |
1.21+ | Stable |
The following section describes the installation of the CSI driver only. If you want to install a full simplyblock storage cluster into Kubernetes, please refer to the full documentation: Simplyblock Kubernetes Deployment Guide.
Ensure your cluster meets the requirements:
-
Kernel NVMe/TCP driver is loaded:
modprobe nvme-tcp lsmod | grep 'nvme_'
You should see nvme_tcp
, nvme_fabrics
, and related modules.
To make it persistent, add to /etc/modules-load.d/nvme-tcp.conf
or /etc/modules
depending on your distro.
helm repo add simplyblock-csi https://install.simplyblock.io/helm
helm repo update
export CLUSTER_UUID="<CLUSTER_ID>"
export CLUSTER_SECRET="<CLUSTER_SECRET>"
export CNTR_ADDR="<CONTROL_PLANE_ADDR>"
export POOL_NAME="<STORAGE_POOL_NAME>"
helm install -n simplyblock-csi --create-namespace simplyblock-csi simplyblock-csi/spdk-csi \
--set csiConfig.simplybk.uuid=${CLUSTER_UUID} \
--set csiConfig.simplybk.ip=${CNTR_ADDR} \
--set csiSecret.simplybk.secret=${CLUSTER_SECRET} \
--set logicalVolume.pool_name=${POOL_NAME}
Verify the deployment:
kubectl -n simplyblock-csi get pods -l release=simplyblock-csi
You should see controller and node pods in the Running
state.
Simplyblock supports different Kubernetes deployment topologies:
-
Disaggregated Setup Storage nodes on dedicated worker nodes or separate clusters; CSI driver connects client clusters to storage. π Docs
-
Hyper-Converged Setup CSI driver runs alongside storage and workloads in the same cluster, enabling local storage affinity and simplified topology. π Docs
For details, see the Kubernetes Deployment Guide.
Once deployed, you can manage persistent volumes using standard Kubernetes objects:
- StorageClasses
- PersistentVolumeClaims
- Volume Snapshots
- Clones and resizing
- QoS policies via CSI driver
See full examples in the Usage Guide.
-
Verify CSI pods are running:
kubectl -n simplyblock-csi get pods
-
Check logs for a node or controller pod:
kubectl -n simplyblock-csi logs <pod-name>
For advanced troubleshooting, monitoring, and maintenance guidance, see the Operations Docs.
This project is licensed under the Apache 2.0 License β see the LICENSE file for details.
We welcome contributions!
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature
) - Commit your changes with a clear message
- Push to your fork and open a Pull Request
Please review the CONTRIBUTING.md for details.
- π Documentation
- π GitHub Issues
- π Simplyblock Website
Maintained by the simplyblock team.
Unlock NVMe-grade performance for your Kubernetes workloads with Simplyblock CSI.