Recently, IBM has announced a new version of Storage Enabler for Containers (SEC), which adds support for IBM Spectrum Scale. SEC solves the important problem of providing persistent and dynamically provisioned storage for Docker containers, which can be orchestrated as a Kubernetes cluster, to deliver a superior DevOps experience for production workloads.
What is Docker and Kubernetes?
The Docker project was released as open source in 2013 and has emerged as a pre-eminent container framework on Linux. Containers are rapidly gaining popularity as a way to gain efficiency in application design and architecture. Containers package an application along with its dependencies and use operating system features such as cgroups and separate namespaces to isolate applications from each other. This allows multiple applications to run independently on the same server and allows for efficient load-balancing across a compute cluster. Since containers are lighter weight and use fewer resources than Virtual Machines, they allow each server to do more useful work.
Kubernetes is a project that was originally designed by Google in order to orchestrate containerized applications across a cluster of servers. It is now managed by the Cloud Native Computing Foundation. It can be used to run, manage, monitor, and maintain thousands of containerized applications across extremely large clusters, and has become the most popular orchestrator for containers.
Why Spectrum Scale for containers?
IBM Spectrum Scale and IBM Elastic Storage Server (ESS) provide flexible, highly scalable, efficient software-defined storage. In containerized compute clusters, Spectrum Scale can provide parallel access to your data from multiple containers, across multiple nodes.
Spectrum Scale has many unique attributes that make it ideal for containerized workloads:
- The native Spectrum Scale client provides fault-tolerant parallel access directly to your Kubernetes cluster. Using a parallel high-speed protocol for storage access, Spectrum Scale can provide higher performance than other protocols such as NFS or SMB.
- Spectrum Scale provides shared storage, so multiple containers (pods) on multiple nodes can access the same files at the same time, with full locking and file protection
- Spectrum Scale scalability ensures that a single Spectrum Scale instance can meet large scale storage requirements, reducing management overhead and providing greater storage efficiency. Capacity can be seamlessly expanded, storage can be brought down, removed, and inserted with no downtime.
- Spectrum Scale features, such as Integrated Lifecycle Management, integrated disaster recovery, data security and governance can all be seamlessly used by containerized applications.
All of these capabilities make Spectrum Scale a perfect match for containerized environments where workloads are dynamically provisioned and require shared access to persistent storage.
What is Storage Enabler for Containers (SEC)?
Simply put, Storage Enabler for Containers (SEC) is an interface that is delivered via IBM Spectrum Connect that enables IBM Storage products (e.g. Spectrum Scale, Spectrum Virtualize, Spectrum Accelerate, and IBM FlashSystem) to connect to Kubernetes clusters. Once the interface is configured, SEC allows containerized applications to make use of IBM Storage to dynamically provision Persistent Volumes (PVs) through Persistent Volume Claims (PVCs).
Persistent Volumes are how Kubernetes defines storage resources and enables them to be allocated to applications. For a full explanation of PVs, please check the Kubernetes documentation (https://kubernetes.io/docs/concepts/storage/persistent-volumes/).
To make a PV available to a specific application, a user creates a PVC which describes the storage needed for that application. Kubernetes links the claim to an appropriate PV, in a process called “binding”. The claim can then be used as a storage volume by the containerized application, allowing applications to access and make use of this persistent storage. Since the storage is persistent, it can be used for critical application data. PVCs can be highly detailed, and specify the size of the volume, read/write modes, along with various other storage class attributes
Using the mechanism of PVs and PVCs, Kubernetes allows containers to be more independent from the physical details of the cluster. Kubernetes can allocate a container to any suitable host that has spare capacity, and the container will still be able to attach to its needed storage resource rather than being limited to local storage or resources that have already been provisioned to the host it finds itself on. The ability to dynamically and elastically bring compute resources up (and down) in a cluster without having to statically manage the connection of each host to every storage resource dramatically improves the efficiency and manageability of Kubernetes-managed clusters.
With Storage Enabler for Containers, we can now bring the flexibility, security, and scalability of Spectrum Scale into your Kubernetes cluster. Docker applications can now take advantage of all the capabilities of Spectrum Scale within the easy to use Kubernetes framework.
Storage Enabler for Containers is available today on FixCentral.