Dell Container Storage Modules (CSM) 1.5 – Application Mobility is here!
Before 2022 ended, we released the CSI 2.5 plugins for our storage arrays, you can read all about it here but, as I said before, this was just the beginning.. […]
Dell Storage, PowerStore, PowerFlex PowerMax & PowerScale, Virtualization & Containers Technologies
Before 2022 ended, we released the CSI 2.5 plugins for our storage arrays, you can read all about it here but, as I said before, this was just the beginning.. […]
Before 2022 ended, we released the CSI 2.5 plugins for our storage arrays, you can read all about it here but, as I said before, this was just the beginning..
Today, I would like to announce a new feature that have been in the making, for quite a while:
Application Mobility
https://dell.github.io/csm-docs/docs/applicationmobility/
NOTE: This tech-preview release is not intended for use in production environment.
NOTE: Application Mobility requires a time-based license. See Deployment for instructions.
Container Storage Modules for Application Mobility provide Kubernetes administrators the ability to clone their stateful application workloads and application data to other clusters, either on-premise or in the cloud.
Application Mobility uses Velero and its integration of Restic to copy both application metadata and data to object storage. When a backup is requested, Application Mobility uses these options to determine how the application data is backed up:
After a backup has been created, it can be restored on the same Kubernetes cluster or any other cluster(s) if this criteria is met:
Supported Data Movers
Data Mover |
Description |
Restic | Persistent Volume data will be stored in the provided object store bucket |
Supported Operating Systems/Container Orchestrator Platforms
COP/OS |
Supported Versions |
Kubernetes | 1.23, 1.24, 1.25 |
Red Hat OpenShift | 4.10, 4.11 |
RHEL | 7.x, 8.x |
CentOS | 7.8, 7.9 |
Deployment
Pre-requisites
Installation
Configuration
This table lists the configurable parameters of the Application Mobility Helm chart and their default values.
Use Cases
After Application Mobility is installed, the dellctl CLI can be used to register clusters and manage backups and restores of applications. These examples also provide references for using the Application Mobility Custom Resource Definitions (CRDs) to define Custom Resources (CRs) as an alternative to using the dellctl CLI.
Backup and Restore an Application
This example details the steps when an application in namespace demo1 is being backed up and then later restored to either the same cluster or another cluster. In this sample, both Application Mobility and Velero are installed in the application-mobility namespace.
Using dellctl:
dellctl backup create backup1 –include-namespaces demo1 –namespace application-mobility
Using Backup Custom Resource:
apiVersion: mobility.storage.dell.com/v1alpha1
kind: Backup
metadata:
name: backup1
namespace: application-mobility
spec:
includedNamespaces: [demo1]
datamover: Restic
clones: []
Using dellctl:
dellctl backup get –namespace application-mobility
Using kubectl:
kubectl describe backups.mobility.storage.dell.com/backup1 -n application-mobility
Using dellctl:
dellctl restore create restore1 –from-backup backup1 \
–namespace-mappings “demo1:restorens1” –namespace application-mobility
Using Restore Custom Resource:
apiVersion: mobility.storage.dell.com/v1alpha1
kind: Restore
metadata:
name: restore1
namespace: application-mobility
spec:
backupName: backup1
namespaceMapping:
“demo1” : “restorens1”
Using dellctl:
dellctl restore get –namespace application-mobility
Using kubectl:
kubectl describe restores.mobility.storage.dell.com/restore1 -n application-mobility
Clone an Application
This example details the steps when an application in namespace demo1 is cloned from a source cluster to a target cluster in a single operation. In this sample, both Application Mobility and Velero are installed in the application-mobility namespace.
Using dellctl:
dellctl backup create backup1 –include-namespaces demo1 –clones “targetcluster/demo1:restore-ns2” \
–namespace application-mobility
Using Backup Custom Resource:
apiVersion: mobility.storage.dell.com/v1alpha1
kind: Backup
metadata:
name: backup1
namespace: application-mobility
spec:
includedNamespaces: [demo1]
datamover: Restic
clones:
– namespaceMapping:
“demo1”: “restore-ns2”
restoreOnceAvailable: true
targetCluster: targetcluster
Using dellctl:
dellctl restore get –namespace application-mobility
Using kubectl:
kubectl get restores.mobility.storage.dell.com -n application-mobility
kubectl describe restores.mobility.storage.dell.com/<restore-name> -n application-mobility
Changing PV/PVC Storage Classes
Create a ConfigMap on the target cluster in the same namespace where Application Mobility is installed. The data field must contain a mapping of source Storage Class name to target Storage Class name. See Velero’s documentation for Changing PV/PVC Storage Classes for additional details.
apiVersion: v1
kind: ConfigMap
metadata:
name: change-storage-class-config
namespace: <application-mobility-namespace>
labels:
velero.io/plugin-config: “”
velero.io/change-storage-class: RestoreItemAction
data:
<source-storage-class-name>: <target-storage-class-name>
Troubleshooting
Frequently Asked Questions
How can I diagnose an issue with Application Mobility?
Once you have attempted to install Application Mobility to your Kubernetes or OpenShift cluster, the first step in troubleshooting is locating the problem.
Get information on the state of your Pods.
kubectl get pods -n $namespace
Get verbose output of the current state of a Pod.
kubectl describe pod -n $namespace $pod
How can I view logs?
View pod container logs. Output logs to a file for further debugging.
kubectl logs -n $namespace $pod $container
kubectl logs -n $namespace $pod $container > $logFileName
How can I debug and troubleshoot issues with Kubernetes?
Why are there error logs about a license?
Application Mobility requires a license in order to function. See the Deployment instructions for steps to request a license.
There will be errors in the logs about the license for these cases:
Uninstallation
This section outlines the uninstallation steps for Application Mobility.
Uninstall the Application Mobility Helm Chart
This command removes all the Kubernetes components associated with the chart.
$ helm delete [APPLICATION_MOBILITY_NAME] –namespace [APPLICATION_MOBILITY_NAMESPACE]
You can watch a demo below, showing you how to move data from Dell Unity to Dell PowerStore, both, On-Premises
And below, you can watch a demo below, showing you how it all looks, moving data from on-premises to PowerFlex on AWS (Off-Premises)