Skip to content

jeff-roche/kubesan

 
 

Repository files navigation

The KubeSAN CSI Plugin

KubeSAN is a CSI plugin for Kubernetes that enables you to provision volumes backed by a single, cluster-wide, shared block device (e.g., a single big LUN on a SAN), exposed as a shared Volume Group under lvm2.

Whilst SANs often come with vendor CSI plugins, they cannot always be used. KubeSAN is intended for cases where:

  • No vendor CSI plugin is available, the vendor plugin is broken, or lacks features.
  • The vendor CSI plugin cannot be used due to organizational reasons (storage team does not want to give Kubernetes team access).
  • 1 SAN LUN per PersistentVolume is undesirable for scalability or organizational reasons.

In these cases KubeSAN steps in to provide storage without help from a vendor CSI plugin.

Diagram showing KubeSAN volumes backed by a SAN LUN

Features:

  • Dynamic provisioning of Block and Filesystem volumes
  • Snapshots
  • Cloning
  • ReadWriteMany (RWX) support for Block volumes
  • Thin provisioning

Roadmap:

  • Recovery after power failure. Currently requires manual intervention.
  • Volume expansion
  • Instant volume cloning via background copy

Documentation

  1. Getting started
  2. Architecture
  3. Development

Reporting issues

Create an issue on GitLab or send an email to [email protected].

License

This project is released under the Apache 2.0 license. See LICENSE.

About

Fork of the KubeSAN CSI Plugin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 62.6%
  • Shell 34.8%
  • Makefile 1.8%
  • Dockerfile 0.8%