Home > Communication Service Provider Solutions > Telecom Multicloud Foundation > Red Hat > Guides > Red Hat Open Shift Container Platform Guides > Reference Architecture Guide: Dell Technologies - Red Hat OpenShift Reference Architecture for Telecom > CSI external storage
OpenShift Container Platform 4.2 introduced support for the CSI operator-framework-driven API. This CSI API runs on the control-plane nodes to orchestrate and manage configuration and tear-down of data-path storage operations. While storage driver plug-in support was available in earlier Kubernetes releases, it required the integration of volume plug-ins into the core Kubernetes codebase. Kubernetes version 1.19 is integrated into OpenShift Container Platform 4.6.
CSI was released in Kubernetes v1.13, replacing the volume plug-in system. Volume plug-ins were built “in-tree” (that is, as part of the Kubernetes source code), meaning that changes to various volume plug-ins provided by storage vendors had to be made in lockstep with the core Kubernetes release schedule. The CSI specification aims to standardize the exposure of block and file storage systems to workloads running on container orchestration systems such as Kubernetes. Kubernetes can now be readily extended to support any storage solution with CSI drivers that the vendor provides. Vendors can manage the life cycle of their drivers directly, using an operator, without waiting until the next core Kubernetes release.
Drivers are typically shipped as container images. These images are not platform-aware, therefore additional components are required to enable interaction between OpenShift Container Platform and the driver image. An external CSI controller running on infrastructure nodes has three containers: an attacher, provisioner, and driver. The attacher and provisioner containers serve as translators, mapping OpenShift Container Platform calls to corresponding calls to the CSI driver. No other communication to the CSI driver is allowed. On each compute node, a CSI driver daemon set is created containing the CSI driver and a CSI registrar. The registrar registers the driver with the openshift-node service, which then directly connects to the driver.
The following figure shows this architecture:
Support for snapshots of CSI volumes was added in Kubernetes v1.19 and is available in OpenShift Container Platform 4.6 as a technical preview feature. OpenShift provides the CSI Snapshot Controller Operator, which manages snapshot objects. An external snapshot sidecar container must be implemented in the CSI driver to enable snapshot functionality. All Dell Technologies CSI storage drivers support snapshots. For production-grade cluster backup and restore functionality, see Dell EMC PowerProtect Data Manager.
The following table provides an overview of Dell EMC storage platforms with their corresponding CSI and protocol support. These capabilities reflect what has been implemented in the CSI drivers that are intended for use with OpenShift Container Platform 4.6.
Storage capability |
PowerMax |
PowerFlex |
Unity |
PowerStore |
Static provisioning |
Yes |
Yes |
Yes |
Yes |
Dynamic provisioning |
Yes |
Yes |
Yes |
Yes |
Binding |
Yes |
Yes |
Yes |
Yes |
Retain reclaiming |
Yes |
Yes |
Yes |
Yes |
Delete reclaiming |
Yes |
Yes |
Yes |
Yes |
Create snapshot volume |
No |
Yes |
Yes |
Yes |
Create volume from snapshot |
No |
Yes |
Yes |
Yes |
Delete snapshot |
No |
Yes |
Yes |
Yes |
Access mode |
ReadWrite |
ReadWrite |
ReadWrite |
ReadWrite |
FC |
Yes |
N/a |
Yes |
Yes |
iSCSI |
Yes |
N/a |
Yes |
Yes |
NFS |
N/a |
N/a |
No |
Yes |
Other protocols |
N/a |
ScaleIO protocol |
N/a |
N/a |
RHCOS node |
Yes |
Yes |
Yes |
Yes |
Advanced storage feature support is being added to the CSI driver reference specifications. New to Kubernetes v1.19 is beta support for snapshots, enabling customers to back up and restore application data.
Dell Technologies CSI drivers for FC and iSCSI arrays format the volumes with either xfs or ext4 before mounting these volumes to the pods.
Consider the workload performance and volume access requirements of the business—for example, NFS array is a preferred option for workloads that require concurrent access from multiple clients, such as Access Mode ReadWriteMany.
The CSI drivers provide a Red Hat-certified operator to deploy and manage the life cycle of CSI drivers for OpenShift Container Platform 4.6. The operator deploys and manages the life cycle (installation, upgrade, uninstallation) for all the CSI drivers that are listed in Table 8, as shown in the following figure:
Note: For more information about deployment and operations using CSI drivers, see the Dell Technologies – Red Hat® OpenShift® Reference Architecture for Telecom 4.6 Deployment Guide at the Dell Technologies Solutions Info Hub for Communication Service Providers.