/directpv

Kubernetes CSI driver for Direct Attached Storage :minidisc:

Primary LanguageGoGNU Affero General Public License v3.0AGPL-3.0

DirectPV

DirectPV is a CSI driver for Direct Attached Storage. In a simpler sense, it is a distributed persistent volume manager, and not a storage system like SAN or NAS. It is useful to discover, format, mount, schedule and monitor drives across servers.

Distributed data stores such as object storage, databases and message queues are designed for direct attached storage, and they handle high availability and data durability by themselves. Running them on traditional SAN or NAS based CSI drivers (Network PV) adds yet another layer of replication/erasure coding and extra network hops in the data path. This additional layer of disaggregation results in increased-complexity and poor performance.

Architecture Diagram

Quickstart

  1. Install DirectPV Krew plugin
$ kubectl krew install directpv
  1. Install DirectPV in your kubernetes cluster
$ kubectl directpv install
  1. Get information of the installation
$ kubectl directpv info
  1. Add drives
# Probe and save drive information to drives.yaml file.
$ kubectl directpv discover

# Initialize selected drives.
$ kubectl directpv init drives.yaml
  1. Deploy a demo MinIO server
$ curl -sfL https://github.com/minio/directpv/raw/master/functests/minio.yaml | kubectl apply -f -

Further information

Refer detailed documentation

Join Community

DirectPV is a MinIO project. You can contact the authors over the slack channel

License

DirectPV is released under GNU AGPLv3 license. Refer the LICENSE document for a complete copy of the license.