Skip to content

Repository files navigation

CSI Driver for Dell PowerStore

Go Report Card License Docker Last Release

Repository for CSI Driver for Dell PowerStore

Description

CSI Driver for PowerStore is part of the CSM (Container Storage Modules) open-source suite of Kubernetes storage enablers for Dell products. CSI Driver for PowerStore is a Container Storage Interface (CSI) driver that provides support for provisioning persistent storage using Dell PowerStore storage array.

This project may be compiled as a stand-alone binary using Golang that, when run, provides a valid CSI endpoint. It also can be used as a precompiled container image.

Table of Contents

Support

For any issues, questions or feedback, please contact Dell support.

Building

This project is a Go module (see golang.org Module information for explanation). The dependencies for this project are listed in the go.mod file.

To build the source, execute make clean build.

To run unit tests, execute make test.

To build an image, execute make docker.

Runtime Dependencies

Both the Controller and the Node portions of the driver can only be run on nodes with network connectivity to a Dell PowerStore server (which is used by the driver).

If you want to use iSCSI as a transport protocol be sure that iscsi-initiator-utils package is installed on your node.

If you want to use FC be sure that zoning of Host Bus Adapters to the FC port directors was done.

If you want to use NFS be sure to enable it in myvalues.yaml or in your storage classes, and configure corresponding NAS servers on PowerStore.

If you want to use NVMe/TCP be sure that the nvme-cli package is installed on your node.

If you want to use NVMe/FC be sure that the NVMeFC zoning of the Host Bus Adapters to the Fibre Channel port is done.

Documentation

For more detailed information on the driver, please refer to Container Storage Modules documentation.

VolumeGroupSnapshot Support

This driver now supports VolumeGroupSnapshot functionality as defined in CSI specification 1.11. This feature allows creating crash-consistent snapshots of multiple volumes simultaneously.

Key Features

  • CreateVolumeGroupSnapshot: Create snapshots of multiple volumes simultaneously
  • DeleteVolumeGroupSnapshot: Delete a group snapshot and all member snapshots
  • GetVolumeGroupSnapshot: Retrieve information about a group snapshot
  • Write-Order Consistency: All snapshots in the group are taken at the same point-in-time
  • CSI Spec 1.11 Compliance: Full compliance with CSI specification requirements

Metrics Instrumentation

The CSI Driver for PowerStore includes comprehensive Prometheus metrics collection for monitoring driver health, array capacity, volume metrics, NFS metrics, replication sessions, and performance metrics.

Enabling Metrics

Metrics collection can be enabled by setting the following environment variables:

Variable Description Default
X_CSI_METRICS_ENABLED Enable metrics collection and HTTP server false
X_CSI_METRICS_PORT Port for metrics HTTP server 8443
X_CSI_METRICS_TLS_CERT_FILE Path to TLS certificate file
X_CSI_METRICS_TLS_KEY_FILE Path to TLS key file
X_CSI_METRICS_POLL_INTERVAL Metrics collection interval 1m
X_CSI_METRICS_LEADER_ELECTION_ENABLED Enable leader election for controller array metrics collection false
X_CSI_METRICS_LEADER_ELECTION_LEASE_DURATION Leader election lease duration 60s
X_CSI_METRICS_LEADER_ELECTION_RENEW_DEADLINE Leader election renew deadline 40s
X_CSI_METRICS_LEADER_ELECTION_RETRY_PERIOD Leader election retry period 5s

Metrics Categories

The driver exposes the following metrics categories:

  • Driver Health Metrics: Operation counts, errors, and latency for CSI operations
  • Array Health Metrics: PowerStore array health status and management endpoint information
  • Appliance Metrics: Per-appliance capacity, health, and physical storage metrics
  • Volume Metrics: Volume count by protocol, size, attachment status, health, and NVMe transport metrics
  • NFS Metrics: NFS server health, export counts, and share counts
  • Replication Metrics: Replication session state, RPO, remote system reachability, and data connection state
  • Performance Metrics: Cluster and appliance-level IOPS, bandwidth, latency, and FE port metrics

Note: Node-level performance metrics and drive wear metrics are not implemented due to gopowerstore library limitations. The library provides performance metrics methods that require node/drive IDs as input, but does not provide node/drive enumeration methods.

Accessing Metrics

Once enabled, metrics are available at http://<driver-pod-ip>:<metrics-port>/metrics. These can be scraped by Prometheus or compatible monitoring systems.

For detailed documentation on available metrics and their labels, please refer to the AGENTS.md file.

About

CSI Driver for Dell PowerStore

Resources

Stars

47 stars

Watchers

21 watching

Forks

Releases

Packages

Used by

Contributors

Languages