direct-csi

module
v1.4.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 20, 2021 License: AGPL-3.0

README

DirectCSI

build license codecov

DirectCSI is a CSI driver that provisions volumes for workloads that require direct access to the storage medium. A storage medium is accessed directly when there are no layers of indirection between the application accessing storage and the storage medium. Direct access is crucial for applications that are:

  1. I/O intensive or
  2. IOPS intensive or
  3. Manage reliability of data at the application layer or
  4. Require high consistency guarantees or
  5. Any combination of the above

High performance applications that are tolerant to drive failures, and/or have the capability to heal data are ideal applications for DirectCSI. Examples of such applications are:

  1. MinIO
  2. Cassandra DB

QuickStart

Here is the extremely quickstart:

kubectl krew install direct-csi
kubectl direct-csi install --crd
kubectl direct-csi drives ls
# choose all the drives that direct-csi should manage and format them
kubectl direct-csi format --drives $DRIVE_SELECTOR_GLOB --nodes $NODE_SELECTOR_GLOB
# 'direct-csi-min-io' can now be specified as the storageclass in PodSpec.VolumeClaimTemplates

For more information, please visit our documentation.

How is it different from LocalVolume provisioner?

LocalVolume provisioner also allows direct access to the storage medium. However, it requires manual management of drives and volumes - i.e. it does not support dynamic provisioning of volumes, storage management or dynamic scheduling of pods on nodes with available volumes.

DirectCSI on the other hand, supports dynamic provisioning of volumes, performs allocation of volumes based on storage capacity, and schedules pods to run on nodes which have most capacity available.

How is it different from HostPath volume?

HostPath volume also allows direct access to the storage medium. However, it only supports ephemeral volumes. i.e. pod scheduling is not tied to volume provisioning. Therefore, if a pod is rescheduled or restarted, it might end up on a node where the data is not available. However, since HostPath volumes are ephemeral, pod startup will go on without raising any errors.

HostPath volumes cannot be provisioned and managed via PVC resources. It is always provisioned either manually as a PV or directly specified in the PodSpec.

Limitations of DirectCSI

The high consistency and performance benefits of DirectCSI come with the limitation that once provisioned, volumes cannot be moved to other nodes i.e. volumes are sticky to nodes.

References

LICENSE

Use of direct-csi driver is governed by the GNU AGPLv3 license that can be found in the LICENSE file.

Security

Important: Report security issues to security@min.io. Please do not report security issues here.

Directories

Path Synopsis
cmd
pkg
clientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
clientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
clientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
clientset/typed/direct.csi.min.io/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/direct.csi.min.io/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/direct.csi.min.io/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/direct.csi.min.io/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/direct.csi.min.io/v1beta2
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/direct.csi.min.io/v1beta2/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
sys

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL