Introduction to IBM Spectrum Scale Container Storage Interface driver

This section provides a brief introduction to IBM Spectrum Scale Container Storage Interface driver.

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 (COs) like Kubernetes. The IBM Spectrum Scale Container Storage Interface driver specification is defined at https://github.com/container-storage-interface/spec/blob/master/spec.md.

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. Thus, the containers can be used with stateful microservices like MongoDB, PostgreSQL, and so on.

Figure 1. IBM Spectrum® Scale Container Storage Interface Driver
IBM Spectrum Sacle Container Storage Interface Driver

IBM® implements the CSI specification of storage plug-in in the following manner:

The external-provisioner and external-attacher Sidecar Containers are StatefulSets, which should be deployed on separate infrastructure hosts for resiliency. The external-provisioner watches for create or delete API calls while the external-attacher watches for mount or unmount API calls. The node-driver-registrar is a kubelet service, which runs alongside the node plug-in at the time of initialization. The IBM Spectrum Scale Container Storage Interface driver provides the interconnect for persistent volume mount from the container worker node to the underlying storage system and is deployed as a DaemonSet. The IBM Spectrum Scale Container Storage Interface driver also makes the REST API calls on the IBM Spectrum Scale storage system to perform any provisioning requests on the storage. For more information on StatefulSets and Daemonsets, see StatefulSets.

Features covered

The following features are available with IBM Spectrum Scale Container Storage Interface driver:
  • 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: Volumes can be created across multiple file systems
  • Remote mount support: Volumes can be created on a remotely mounted file system
  • Operator support for easy deployment, upgrade, and cleanup
  • Supported volume access mode: RWX (ReadWriteMany) and RWO (ReadWriteOnce)