A post by Anuraj PD

AppSync is the Integrated Copy Data Management Solution from Dell. AppSync simplifies, orchestrates, and automates the process of generating and consuming copies of production data. By abstracting the underlying storage and replication technologies, and through deep application integration, AppSync empowers application owners to satisfy copy demand for operational recovery and data repurposing on their own. In turn, storage administrators need only be concerned with initial setup and policy management, resulting in an agile, frictionless environment. AppSync automatically discovers application databases, learns the database structure, and maps it through the virtualization layer to the underlying storage LUN. It then orchestrates all the activities required from copy creation and validation through mounting at the target host and launching or recovering the application. Supported workflows also include refresh, expire, and restore production. You can read more about the AppSync here.

New features in AppSync version 4.6

Functional Area

Feature Description

Summary of Benefits

Agent

More secure agent communication

The default cryptography algorithm for UNIX agent communication has been updated

to ECDSA from SSH-RSA. The newly added agents use this by default, and previously added agents can update to ECDSA as well using, reset ssh keys option. This also helps support RHEL 9 operating system.

Application Improved Oracle database discovery

AppSync now has an improved automatic oracle database discovery using the PMON process, which removes the necessity for mandatory /etc/oratab file entry for database discovery.

Application Support for MSSQL 2022 in Kubernetes and Windows environments.

All the AppSync use cases are now supported with MSSQL 2022 databases in both Kubernetes Linux containers, and Microsoft windows platforms.

Application Support of SUSE RKE1 and RKE2 Kubernetes distribution

All the AppSync Kubernetes used cases are now supported on SUSE Rancher Kubernetes Engine 1 and 2 distributions.

Application Support for vSphere 8.0

All the AppSync VMware use cases are now supported on vSphere 8.0 and ESXi 8.0.

Serviceability Ability to schedule Server/ Cluster maintenance period

This feature helps users to suspend all scheduled jobs in order to perform maintenance activities on any Server/Cluster as needed, without encountering failed AppSync jobs, or false alerts.

Storage Deprecate the support for VNX.

Support of VNX array has been discontinued from this release onwards. Ensure to

expire all VNX copies and remove VNX array from AppSync server before upgrading

to current version.

Storage Support for SAP HANA distributed layouts (shared/mixed) on PowerMax storage

Copy management is now supported on SAP HANA scale-out configurations on

PowerMax storage.

Storage Support of Kubernetes application on PowerStore

All the AppSync Kubernetes use cases are now supported on PowerStore.

Storage Support for applications on PowerMaxOS 10.0.1.

All the AppSync use cases are now supported on PowerMaxOS 10.0.1.

In this demo we will setup AppSync for repurposing the PostgreSQL database running on vanilla Kubernetes using the persistent storage from Dell PowerStore array.



In order to integrate the AppSync with Kubernetes cluster we need to create a service account in the Kubernetes cluster with the required privileges. The privileges required by the AppSync is provided in the AppSync installation guide. Below is the sample yaml file with the specification to create the service account with the required privileges.

# cat appsync.yaml

apiVersion: v1

kind: Namespace

metadata:

name: appsync


apiVersion: v1

kind: ServiceAccount

metadata:

name: appsync-service-account

namespace: appsync


apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRole

metadata:

name: api-cluster-role

rules:

– apiGroups:

– “”

– apps

– rbac.authorization.k8s.io

– apiextensions.k8s.io

– velero.io

– snapshot.storage.k8s.io

– storage.k8s.io

– volumegroup.storage.dell.com

resources:

– namespaces

– nodes

– persistentvolumeclaims

– persistentvolumes

– pods

– pods/exec

– secrets

– services

– deployments

– replicasets

– statefulsets

– volumesnapshotclasses

– volumesnapshotcontents

– volumesnapshots

– storageclasses

– backupstoragelocations

– storageclasses

– backupstoragelocations

– backups

– restores

– customresourcedefinitions

– clusterrolebindings

– serviceaccounts

– replicationcontrollers

– clusterroles

– dellcsivolumegroupsnapshots

– serverstatusrequests

– deletebackuprequests

verbs:

– get

– list

– create

– update

– patch

– delete

– bind


apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

name: appsync-cluster-role-binding

roleRef:

apiGroup: rbac.authorization.k8s.io

kind: ClusterRole

name: api-cluster-role

subjects:

– kind: ServiceAccount

name: appsync-service-account

namespace: appsync


apiVersion: v1

kind: Secret

metadata:

annotations:

kubernetes.io/service-account.name: appsync-service-account

name: appsync-service-account-secret

namespace: appsync

type: kubernetes.io/service-account-token

Apply the yaml manifest file to create the Kubernetes objects.

# kubectl apply -f appsync.yaml

Get the service account token from the secret.

# kubectl describe secret appsync-service-account-secret -n appsync

For adding the Kubernetes cluster into the AppSync go to Settings -> Infrastructure Resources -> Kubernetes Clusters -> Add Cluster and fill in the cluster details.



AppSync will do discovery of the Kubernetes cluster after it is successfully added and we can see all the Kubernetes namespaces in the AppSync console. For creating the copy, go to Copy Management -> Select “Copies” -> Select “Kubernetes Cluster” -> Click on the <Kubernetes Cluster Name> -> Select the <Namespace> to create copy -> Create Copy with Plan.


In this demo we are creating the copy for repurposing as development copy, so we will select “Data Repurposing” here. Data Repurposing workflow is used to create copies of your database and file systems for application testing and validation, test and development, reporting, data masking, and data analytics. AppSync identifies copies that are created from a repurpose action as first generation and second-generation copies. The source of a second-generation copy is a first-generation copy. You can create multiple second-generation copies from a first-generation copy. Data Protection workflow is used for operational recovery.


AppSync provides the capability for creating automated application consistent copies for both data protection and data repurposing workflow by using the application templates. AppSync comes with application templates for most of the popular applications and provide the capability to extend these by creating user defined application templates. The application template is used only during the creation of first-generation copies, and the second-generation copies are considered application consistent, if the first generation copy is application consistent and the first generation copy is not modified before creating the second generation copy.







Now we can mount the 2nd generation copy to the same Kubernetes cluster but to a different development namespace, so that it can be used for development activities. Typically, in the data repurposing work flow the first-generation copy is not mounted and only the second-generation copies are mounted. The first-generation copies will act as the base on which multiple second-generation copies are created for different purposes. Once the use is complete the second-generation copies are discarded.





Verify the both the production and development copies of the database is running the in the Kubernetes cluster.


We can review the volume topology from the PowerStore Console.


You can see a demo, how it all works, below.


Leave a Reply Cancel reply