Installing & Working with the Dell EMC PowerMax CSI Driver for Kubernetes and RedHat OpenShift

The new digital era is revolutionizing the way businesses work and operate, placing IT transformation at the core of being competitive. Technological innovations like artificial intelligence, machine learning, IoT, cloud computing, and big data analytics are the driving forces behind rapid data growth, traditional business model disruption, and – in many cases – the source of added IT complexity.
To address these paradigm shifts, organizations need a new generation of enterprise storage that provides unparalleled performance without compromising security, availability, scalability, protection and efficiency. Dell EMC PowerMax is that platform , which offers massive scalability in every possible dimension—performance, capacity, connectivity, LUNs/devices and superior data services — all with a future-proof architecture featuring end-toend non-volatile memory express (NVMe), SCM, built-in machine learning, seamless cloud mobility and deep VMware integration. PowerMax delivers over six nines of availability in a single array1, offers leading security with end-to-end efficient encryption, and best-in-class data resiliency with Symmetrix Remote Data Facility (SRDF), the gold standard in remote replication for business continuance and disaster recovery (BC/DR). PowerMax is based on a powerful architecture, simple operation and trusted innovation that increases customer productivity, while dramatically reducing operational costs.

If you are new to PowerMax, I highly suggest you first watch this overview by Vince Westin below

Back in 2019, we started to support PowerMax and Kubernetes, which you can read all about here

The
PowerMax 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 PowerMax storage system.

The CSI Driver for Dell EMC PowerMax and Kubernetes communicate using the Container Storage Interface protocol v 1.1. CSI Driver for Dell EMC PowerMax is compatible with Kubernetes versions 1.17, 1.18, 1.19 and OpenShift 4.3 and 4.4 and Docker EE 3.1.

The CSI Driver for Dell EMC PowerFlex supports Red Hat Enterprise Linux (RHEL) 7.6, 7.7 and 7.8, CentOS 7.6, 7.7 and 7.8. The CSI Driver for Dell EMC PowerFlex supports Dell EMC PowerFlex version 5978.479.479, 5978.669.669

The CSI Driver for Dell EMC PowerMax 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.

The controller section of the Helm chart installs the following components in a Deployment in the powermax namespace:

  • CSI Driver for Dell EMC PowerMax
  • Kubernetes External Provisioner, which provisions the volumes
  • Kubernetes External Attacher, which attaches the volumes to the containers
  • Kubernetes External Snapshotter, which provides snapshot support
  • Kubernetes External Resizer, which resizes the volume

In order to automate and simplify the CSI driver installations on Openshift clusters we’ve developed the Dell CSI Operator. this is a Kubernetes native application which helps in installing and managing CSI Drivers provided by Dell EMC for its various storage platforms. Dell CSI Operator uses Kubernetes Custom Resource Definitions to define a manifest that describes the deployment specifications for each driver to be deployed. Multiple CSI drivers provided by Dell EMC and multiple instances of each driver can be deployed by the operator by defining a manifest for each deployment.

PowerMax CSI Features

HA Controller

Starting with version 1.5, the CSI PowerMax driver supports running multiple replicas of controller pod. At any time, only one controller pod is active(leader), and the rest are on standby. In case of a failure, one of the standby pods becomes active and takes the position of leader. This is achieved by using native leader election mechanisms utilizing kubernetes leases. Additionally by leveraging pod anti-affinity, no two controller pods are ever scheduled on the same node.

In addition to the controllers, we have the two nodes pods running on each of the worker nodes

Volume Snapshot Feature

The CSI PowerMax driver supports beta snapshots. Driver versions prior to version 1.4 supported alpha snapshots.

The Volume Snapshots feature in Kubernetes has moved to beta in Kubernetes version 1.17. It was an alpha feature in earlier releases (1.13 onwards). The snapshot API version has changed from v1alpha1 to v1beta1 with this migration.

In order to use Volume Snapshots, ensure the following components have been deployed to your cluster:

  • Kubernetes Volume Snaphshot CRDs
  • Volume Snapshot Controller

Cloning Support 

Starting from version 1.5, the CSI PowerMax driver supports Cloning of Persistent volumes – the ability to clone a PVC from another PVC as a source.

Online Volume Expansion

Starting with v1.4, the CSI PowerMax driver supports expansion of Persistent Volumes (PVs). This expansion is done online, that is, when the PVC is attached to any node.

In order to expand a volume, we need to edit the pvc using the oc command, change the volume size and save the file.

As you can see, the volume size has changed in the background as well as the PVC and PV objects while the volume is still mounted on the running pod.

Raw Block Device Support

There are some specialized applications that require direct access to a block device because, for example, the file system layer introduces unneeded overhead. The most common case is databases, which prefer to organize their data directly on the underlying storage.

Starting v1.4, CSI PowerMax driver supports raw block volumes. Raw Block volumes are presented as a block device to the pod by using a bind mount to a block device in the node’s file system.

Raw Block volumes are created using the volumeDevices list in the Pod template spec with each entry accessing a volumeClaimTemplate specifying a volumeMode: Block. An example configuration is outlined here:

iSCSI CHAP

With version 1.3.0, support has been added for unidirectional Challenge Handshake Authentication Protocol (CHAP) for iSCSI. To enable CHAP authentication:

  1. Create secret powermax-creds with the key chapsecret set to the iSCSI CHAP secret. If the secret exists, delete and re-create the secret with this newly added key.
  2. Set the parameter enableCHAP in my-powermax-settings.yaml to true.

The driver uses the provided chapsecret to configure the iSCSI node database on each node with iSCSI access.

Topology Support 

Starting from version 1.5, the CSI PowerMax driver supports Topology aware Volume Provisioning which helps Kubernetes scheduler place PVCs on worker nodes which have access to backend storage. When used in conjunction with nodeSelectors which can be specified for the driver node pods, it provides an effective way to provision applications on nodes which have access to the PowerMax array.


You can download the plugin from below

You can see a video below, showing how it all works

Similar Posts

Leave a ReplyCancel reply