Plentiful PowerFlex Plug-ins!

By Simon Stevens, PowerFlex Engineering Technologist, EMEA. September 2021.

In my last blog post (which you can find here: https://powerflex.me/2021/08/24/managing-powerflex-using-vsphere-vcenter/ ) I discussed Dell EMC Virtual Storage Integrator (VSI), which is a free plug-in that allows vSphere client users to perform storage management tasks from various Dell EMC storage platforms. Version 9.0 of VSI had welcomed PowerFlex into the fold of supported storage systems that could be managed from vSphere directly by using the plug-in. But that was not the end of the work being carried out by our Integrated Offerings team – so in this blog I will discuss not one, but two recently updated plug-ins for PowerFlex!     

This week has seen the release of updated PowerFlex Plug-Ins for both the CSI Driver for PowerFlex and our Ansible Modules. Many customers want to integrate PowerFlex into their own automation frameworks, and there are numerous ways that they achieve this. While VMware customers tend to use components from the vRealize Suite to achieve this, there are still many customers out there who are either using other framework stacks or perhaps have invested in their own automation efforts, usually built around open source tooling such as Puppet, Ansible or Chef. Dell Technologies provided code and modules for many of these tools over the years, but undoubtedly, more customers seem to have settled on using Ansible “in anger” than any other toolset.

Similarly, as soon as customers started to deploy containerised environments onto PowerFlex, the lack of native persistent storage provisioning within these environments prompted the then EMC CODE Team to create a tool called ‘RexRay’ to provide persistent storage to containers. As Kubernetes matured and plans for the Container Storage Interface (CSI) emerged, PowerFlex embraced this emerging standard and provided a CSI driver for PowerFlex while CSI support itself was still in beta. This meant that once CSI went GA with Kubernetes 1.13, we were ready to go with a driver that had already been tested by many customers.    

While Open Source tools and code are great in themselves, most customers prefer to use tools that are fully supported by the tool owner. Dell Technologies understands the importance of this, which is why we have been releasing CSI Drivers and Ansible Modules that are fully supported by Dell EMC (assuming that the customer has a valid support contract for the system that they are being run on). Indeed, both sets of tools have seen updates this week, which I will detail below.

Let me start by discussing what is new with version 2.0 of the CSI Driver for Dell EMC PowerFlex. The world of containers is constantly changing, therefore our CSI driver is regularly updated to keep pace with what is happening in this space. Version 2.0 of the CSI Driver sees the following features added:

  • Added support for Kubernetes v1.22.
  • Added support for OpenShift v4.8.
  • Added support for dynamic multi-array configuration.
  • Added certificate validation for PowerFlex Gateway REST API calls.
  • Added support for consistent config parameters across CSI drivers.
  • Added the ability to configure kubelet directory path.
  • Added the ability to enable/disable installation of resizer sidecar with driver installation.
  • Added the ability to enable/disable installation of snapshotter sidecar with driver installation.

 Of the features added above, it is worth noting that the Dynamic Multi-Array Configuration now makes it easy to update or change the PowerFlex storage configurations dynamically. Now it is possible to use the kubectl command to delete the current secret – this in turn will create a new secret associated with the instances and the driver will automatically detect any changes, using new values that are based upon the Kubernetes watcher file change detection timer.  

Certificate validation for the PowerFlex Gateway REST API Calls now allows the operator to enable or disable the verification of the PowerFlex Gateway certificates as required. The Volume Group Snapshotter has now been improved to allow support for deleting the Volume Group Snapshotter object, based on the value of ‘Deletion Policy’ in the volumesnapshotclass. This means that we can either delete both the VolumeSnapshot and the VolumeSnapshotContent instances (Deletion Policy = Delete) or just deleting the VolumeSnapshotContent (Deletion Policy = Retain, which retains the Volume Snapshot).

The CSI Driver for PowerFlex image, which is the built driver code, is available on https://hub.docker.com/r/dellemc/csi-vxflexos and as I mentioned earlier, this is officially supported by Dell. The CSI Driver Source code, downloads and documentation are available here on Github: https://github.com/dell/csi-powerflex . For clarity, Dell does not provide support for any modifications that are made to the source code. The CSI Driver for PowerFlex v2.0 is compatible with PowerFlex versions 3.5.x or 3.6.x and uses v1.3 of the CSI Protocol. It is supported for Kubernetes versions 1.20.x, 1.21.x and 1.22.x. OpenShift versions 4.6 EUS, 4.7 and 4.8 are supported by this version, as is MKE/Docker EE 3.4

Moving onto Ansible now. We have just released Ansible Modules for PowerFlex v1.1, building on the initial version that were released back in March of this year. As well as PowerFlex, Dell have released Ansible Modules for PowerMax, PowerStore, PowerScale and Unity storage systems.  The PowerFlex Modules are used for managing volumes, storage pools, SDCs, snapshots, SDSs and devices for PowerFlex storage devices. The modules use playbooks to list, show, create, delete, and modify each of the entities, with the focus being on Day Two operations. The list of Modules that were available with version 1.0 is shown in the table below:

Table 1: List of PowerFlex Ansible Modules Made Available in Version 1.0

With this version 1.1 release, block provisioning operations have been incrementally enhanced by the addition of two new modules, along with the addition of an extra Gather Facts operation, as shown in the table below:

Table 2: List of Ansible Modules and Operations Newly Added in Version 1.1

By adding the ‘Device’ and ‘SDS’ modules, it means that users can now automate the addition of new SDS nodes into an existing Protection Domain. Once added, we can now add devices to the SDS, as well as adding that device into a Storage Pool. Likewise, by using the Device module, users can add and remove disk devices to an SDS, which is obviously very useful for automating common operations such as replacing failed disk devices.

Ansible Modules for PowerFlex v1.1 are compatible with PowerFlex versions 3.5.x and 3.6.x. The Modules and documentation are available on: https://github.com/dell/ansible-powerflex . To use the Ansible Modules, it requires the installation of the Python library for PowerFlex, which is available for download here: https://github.com/dell/python-powerflex . Read the Documentation for full details on how to install the Python SDK and the Ansible Modules themselves.