The following figure shows the logical architecture of this solution. The figure includes the PowerFlex compute layer with the OpenShift environment, the PowerFlex storage layer, and the PowerFlex management components:
Figure 4. Logical design of Container Cluster with PowerFlex
The two-layer PowerFlex cluster consists of:
- PowerFlex Compute-only nodes – Three PowerFlex R640 servers running Red Hat OpenShift. The PowerFlex SDC component is installed on each server. The SDC enables PowerFlex storage to be used by applications running on the compute-only nodes.
- PowerFlex Storage nodes – Four PowerFlex R640 servers running the PowerFlex Embedded operating system. Each server is attached with SAS SSDs disks. The PowerFlex SDS component installed on each server which contributes to the PowerFlex storage. The role of SDS is to perform back-end I/O operations as requested by SDC.
- PowerFlex management components – Three PowerFlex R640 servers running ESXi 7.x as the hypervisor hosts multiple PowerFlex management virtual machines (VMs), as follows:
- VMware vCenter Server Appliance (VCSA) deployed as a VM.
- PowerFlex Manger VM that is used for Unified management and automation for PowerFlex Family
- PowerFlex Gateway server is required for deployment of PowerFlex storage system.
- PowerFlex Presentation server is required to connect to PowerFlex storage system for management using GUI.
- Network requirements such as Ethernet switching with L3 routing and trunking capabilities, L2 VLAN ID and tagging, VLAN names and numbers, and port channel with link aggregation control protocol (LACP) are met.
- NTP is configured for correct time synchronization for ESXi hosts, VMs, and all the bare metal servers.
- DNS and PTR records are set up and properly configured.
A SQL Server pod is deployed as source pod on one node with multiple persistent volumes that are attached to it. As data is loaded on to the SQLServer pod, a volume group snapshot is taken using the Dell CSM Volume Group Snapshotter.
The snapshot of the volumes is then used for creating persistent volumes that are used to restore data on a newly deployed SQL Server pod in a different node of the Kubernetes cluster.
The restored data on the newly deployed pod is then verified for data consistency.