Skip to content

simplyblock/simplyblock-csi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Simplyblock CSI Driver for Kubernetes

High-performance NVMe/TCP (NVMe-over-Fabrics) CSI Driver for Kubernetes

Documentation Issues


πŸš€ Overview

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.


✨ Features

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

Kubernetes Version Support

Branch/Tag Kubernetes Version Stability
master 1.21+ Stable
v0.1.0 1.21+ Beta
v0.1.1 1.21+ Stable

πŸ“¦ Getting Started

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.

1. Prerequisites

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.

2. Install via Helm (Recommended)

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.

Storage Cluster Installation in Kubernetes

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.


πŸ–₯️ Usage

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.


πŸ› οΈ Troubleshooting & Operations

  • 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.


πŸ“„ License

This project is licensed under the Apache 2.0 License β€” see the LICENSE file for details.


πŸ“š Documentation


🀝 Contributing

We welcome contributions!

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes with a clear message
  4. Push to your fork and open a Pull Request

Please review the CONTRIBUTING.md for details.


πŸ“¬ Support

Maintained by the simplyblock team.


Unlock NVMe-grade performance for your Kubernetes workloads with Simplyblock CSI.