Part 2 – The ‘What’ - Introducing Dell Container Storage Modules (CSM)
Fri, 19 Nov 2021 14:17:13 -0000
|Read Time: 0 minutes
In the first post of the series, which you can read all about here, I discussed some of the challenges that are associated with managing the storage / Data Protection aspects of Kubernetes. Now, let’s discuss our solutions:
Enter CSM, or Introduction to Container Storage Modules
Remember the 2019 session and the in-depth thinking we had gone through about our customers’ real world needs? The Kubernetes ecosystem is growing rapidly and when it comes to storage integration, CSI plugins offer a way to expose block and file storage systems to containerized workloads on Container Orchestration systems (COs) like Kubernetes.
Container Storage Modules (CSM) improves the observability, usability, and data mobility for stateful applications using Dell Technologies storage portfolio. It also extends Kubernetes storage features beyond what is available in the Container Storage Interface (CSI) specification. CSM and the underlying CSI plugins are pioneering application-aware/application consistent backup and recovery solutions from the most comprehensive enterprise-grade storage and data protection for Kubernetes.
CSM extends enterprise storage capabilities to Kubernetes. It reduces management complexity so developers can independently consume enterprise storage with ease and automate daily operations such as provisioning, snapshotting, replication, observability, authorization, and resiliency. CSM is open-source and freely available from https://github.com/dell/csm.
Dell EMC Container Storage Modules (CSM) brings powerful enterprise storage features and functionality to Kubernetes for easier adoption of cloud-native workloads, improved productivity, and scalable operations. This release delivers software modules for storage management that provide developers with access to build automation for enhanced IT needs and other critical enterprise storage features. These include data replication across data centers, role-based access control (RBAC) authorization, observability, and resiliency for disaster recovery and avoidance. Improved resource utilization enables automated access to any of our portfolio storage systems into K8s environments and:
- Gives the flexibility to choose whatever in the back end allows them to provision and leverage the strengths of the individual system
- Flexible + simple = powerful
- You have storage that isn’t 100% utilized
This enables the K8 environment manager to directly allocate storage and services, and it:
- Reduces time
- Gives them the pot to pull things out of and then lets them go handle it
- Frees up the developer to develop
Extend Enterprise Storage to Kubernetes – by accelerating adoption of cloud-native workloads with proven enterprise storage with proven enterprise storage:
- Dell EMC Container Storage Modules (CSM) enables a high-performing and resilient enterprise storage foundation for Kubernetes.
- CSM delivers a full stack of enterprise capabilities such as industry-leading replication, authorization, failure recovery, and management. These capabilities accelerate deployment testing, resulting in a faster application deployment life cycle.
- CSM allows developers and storage admins to take advantage of the unique benefits of Dell EMC storage systems, such as PowerMax Metro smart DR and the PowerFlex software-defined storage architecture.
- Dell Technologies has purpose-built platforms for streaming data, IoT, and Edge computing use cases designed with container-based architecture and management. These capabilities accelerate deployment testing, resulting in a faster application deployment life cycle.
Empower Developers – Improve productivity by reducing development life cycles
- CSM reduces storage management complexity with observability modules so developers can consume enterprise storage with ease.
- It also provides a complete K8s solution stack that delivers an integrated experience for developers and storage admins.
- Customers will be able to take advantage of consistent monitoring, management, and policy enforcement across enterprise storage and DevOps environments.
Automate storage operations – Integrate enterprise storage with existing Kubernetes toolsets for scalable operations
- CSM allows customers to realize the promise of infrastructure as code for frictionless data collection and consumption
- CSM observability empowers customers to create storage pools across multiple storage arrays for minimal storage management
- CSM delivers an integrated experience that bridges the gap between Kubernetes admins/developers and the traditional IT admins, furthering solidifying enterprise storage’s role as a viable alternative to public cloud while eliminating silos and shadow IT.
The modules are separated into these six specific capabilities:
Observability – Delivers a single pane to view the whole CSM environment for the K8s/container administrator, using Grafana and Prometheus dashboards that K8s admins are familiar with in monitoring persistent storage performance.
Replication – Enables array replication capabilities to K8s users with support for stretched and replica K8s clusters.
Authorization – Provides storage and provides Kubernetes administrators the ability to apply RBAC and usage rules for our CSI Drivers.
Resiliency – Enables K8s node failover by monitoring persistent volume health, designed to make Kubernetes Applications, including those that use persistent storage, more resilient to node failures. The module is focused on detecting node failures (power failure), K8s control plane network failures, and Array I/O network failures, and to move the protected pods to hardware that is functioning correctly.
Volume Placement – Intelligent volume placement for Kubernetes workloads, optimized based on available capacity.
Snapshots - CSI based snapshots for operational recovery and data repurposing. The Snapshots feature is part of the CSI plugins of the different Dell EMC arrays and takes advantage of the state-of-the-art snapshot technology to protect and repurpose data. In addition to point-in-time recovery, these snapshots are writable and can be mounted for test and dev and analytics use cases without impacting the production volumes. These modules are planned for RTS, but there is a rolling release prioritized based upon customer demand by storage platform – applicable to PowerScale, PowerStore, PowerMax, PowerFlex, and Unity XT. Available on RTS:
- Authorization Module
- PowerScale
- PowerMax
- PowerFlex
- Resiliency Module
- PowerFlex
- Unity XT
- Observability Module
- PowerFlex
- PowerStore
- Replication Module
- PowerMax Metro/Async
- One Installer
The publicly accessible repository for CSM is available at https://github.com/dell/csm. For a complete set of material on CSM, see the documentation at https://dell.github.io/csm-docs/.
Here is an overview demo of CSM:
Watched it? Awesome, now let’s go deeper into the modules:
Observability
CSM for Observability is part of the CSM (Container Storage Modules) open-source suite of Kubernetes storage enablers for Dell EMC products. It is an OpenTelemetry agent that collects array-level metrics for Dell EMC storage so they can be scraped into a Prometheus database. With CSM for Observability, you will gain visibility not only on the capacity of the volumes/file shares you manage with Dell CSM CSI (Container Storage Interface) drivers but also their performance in terms of bandwidth, IOPS, and response time. Thanks to pre-packaged Grafana dashboards, you will be able to go through these metrics’ history and see the topology between a Kubernetes PV (Persistent Volume) and its translation as a LUN or file share in the backend array. This module also allows Kubernetes admins to collect array level metrics to check the overall capacity and performance directly from the Prometheus/Grafana tools rather than interfacing directly with the storage system itself. Metrics data is collected and pushed to the OpenTelemetry Collector, so it can be processed and exported in a format consumable by Prometheus.
CSM for Observability currently supports PowerFlex and PowerStore. Its key high-level features are:
- Collect and expose Volume Metrics via the OpenTelemetry Collector
- Collect and expose File System Metrics via the OpenTelemetry Collector
- Collect and expose export (K8s) node metrics via the OpenTelemetry Collector
- Collect and expose filesystem capacity metrics via the OpenTelemetry Collector
- Collect and expose block storage capacity metrics via the OpenTelemetry Collector
- Non-disruptive config changes
- Non-disruptive log level changes
- Grafana Dashboards for displaying metrics and topology data
Below, you can see the module, working with PowerStore:
And PowerFlex:
The publicly accessible repository is available at https://github.com/dell/csm-observability.
See documentation for a complete set of material on CSM Observability: https://dell.github.io/csm-docs/docs/observability/.
Replication
CSM for Replication is the module that allows provisioning of replicated volumes using Dell storage. CSM for Replication currently supports PowerMax and PowerStore.
Key High-Level Features:
- Replication of PersistentVolumes (PV) across Kubernetes clusters Multi/single cluster topologies
- Replication action execution (planned/unplanned failover, sync, pause, resume)
- Async/Sync/Metro configurations support (PowerStore only supports Async)
- repctl – CLI tool that helps with replication related procedures across multiple K8s clusters
The publicly accessible repository for CSM is available at https://github.com/dell/csm-replication.
See the documentation for a complete set of material on CSM Replication: https://dell.github.io/csm-docs/docs/replication/.
The following video includes an Introduction and the Architecture (using PowerMax as the example):
Below, you can see end-to-end demos on how to configure CSM replication for PowerStore, and how to perform failover & failback operations of WordPress and MySQL DB, using PowerStore Async replication.
Installing:
Performing Failover & Failback (Reprotect):
Using PowerMax?
- The following video shows synchronous replication using CSM Replication for PowerMax SRDF Sync Replication with File I/O being generated.
- This video shows Active-Active High-Availability using CSM Replication for PowerMax SRDF Metro Volumes with PostgreSQL:
Authorization
- CSM for Authorization is part of the CSM (Container Storage Modules) open-source suite of Kubernetes storage enablers for Dell EMC products. CSM for Authorization provides storage and Kubernetes administrators the ability to apply RBAC for CSI Drivers. It does this by deploying a proxy between the CSI driver and the storage system to enforce role-based access and usage rules.
- Storage administrators of compatible storage platforms will be able to apply quota and RBAC rules that instantly and automatically restrict cluster tenants’ usage of storage resources. Users of storage through CSM for Authorization do not need to have storage admin root credentials to access the storage system.
- Kubernetes administrators will have an interface to create, delete, and manage roles/groups to which storage rules may be applied. Administrators and/or users can then generate authentication tokens that can be used by tenants to use storage with proper access policies being automatically enforced.
- CSM for Authorization currently supports PowerFlex, PowerMax, and PowerScale.
Its key high-level features are:
- Ability to set storage quota limits to ensure K8s tenants are not over consuming storage
- Ability to create access control policies to ensure K8s tenant clusters are not accessing storage that does not belong to them
- Ability to shield storage credentials from Kubernetes administrators, ensuring that credentials are only handled by storage admins
The publicly accessible repository is available at https://github.com/dell/csm-authorization.
See the documentation for a complete set of material on CSM Authorization: https://dell.github.io/csm-docs/docs/authorization/.
Below, you can see the Authorization module for PowerFlex:
Resiliency
User applications can have problems if you want their Pods to be resilient to node failure. This is especially true of those deployed with StatefulSets that use PersistentVolumeClaims. Kubernetes guarantees that there will never be two copies of the same StatefulSet Pod running at the same time and accessing storage. Therefore, it does not clean up StatefulSet Pods if the node executing them fails.
CSM for Resiliency currently supports PowerFlex and Unity.
Key High-Level Features:
- Detect pod failures for the following failure types – Node failure, K8s Control Plane Network failure, Array I/O Network failure
- Cleanup pod artifacts from failed nodes
- Revoke PV access from failed nodes
Below, you can see a demo of the Resiliency module for PowerFlex:
The publicly accessible repo is available at https://github.com/dell/karavi-authorization.
See the documentation for a complete set of material on CSM Resiliency: https://dell.github.io/csm-docs/docs/authorization/.
The Snapshots feature is part of the CSI plugins of the different Dell EMC arrays and takes advantage of the state-of-the-art snapshot technology to protect and repurpose data. In addition to point-in-time recovery, these snapshots are writable and can be mounted for test and dev and analytics use cases without impacting the production volumes.
See the following demo about volume groups snapshots for PowerFlex:
No man (or a customer) is an island and Kubernetes comes in many flavors. Here at Dell Technologies, we offer a wide variety of solutions for the customer, starting from just storage arrays for every need (from PowerStore to PowerFlex to PowerMax to PowerScale and ECS) to turnkey solutions like VxRail with/without VCF, deep integration with our storage arrays to anything from upstream Kubernetes to RedHat Openshift, with deep integration to the OpenShift Operator, or vSphere with Tanzu, just so we can meet you where you are today AND tomorrow.
With Dell Technologies’ broad portfolio designed for modern and flexible IT growth, customers can employ end-to-end storage, data protection, compute, and open networking solutions that support rapid container adoption. Developers can create and integrate modern data applications by relying on accessible open-source integrated frameworks and tools across bare metal, virtual, and containerized platforms. Dell enables support for organizational autonomy and real-time benefits for container and Kubernetes platforms with and adherence to IT best practices based on an organization’s own design needs.
In the next post, we will be covering the ‘How’ to install the new CSI 2.0 Common installer and the CSM modules.