ThePowerStore CSI Driver by Dell EMC implement an interface between CSI enabled Container Orchestrator (CO) and Dell EMC Storage Arrays. It is a plug-in that is installed into Kubernetes to provide persistent […]
Share this:
The PowerStore CSI Driver by Dell EMC implement an interface between CSI enabled Container Orchestrator (CO) and Dell EMC Storage Arrays. It is a plug-in that is installed into Kubernetes to provide persistent storage using Dell PowerStore storage system.
The CSI Driver for Dell EMC PowerStore and Kubernetes communicate using the Container Storage Interface protocol v 1.2.
The CSI Driver for Dell EMC PowerStore is now compatible with Kubernetes versions 1.18, 1.19, 1.20 and OpenShift 4.6 and 4.7 and Docker EE 3.1.
The CSI Driver for Dell EMC PowerStore supports Red Hat Enterprise Linux (RHEL) 8.0, CentOS 8.0. The CSI Driver for Dell EMC PowerStore supports Dell EMC PowerStore version 1.0.x
The CSI Driver for Dell EMC PowerStore can be deployed by using the provided Helm v3 charts and installation scripts on both Kubernetes and OpenShift platforms. For more detailed information on the installation scripts, review the script documentation.
CSI Driver for Dell EMC PowerStore v1.1 downloads and documentation are available on:
Support for OpenShift 4.6 and 4.7 with both RHEL and RHCOS worker nodes
Support for RHEL 8 and CentOS 8
Automatically generated iSCSI CHAP secrets
Multiarray support
Dynamic secret change detection
Custom access for NFS exports
Automatically generated iSCSI CHAP secrets
The CSI PowerStore driver Version 1.3.0 extends Challenge Handshake Authentication Protocol (CHAP) support by adding automatic credentials generation.
You no longer need to provide chapsecret/chapuser credentials, they will be automatically generated by the driver for each host.
To enable this feature you need to set connection.enableCHAP to true when installing with helm or set X_CSI_POWERSTORE_ENABLE_CHAP to true in your PowerStore CustomResource when installing using operator.
Multiarray support
The CSI PowerStore driver version 1.3.0 adds support for managing multiple PowerStore arrays from the single driver instance. This feature is enabled by default and integrated to even single instance installations.
Storage classes won’t be generated during installation. You need to create and populate them with the array’s IP by yourself.
Multiarray feature is backward compatible, meaning that you can use v1.3 driver with old volumes. For that to work you have to mark your previous array as a “default” in helm/config.yaml
NOTE Installation process has been significantly changed due to multiarray support. Please refer to the documentation for detailed step-by-step instructions.
Dynamic secret change detection
Version 1.3.0 of CSI PowerStore driver adds the ability to detect changes in array configuration via Kubernetes secret.
You can change credentials for your PowerStore arrays in-flight (without restarting the driver).
All you need to do is just to change your configuration file config.yaml and apply it again.
After Kubernetes remounts secret to driver containers, a driver will detect the change and will start using this new configuration information.
Custom access for NFS exports
Version 1.3.0 of CSI PowerStore driver adds the ability to configure NFS access to nodes that use dedicated storage networks (e.g. behind a NAT device).
To enable this feature you need to specify externalAccess parameter in your helm values.yaml file or X_CSI_POWERSTORE_EXTERNAL_ACCESS variable when creating CustomResource using an operator.
You can allow access to subnet or particular IP, by using syntax like:
externalAccess: “x.x.x.x/xx”
Or
externalAccess: “x.x.x.x”
Below, you can see a demo how to install and work with the PowerStore CSI plugin and RedHat OpenShift
Driver Installation – Methods • CSI Driver for Dell EMC PowerStore can be installed in the following ways – Using Helm 3 Charts and the installation scripts – Using pre-packed offline installation bundle – Using the common CSI Operator which can install multiple CSI drivers provided by Dell EMC
Driver Installation Prerequisites Full details are in the Installation Guide but here is a summary of pre-reqs for the driver. • Upstream Kubernetes versions 1.18 – 1.20 or OpenShift versions 4.6 and 4.7 • Container Runtime with mount propagation enabled • Snapshot CRDs and snapshot controller installed in cluster • You can access your cluster with kubectl and helm. • The nonsecure registries defined in Docker or other container runtime, for CSI drivers that are hosted in a nonsecure location.
If using iSCSI – iscsi-initiator-utils package installed on all the Kubernetes nodes – Make sure that iscsid service started and healthy • If using FC – Make sure that FC card is attached to nodes and connected to storage array – Zoning of the Host Bus Adapters (HBAs) to the fibre channel port director must be done • If using multipath – Enable multipath with mpathconf –enable –with_multipathd y – Enable user_friendly_names and find_multipaths in the multipath.conf file • If using NFS – NFS is enabled in driver’s config file(secret) and NAS server is configured on PowerStore array
Installation Steps 1. Clone the repository from the github.com/dell/csi-powerstore 2. Ensure that you’ve created namespace where you want to install the driver. You can run kubectl create namespace csi-powerstore to create a new one. 3. Edit helm/secret.yaml so that it points to correct namespace. 4. Edit helm/config.yaml file and configure connection information for your PowerStore arrays changing following parameters: endpoint: defines the full URL path to the PowerStore API username, password: defines credentials for connecting to array insecure: defines if we should use insecure connection or not default: defines if we should treat the current array as a default block-protocol: defines what SCSI transport protocol we should use (FC, ISCSI, None, or auto) nas-name: defines what NAS should be used for NFS volumes
Create storage classes using ones from helm/samples/storageclass folder as an example and apply them to the Kubernetes cluster by running kubectl create -f <path_to_storageclass_file> 6. Create a secret by running sed “s/CONFIG_YAML/`cat helm/config.yaml | base64 – w0`/g” helm/secret.yaml | kubectl apply -f – 7. Copy the default values.yaml file and edit it for your needs: cd dell-csi-helminstaller && cp ../helm/csi-powerstore/values.yaml ./my-powerstoresettings.yaml 8. Install the driver using csi-install.sh bash script by running ./csi-install.sh — namespace csi-powerstore –values ./my-powerstore-settings.yaml
Using the Driver • You could test the driver with any helm chart from public helm repository which uses persistent volumes, for example, stable/postgresql. • helm install stable/postgresql -n postgresql • Follow helm chart’s notes to validate the installation
Documentation and Downloads
CSI Driver for Dell EMC PowerStore v1.3 downloads and documentation are available on: