Introduction
IBM Spectrum Scale is a clustered file system that provides concurrent access to a single file system or set of file systems from multiple nodes. The nodes can be SAN-attached, network attached, a mixture of SAN-attached and network attached, or in a shared nothing cluster configuration. This enables high-performance access to this common set of data to support a scale-out solution or to provide a high availability platform. For more information on IBM Spectrum Scale features, see the Product overview section in the IBM Spectrum Scale: Concepts, Planning, and Installation Guide.
Container Storage Interface (CSI) is a standard for exposing arbitrary block and file storage systems to containerized workloads on Container Orchestration Systems like Kubernetes. The IBM Spectrum Scale Container Storage Interface driver specification is defined in the CSI specification repository in the Container Storage Interface project in the GitHub.
IBM Spectrum Scale Container Storage Interface driver allows IBM Spectrum Scale to be used as a persistent storage for stateful application running in Kubernetes clusters. Through the IBM Spectrum Scale Container Storage Interface driver, Kubernetes persistent volumes (PVs) can be provisioned from IBM Spectrum Scale. Containers can essentially be used with stateful microservices such as database applications (MongoDB, PostgreSQL, and so on).

IBM® implements the CSI specification of storage plug-in in the following manner:
- The external-provisioner watches for create and delete volume API calls.
- The external-snapshotter watches for create and delete volume snapshots calls.
- The external-attacher watches for mount and unmount API calls.
- The external-resizer watches the volume expansion calls.
The IBM Spectrum Scale Container Storage Interface driver makes the REST API calls to the IBM Spectrum Scale storage system to perform storage management functions. For more information, see Deployments and DaemonSet in the Kubernetes Documentation.
Support for consistency group is available from IBM Spectrum Scale Container Storage Interface driver 2.5.0. For more information, see Consistency Group (CG).
Features covered
- Static provisioning: Ability to use existing directories and filesets as persistent volumes.
- Lightweight dynamic provisioning: Ability to create directory-based volumes dynamically.
- Fileset-based dynamic provisioning: Ability to create fileset-based volumes dynamically.
- Multiple file systems support: Ability to create volume across multiple file systems.
- Remote mount support: Ability to create volume on a remotely mounted file system.
- Operator support for easier deployment, upgrade, and cleanup.
- Supported volume access modes: RWX (ReadWriteMany) and RWO (ReadWriteOnce)
- Snapshot feature support: Ability to create a volume snapshot and to restore a snapshot into a new volume.
- Volume Expansion support : Ability to expand a dynamically provisioned volume.
- Volume Cloning support : Ability to create a clone of an existing volume.
- Compression support: Ability to enable compression for dynamically provisioned volumes.
- Tiering support: Ability to enable tiering for dynamically provisioned volumes.
- Consistency Group support: Ability to have group of volumes for application groups.
fsGroup support for RWO volumes : When used, Kubernetes recursively changes the ownership and permission of volumes content to match the fsGroup specified in a pod’s
securityContext
.