Delphix on Dell PowerFlex: Accelerating DevOps Workflows
Executive summary
Executive summary
The Delphix DevOps platform helps enterprises consistently deliver production-quality data to stakeholders across all phases of application development. The platform enables ingestion of data from heterogeneous data sources, virtualizes that data, provides the capability to mask sensitive data, and then delivers it to key stakeholders as lightweight virtual data copies.
Dell PowerFlex is a software-defined infrastructure platform that is designed to reduce operational and infrastructure complexity, empowering organizations to move faster by delivering flexibility, elasticity, and simplicity with predictable performance and resiliency at scale. The PowerFlex family provides a foundation that combines compute and high-performance storage resources in a managed, unified fabric. With the capabilities available as part of the PowerFlex platform, administrators can easily implement a scalable, high performance, and flexible solution that is designed for the modern data center.
The combination of Dell PowerFlex and the Delphix DevOps platform simplifies the provisioning & automation of applications and their test data onto a single, consolidated infrastructure platform that is flexible enough to handle environments used by enterprise customers today. This paper describes the configuration of a Delphix DevOps appliance deployed within a VMware environment on Dell PowerFlex. It also describes the deployment of PostgreSQL databases, provisioning virtual databases (VDB) using the Delphix engine, and the application of Delphix’s data masking capabilities.
Introduction
Audience
This white paper is intended for sales engineers, field consultants, IT administrators, development and test engineers, data managers and anyone else who is interested in configuring and deploying Delphix DevOps appliance with PowerFlex.
Readers are expected to have an understanding and working knowledge of VMware vSphere, Virtual Machines, NFS share protocol and Dell PowerFlex.
Terminology
The following table provides definitions for some of the terms that are used in this document.
Table 1. Terminology
|
Term |
Definition |
|
ASDD |
Automated Sensitive Data Discovery |
|
CSI |
Container Storage Interface |
|
CSM |
Container Storage Modules |
|
DNS |
Domain Name System |
|
dSource |
Data Source |
|
HCI |
Hyper Converged Infrastructure |
|
ITOM |
IT Operational Management |
|
LCM |
Life Cycle Management |
|
MDM |
Meta Data Manager |
|
NFS |
Network File System |
|
OVA |
Open Virtualization Appliance |
|
SDC |
Storage Data Client for PowerFlex |
|
SDS |
Storage Data Server for PowerFlex |
|
VDB |
Virtual Database |
|
VM |
Virtual Machine |
We value your feedback
Dell Technologies and the authors of this document welcome your feedback on the solution and the solution documentation. Contact the Dell Technologies Solutions team by email.
Author: Anil Kumar Suraram
Contributors: Ruben Catarrunas (Delphix), Simon Stevens
Note: For links to additional documentation for this solution, see Dell Technologies Solutions Info Hub for PowerFlex.
Product overview
PowerFlex family
PowerFlex software-defined infrastructure enables broad consolidation across the data center, encompassing almost any type of workload and architecture. The software-defined architecture offers automation and programmability of the complete infrastructure and provides scalability, performance, and resiliency to enable effortless adherence to stringent workload SLAs.
The PowerFlex family provides a foundation that combines compute and high-performance storage resources in a managed unified fabric. PowerFlex comes in flexible deployment options (rack, appliance, or custom nodes and in the public cloud) that enable independent (two-layer), HCI (single-layer), or mixed architectures. PowerFlex is ideal for high-performance applications and databases, building an agile private/hybrid cloud, or consolidating resources in heterogeneous environments.

Figure 1. PowerFlex Family
PowerFlex software components
Software is the key differentiation in the PowerFlex offering. PowerFlex software components not only provide software-defined storage services, but also help simplify infrastructure management and orchestration. This software enables comprehensive IT Operational Management (ITOM) and Life Cycle Management (LCM) capabilities that span compute as well as storage infrastructure, from BIOS and Firmware to nodes, software, and networking.
PowerFlex
PowerFlex is the software foundation of PowerFlex software-defined infrastructure. It is a scale-out block storage service that is designed to deliver flexibility, elasticity, and simplicity with predictable high performance and resiliency at scale.
PowerFlex Manager
PowerFlex Manager is the software component in the PowerFlex family that enables ITOM automation and LCM capabilities for PowerFlex systems. Starting with PowerFlex 4.0, the unified PowerFlex Manager brings together three separate components used in previous releases – PowerFlex Manager, the core PowerFlex UI, and the PowerFlex gateway. The new PowerFlex UI runs in Kubernetes and embraces a modern development framework.
PowerFlex with NVMe over TCP (NVMe/TCP)
NVMe is a family of open specifications that defines an industry standard for both a logical interface and a communication protocol for accessing block storage across an internal PCIe fabric or through external fabrics such as TCP/IP and FC. NVMe is designed to take advantage of the internal parallelism and low latency inherent in flash-based media SSDs.
NVMe/TCP is an extension of the NVMe base specification that defines the binding of the NVMe protocol to message-based fabrics using TCP. By binding the NVMe protocol to TCP, NVMe/TCP enables the efficient end-to-end transfer of commands and data between NVMe hosts and NVMe controller devices by any standard Ethernet-based TCP/IP networks.
From PowerFlex release 4.x onwards, support for NVMe/TCP has been added for on-premises deployment with the introduction of a new Storage Data Target (SDT) component installed in the storage layer. The NVMe initiator in the operating system or hypervisor communicates with the SDT, which then communicates with the Storage Data Server (SDS). The NVMe initiator is part of the kernel of the application host operating system or hypervisor.

Figure 2. PowerFlex with NVMe/TCP
For more information, see PowerFlex with NVMe over TCP.
PowerFlex deployment architectures
PowerFlex software-defined storage offers flexibility of deployment architecture to help best meet the specific deployment and architectural requirements. PowerFlex can be deployed in a two-layer (Independent), single-layer (Hyperconverged/HCI), or a mixture of the two architectures (Mixed). OpenShift environments on PowerFlex use a two-layer (independent) architecture.

Figure 3. PowerFlex deployment architectures
Independent architecture
In an independent architecture, or two-layer architecture, some nodes provide storage capacity and host datasets while other, separate, and independent nodes, host applications and workloads. Compute and storage resources can be scaled independently by adding nodes to the cluster. This separation of compute and storage resources can also help minimize software licensing costs in certain situations. And this architecture can be ideal for hosting high-performance high-value databases and application workloads.
Hyperconverged architecture
In an HCI architecture, each node in the cluster contributes storage resources and hosts applications and workloads. This architecture allows you to scale your infrastructure uniformly and with a predefined building block that adds both storage and compute resources. This architecture is appropriate for data center and workload consolidation.
Mixed architecture
A mixed architecture is a combination of both the HCI and Independent architectures. As shown in Figure 3 there are some storages only nodes, compute only nodes, and HCI nodes as a part of the same PowerFlex cluster. This is a desirable architecture when working with an existing compute infrastructure and adding high-performance software-defined infrastructure. This can also be a starting point for a two-layer deployment design as external workloads are migrated to PowerFlex.
PowerFlex consumption options
PowerFlex rack
PowerFlex rack is a software-defined storage platform that delivers flexibility, elasticity, and simplicity with predictable performance and resiliency at scale by combining compute as well as high-performance storage resources in a managed unified network. This rack-scale engineered system, with integrated networking, enables customers to achieve the scalability and management requirements of a modern data center.
PowerFlex appliance
PowerFlex appliance is a PowerEdge server which has been configured to be a node in a software-defined storage deployment. This offering allows customers the flexibility and savings to bring their own compatible networking.
PowerFlex custom nodes
PowerFlex Custom Nodes are validated server building-blocks configured for use with PowerFlex. They are available with thousands of configuration options and are available for customers who prefer to build their own environments.
Dell APEX Block Storage for Public Cloud
PowerFlex software is also available in the public cloud as Dell APEX Block Storage for Public Cloud. It offers the same on-premises benefits of high-performance, linear scalability, and high resilience as in cloud. It also adds cloud-specific benefits, such as large volume sizes, extreme performance based on NVMe drives, and predictable scalability. The Dell APEX Block Storage self-healing architecture simplifies and increases the availability of infrastructure. It is designed to remain running even when it encounters failures. With fast rebuilds, Dell APEX Block Storage recovers rapidly from failures and keeps operating, without degrading performance or compromising availability. You can also extend this availability and configure it to protect your application availability across multiple availability zones.
PowerFlex CSI/CSM
An important component outside of PowerFlex that enables a flexible consumption model for Kubernetes is the PowerFlex CSI driver, developed as a part of the Dell Kubernetes strategy. After loading the CSI driver for PowerFlex into Kubernetes, it can be used to provision persistent volumes from the underlying PowerFlex storage resource. If the Kubernetes deployment is running low on PowerFlex storage resources, you can add PowerFlex storage nodes to increase the system capacity and performance.
The CSI driver connects the PowerFlex system and Kubernetes deployments. It is a storage broker which dynamically provisions volumes from PowerFlex through the PowerFlex API gateway to the Kubernetes cluster. Once the volume is available on PowerFlex, it is immediately mapped to the requesting pod. If a pod is destroyed or rescheduled, the CSI plug-in ensures that the volumes are remapped upon rescheduling of that pod.
- Customers running Kubernetes clusters on PowerFlex use the Dell Container Storage Modules (CSM), which extend the CSI driver capabilities. These modules:
- Provide enterprise storage capabilities to Kubernetes for cloud-native stateful applications.
- Reduce management complexity, so that developers can independently use enterprise storage with ease and automate daily operations.
- Extends storage functionality and capabilities beyond using the CSI driver alone.
These modules include snapshot, observability, authorization, application mobility, and resiliency.
PowerFlex supports multiple operating systems, different deployment options on-premises and public cloud deployment models (available in AWS and Azure). PowerFlex is validated with leading Kubernetes distributions as shown in Figure 4.
Delphix DevOps appliance
Delphix DevOps appliance
The Delphix DevOps Appliance integrates Delphix Continuous Data and Continuous Compliance capabilities into a unified solution. This appliance streamlines and accelerates DevOps workflows by enabling efficient test data management. The Delphix appliance supports a wide range of databases and unstructured files. It integrates seamlessly with existing DevOps tools and workflows to deliver several key benefits:
- Rapid Data Provisioning: Creates application-consistent copies of production databases in minutes, providing developers with readily available test data.
- Space-Efficient Virtual Data Sets: Reduces storage footprint by creating lightweight, virtual copies of production data for testing purposes.
- Data Masking and Security: Discovers and masks sensitive data automatically, ensuring compliance and data privacy during testing.
- Automated Data Delivery: Integrates with DevOps tools to automate data provisioning, refresh, rewind, and other tasks within CI/CD pipelines.
- Self-Service Access: Provides developers with a user-friendly interface (UI), command-line interface (CLI), and APIs for managing test data on demand.
Solution architecture
Solution architecture
This section details the deployment of the Delphix DevOps appliance using PowerFlex storage and provisioning virtual databases (VDBs) in the Delphix environment from a PostgreSQL database.
Logical architecture
The following diagram shows the logical architecture of this solution:

Figure 5. Logical design of Delphix DevOps appliance with Dell PowerFlex
The PowerFlex cluster is deployed on four PowerFlex storage-only nodes and three compute-only nodes using PowerFlex Manager. The four storage-only nodes are installed with the PowerFlex embedded operating system, and the compute-only nodes are installed with VMware ESXi hypervisor.
For more information about the test setup used in this paper, please see the Test configuration.
The Delphix DevOps Appliance is deployed on Dell PowerFlex. The Delphix DevOps Appliance consists of a set of components that work together to manage and provision virtual databases. These components are deployed as virtual machines on the Dell PowerFlex compute-only cluster nodes.
- Source Environment: This refers to the environment where the original PostgreSQL database resides. It includes the server hardware, operating system, and the running PostgreSQL instance.
- Delphix Engine: This is the software platform that manages and virtualizes the databases. It interacts with the source environment to capture and maintain a representation of the source database.
- Target environment: This refers to the environment where the data copies will be provisioned.
- Staging environment: This refers to the environment where the sourced data can be pre-processed to minimize any performance concerns.
For more information about the Delphix appliance configuration used in this solution, see the next section.
Note: In this test setup, a single system is used for both the Target environment and the Staging environment.
Network architecture
The following diagram shows the network architecture of this solution.

Figure 6. Network design of Delphix DevOps appliance with Dell PowerFlex
At the physical layer, two Top of Rack (TOR) switches are used for redundancy and load-balancing purposes at each site. A peer link is configured on both the TOR switches.
The network ports of different network interfaces on each PowerFlex nodes are configured to carry PowerFlex management, PowerFlex data1, and PowerFlex data2. An LACP bond is configured at the host level with two network interfaces to form a single-bonded (logical) interface for increased bandwidth and redundancy.
The bond0 and bond1 are the LACP bonded interfaces and are configured with multiple VLAN tagged interfaces for all the PowerFlex networks. The traffic is logically separated by creating VLANs which separate different traffic on the bond interfaces as shown in the preceding figure. PowerFlex data1 and data2 are used for data traffic.
The Delphix DevOps appliance uses the operating system management network to communicate between the Delphix engine, source, staging, and target environments.
The following table shows the different networks that are configured for this solution. For more information, see the Dell PowerFlex Appliance with PowerFlex 4.x Network Planning Guide | Dell US.
Table 1. Network details
|
Network type |
VLAN ID |
|
OS management |
105 |
|
PowerFlex management |
150 |
|
PowerFlex Data 1 |
151 |
|
PowerFlex Data 2 |
152 |
|
vMotion |
106 |
Deploying the Delphix engine on VMware
Prerequisites
The following requirements must be met before installing the Delphix engine on VMware.
- Ensure that the PowerFlex cluster is installed and configured.
- Create a PowerFlex storage volume for data provisioning (using Delphix engine Continuous Data) and map it to the compute node where the Delphix engine is going to be installed.
- Create a PowerFlex storage volume for data masking (using Delphix engine Continuous Compliance) and map it to the compute node where the Delphix engine is going to be installed.
- Contact Delphix support to obtain the Delphix virtual appliance file (OVA) for installation in a VMware ESXi environment.
- For the full list of requirements and best practice recommendations for installing the Delphix engine on VMware, see Virtual Machine Requirements for the VMware Platform.
- The Delphix engine requires a single virtual network to be configured, see Optimal Network Architecture for the Delphix engine for more details.
- Obtain the DNS, NTP, default gateway, FQDN, and IP address of the Delphix engine.
Installation steps
This section details the steps for installing the Delphix engine using the Delphix supplied OVA file and using Dell PowerFlex storage for the underlying storage needs.
- Log in using the vSphere client to the vSphere server (or vCenter Server) where the Delphix engine needs to be installed.
- In the vSphere Client, click File.
- Select Deploy OVA Template.
- Navigate to the OVA file.
- Click Next.
- Select a hostname for the Delphix engine. This hostname will also be used in configuring the Delphix engine network.
- Select the data center where the Delphix engine will be located.
- Select the PowerFlex compute-only cluster and select the compute node running the ESXi hypervisor.
- Select a local datastore/volume to store data related to the Delphix operating system and Delphix virtual machine configuration. It should be thin-provisioned, with a minimum free space of 127 GB to store the data.
- Select the single virtual network that the Delphix engine uses.
- Click Finish. The installation begins, and the Delphix engine is created in the specified location.
- Once the installation has been completed, select the storage requirements as per the engine type requirements.
- For Continuous Data, edit the Delphix engine VM settings.
Create and add a minimum of four virtual disks that are provisioned from the PowerFlex storage volume created for data provisioning to store databases in the Delphix engine Continuous Data. The Delphix engine will stripe the database across these virtual disks, so for optimal I/O performance, each virtual disk should be equal in size and be configured as thick provisioned—Eager Zeroed. Additionally, these virtual disks should be distributed as evenly as possible across all SCSI I/O controllers, as shown in the following figure:

Figure 7. Delphix engine Continuous Data resource settings
- For Continuous Compliance, edit the Delphix engine VM settings.
Create and add a virtual disk that is provisioned from PowerFlex storage created for data masking to store data for Delphix engine Continuous Compliance operations.

Figure 8. Delphix engine Continuous Compliance resource settings
- Power on the Delphix engine VM and proceed with the initial system configuration as described in Set up network access to the Delphix engine.
- For more information about the Delphix deployment on VMware, see Delphix deployment on VMware.
Set up network access to the Delphix engine
This section describes the steps for configuring the network access to the Delphix engine.
- Power on the Delphix engine VM and open the console.
- Wait for the Delphix management service and Delphix boot service to come online. This might take up to 10 minutes during the first boot.
- Press any key to access the sysadmin console.
- Enter sysadmin@SYSTEM for the username and sysadmin for the password.
The available network settings are shown along with the instructions for editing.
- Configure the hostname, DNS, static address, and default gateway.
- Commit the changes.

Figure 9. Network configuration
- Verify the Delphix engine access through a web browser by navigating to the displayed IP address.
- For more information about configuring the network access to the Delphix engine, see Network Access to the Delphix engine.
Initial setup of Delphix engine for Continuous Data
This section describes the steps for configuring the initial setup of the Delphix engine for Continuous Data through web interface.
- Connect to the Delphix engine Continuous Data at https://login/index.html#serverSetup.
- The Delphix setup application launches when it connects to the server.
Enter sysadmin login credentials, which initially default to the username sysadmin, with the initial default password of sysadmin. On the first login, which prompted it to change the initial default password. - The screen to configure the Delphix engine is shown as in the following figure:

Figure 10. Delphix Continuous Data
- Select the engine type (Continuous Data or Continuous Compliance)
- Choose the engine type as Continuous Data for data virtualization.
Note: The setup for validation used two separate Delphix engines: one for Continuous Data and another for Continuous Compliance.
- Click Next.
- Configure user credentials for the following roles: System Administrator, Engine Administrator
- Select the storage configuration that is defined for the Delphix engine Continuous Data for data and logs.
- Select Network for access to the Delphix engine.
- Select System Time to synchronize the time between Virtual databases.
- Select Authentication as the default for enabling authentication services using user credentials defined for roles (System Administrator, Engine Administrator).
- Configure registration to allow Delphix support to access the Delphix engine. Note: the Delphix engine will work without it being registered.

Figure 11. Delphix engine initial setup Summary
For more information about configuring the Delphix engine for Continuous Data, see Delphix engine initial setup.
Delphix PostgreSQL database configuration
Delphix PostgreSQL database configuration
This section describes the configuration of a PostgreSQL database with Delphix. This includes Delphix engine, source host (Linux), staging/target host (Linux) configurations.
Delphix uses NFS (Network File System) to expose its datasets to target Linux hosts. This allows applications running on those hosts to access and manipulate the data stored within Delphix Virtual Databases (VDBs).
For more details, see Delphix Continuous Data with PostgreSQL.
Delphix engine configuration
The Delphix engine requires a dedicated plug-in as part of integration with the PostgreSQL database. This plug-in is used to discover existing PostgreSQL instances and enables the creation of virtual databases (VDBs) within the Delphix environment.
Follow the below instructions to install the PostgreSQL plug-in for Delphix engine (Continuous Data).
- From Delphix download, go to the latest engine download folder.
- Find the PostgreSQL plug-in: /Plugins/PostgreSQL and download it.
- Extract the downloaded file to get a JSON file.
- Log in to the Delphix engine (Continuous Data) and go to Manage > Plugins and click the ‘+’ icon.
- Drag (or upload) the downloaded JSON file.
Source host configuration
This section describes the details of the source host and the PostgreSQL database configuration and adding the source environment to Delphix.
Run the PostgreSQL
This section details the process of installing and running the PostgreSQL service in the source environment.
- Ensure that the source environment is configured with the supported operating system.
For supported versions on the operating system and PostgreSQL database, see Postgres Support Matrix .
Note: This solution is validated on RHEL 8.7 and database version 15.6. For more information about the test configuration, see Test configuration.
- Download and install the PostgreSQL software on the source environment:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql15-server
- Set up directories and ownership prior to initializing the PostgreSQL database.
mkdir /usr/local/pgsql/data -p
chown postgres /usr/local/pgsql/data
su - postgres
- Initialize Postgres.
pg_ctl init -D /usr/local/pgsql/data
- Start Postgres.
pg_ctl start -D /usr/local/pgsql/data
Create a toolkit directory
- Create the directory for the Delphix toolkit to store the files required for communication between Delphix and the source environment.
sudo mkdir /opt/delphix
- Assign the "postgres" user ownership and permissions to the directory.
sudo chown postgres /opt/delphix/
sudo chmod 770 /opt/delphix/
Postgres configuration
Edit the Postgres Configuration File
- Edit the postgres.conf file as the root user.
vi /usr/local/pgsql/data/postgresql.conf
- Enable remote connections.
listen_addresses='*';
- Save the file.
For additional configurations in the postgres.conf file, see the Source database requirements.
Edit the pg_hba.conf file
- Edit the pg_hba.conf file to allow client connections from the Delphix engine.
vi /usr/local/pgsql/data/pg_hba.conf
- Add the below lines to the bottom of the file. This allows connectivity from the Delphix engine and the staging environment to the source environment.
host all all <ip-address_of_Delphix_engine>/32 trust
host all all <ip-address_of_staging_target>/32 trust
host replication all <ip-address_staging_target>/32 trust
Restart Postgres
- Restart the postgres service to activate the updated configurations.
su - postgres
pg_ctl restart -D /usr/local/pgsql/data
Adding the source environment to the Delphix engine (Continuous Data)
This section describes the details of adding a source environment for the PostgreSQL database to the Delphix engine.
- On the Delphix engine as an administrator, go to Manage->Environments.
- Click Add Environment, select UNIX/Linux as the platform and Standalone Host as the configuration type.
- Add an environment named Postgres Source Host.
- Add the host address of the source PostgreSQL host.
- Specify the SSH port (the default is 22) used for communication.
- Enter the username and password for a user with access to the Source PostgreSQL host.
- Enter the toolkit path - /opt/delphix/.
- Click Next.
- Configure the Login Type as Username and Password.
- Wait for the process to complete.
Staging host configuration
This section describes the details of configuring the staging host and PostgreSQL database and adding the staging environment to Delphix.
- Install and run the PostgreSQL service with the same version as the source host.
- Create Toolkit Directory for the staging host is the same as the source host.
- Ensure the directory /mnt exists and has read/write/run access for others.
- sudo chmod o+w /mnt
- Ensure the "postgres" user has access to the toolkit directory.
- sudo chmod o+rwx /opt/delphix/
- Adding the staging environment to the Delphix engine is the same as the source host.
Target host configuration
Follow the same steps as listed above for the staging host for the target host configuration. For this paper, a single setup was used for both the staging and target environments.
Delphix PostgreSQL data provisioning
Delphix PostgreSQL data provisioning
This section details the process of creating a data source (dSource) and provisioning a virtual database (VDB) for a PostgreSQL database using Delphix.
Create the dSource
This section details the process of linking PostgreSQL data sources in Delphix, which includes creating a dSource (data source) object within the Delphix Engine.
This dSource points to the source PostgreSQL database and allows Delphix to capture and manage copies of that data.
- Log in to the Delphix engine (Continuous Data) and navigate to Manage > Environments.
- Select the environment containing the source PostgreSQL instance.
- Click the Databases tab and locate the PostgreSQL installation within the source environment.
- Click the + icon to add a database with a name.
- Navigate to Manage > Datasets, click +, and add dSource.
- On the Source window, select the database name created earlier.
- Under Delphix Initiated Backup – Single Database ingestion, click Add.
- Set the PostgresDB Replication User and password to be delphix.
- Set the source host address and leave the source port as 5432.
- Leave the staging port as 5433 and click Next.
- On the dSource Configuration page, name the dSource.Create a group Postgres and click Next.
- Choose the staging environment and user as postgres.
- Set the Mount Base to /mnt.
- No changes to policies, and no hooks.
- Review the summary and click Submit.
- Check that the dSource creation has been successfully completed in the Actions tab list.
- Check dSource created with the snapshot under the group created.

Figure 12. dSource summary
For more information about creating dSource, see Linking PostgreSQL data source.
Provision a VDB
This section details the process of to creating a VDB (virtual database) on PostgreSQL within Delphix. Delphix manages VDB creation through its own dSource (data source) and provisioning processes.
- Go to Manage > Datasets, select the snapshot, and click the leftmost icon to provision a database.
- In the Wizard, select Target Host as the environment and PostgreSQL instance as installation with the user as postgres.
- Select Add Dataset Group and name the target group and set the VDB name to devdb.
- Accept all other defaults and click through the Wizard.
- Review the summary page and click Submit.
- Check that the VDB provision has been successfully completed in the Actions tab list.
- Check the VDB provisioned under the created target group.

Figure 13. VDB Summary
For more information about provisioning a virtual database (VDB), see Provisioning PostgreSQL virtual database.
Delphix PostgreSQL data masking
Delphix PostgreSQL data masking
VDB (Virtual Database) masking is a feature specific to the Delphix data virtualization platform. This feature allows organizations to protect sensitive data by masking them in non-production environments. For more details, see Delphix Continuous Compliance.
Prerequisites
The following requirements must be met before masking using the Delphix engine on VMware.
- Deploy a separate Delphix engine for Continuous Compliance (data masking). For more details on deployment, see Deploying the Delphix engine on VMware.
- Obtain the DNS, NTP, default gateway, FQDN, and IP address of the Delphix engine (data masking).
- Ensure network access has been configured for the Delphix engine (data masking). For more details, see Set up network access to the Delphix engine.
Delphix engine (data masking) Initial setup
This section describes the steps for configuring the initial setup of Delphix engine for Continuous Compliance (data masking).
- Connect to the Delphix engine (data masking) at https://login/index.html#serverSetup. The Delphix setup application is launched.
- Enter sysadmin login credentials, which initially default to the username Admin, with the initial default password of Admin-12. On the first login, which prompted it to change the initial default password.
- The screen to configure the Delphix engine is shown in the following figure:

Figure 14. Delphix engine (data masking) dashboard
- Select the engine type (Continuous Data or Continuous Compliance)
- Choose the engine type as Continuous Compliance for data masking.
- Click Next.
- Enter the Continuous Compliance password (the default is Admin-12).
- Click Validate to validate the entered password with a masking service.
- In the Administrator tab, enter user credentials for various roles (System Administrator, Masking Administrator).
- Select the storage configuration defined for the Delphix engine Continuous Compliance for data masking.
- Select Network for access to the Delphix engine.
- Select System Time to synchronize the time between Virtual databases.
- Select Authentication as the default for enabling authentication services using user credentials defined for roles (System Administrator, Masking Administrator).
- Configure registration to allow Delphix support to access the Delphix engine, but the Delphix engine can also work without being registered. The following figure shows the Delphix engine initial setup summary:

Figure 15. Delphix engine (data Masking) initial setup summary
For more information about configuring the initial setup of the Delphix engine for Continuous Compliance through web interface, see Delphix engine (data masking) Initial setup.
Add an application
This section details the process for creating an application that is required to be assigned as a tag to the Delphix engine environment.
- Log in to the Delphix engine and enter the Username and Password.
- The default username is Admin.
- The default password is Admin-12.
- On the Environments List/Summary screen, click the + Application button.
- Enter a name for the Application name.
- Click Save.
For more information about adding an application to the Delphix engine, see Adding an application in managing environments.
Create an environment
This section details the process for creating an environment in the Delphix engine. An environment is used to describe a collection of masking jobs associated with databases.
- On the Environments List/Summary screen, click the Add Environment button.
- Select the Application Name from the drop-down list created in the previously.
- Enter a name for the Environment.
- Select Mask from the Purpose drop-drown list.
- Click Save.
- Check that the environment has been successfully created.
For more information about creating an environment to the Delphix engine, see Creating an environment.
Create a basic connector
This section details the process for creating a connector for the PostgreSQL database to connect to the Delphix engine.
- Log in to the Delphix engine and click on the environment.
- Click the Connectors tab and click on the Connection button.
- Enter the following connection Details:
- Choose Database - PostgreSQL from the Type drop-down list.
- Enter a name for the connector.
- Type public (in lowercase) in the Schema Name box.
- Enter the IP address of the Target host IP field.
- Enter 5434 as the port number for the listener on the Linux Target.
- Select Authentication Type as Username/Password.
- Choose Username as postgres.
- Use the Test Connection button to verify the connection.
- Save the connection.
- Check that the connector has been successfully created in the Environment name.
Create a rule set
This section details the process for creating a rule set for Postgres in the Delphix engine. The rule set is a collection of Postgres tables that the Delphix engine uses for profiling and masking.
- On the Environment List/Summary screen, click the Environment Name.
- Click the Rule Sets tab and click the Rule Set button.
- Provide the details for the rule set as follows:
- Select the Database for the source data.
- Enter name in the name field for the Rule Set.
- Select the connector name from the Connector drop-down list.
- Click Next.
- Click Add Tables.
- Check one or more PostgreSQL database table names to select in the rule set.
- Click Save.
- Check that the Rule Set has been successfully created in the Environment name.
For more information about creating a new rule set in the Delphix engine, see Creating a new rule set.
Create a profiling job
This section details the process of creating a profile job to discover sensitive data for a PostgreSQL database in the Delphix engine.
- On the Environment List/Summary screen, click on the Environment Name.
- Click the + Profiling Job button.
- On the Create Profile Job screen, enter the details as follows:
- Select Rule Set from the Rule Set drop-down list.
- Enter the profile job name.
- Choose ASDD Standard from the Profile Sets drop-down list.
- Set No. of Streams to 1.
- Leave other fields at their default values.
- Click Save.
- Check that the profile job has been successfully created in the jobs list for the environment.
Run profile job
This section details the process of running a profile job to discover sensitive data for a PostgreSQL database in the Delphix engine.
- Click the Run button on the profile job created in the Jobs list for the environment.
- Check that the profile job status has moved to running.
- Click the Monitor tab > Job Executions to see the list of jobs and their progress.
- Click the profile job name to view the job details for completion.
For more information about creating a profile job in the Delphix engine, see Create Profile Job.
Create and run a mask job
This section details the process to create and run a masking job to mask sensitive data for a PostgreSQL database in the Delphix engine.
- On the Environment List/Summary screen, click the Environment Name.
- Click the + Masking Job button.
- Enter the required details in the Create Masking Job dialog:
- Enter the job name for masking.
- Choose In-Place from the Masking Method.
- Select Rule Set from the Rule Set drop-down list.
- No. of Streams: 1
- Update Threads 1
- Leave other fields at the default values.
- Click Save.
- Check that the masking job has been successfully created in the jobs list for the environment.
For more information about creating a masking job in the Delphix engine, see Create Masking Job.
Run masking job
This section details the process of running a masking job to mask sensitive data for a PostgreSQL database in the Delphix engine.
Before running the masking job, check the values of the PostgreSQL database table (an example is shown as follows):

Figure 16. Before running a masking job
To run the masking job:
- Click the Run button on the masking job created in the Jobs list for the environment.
- Check that the masking job status has moved to running.
- Click the Monitor tab > Job Executions to see the list of jobs and their progress.
- Click the masking job name to view the job details for completion.
- Check PostgreSQL table values after the masking job is completed.
- Verify that the values have been masked (an example is shown as follows):

Figure 17. After running a masking Job
Validation results
Validation results
This section details the various results obtained from the Delphix engine using a sample PostgreSQL database.
The following table summarizes the results achieved on a PostgreSQL database with a 2TB workload. The operations include creation, refresh, rewind, and concurrent creation and refresh of multiple virtual databases (VDBs).
Table 2. Delphix: Create, refresh, rewind, and multiple VDB creation/refresh simultaneously
|
Test (PostgreSQL with 2 TB database size) |
Delphix Execution Time |
|
Create 1 VDB |
6 sec |
|
Refresh 1 VDB |
9 sec |
|
Rewind 1 VDB |
9 sec |
|
Create 10 VDB simultaneous |
2 min |
|
Refresh 10 VDB simultaneous |
2 min |
The following table summarizes the performance results achieved on scaling PostgreSQL virtual databases with a 2TB workload each, measured using the pgbench tool.
Table 3. Delphix engine performance results while scaling VDBs
|
pgbench configuration (TPCB-like workload) |
Delphix |
PowerFlex |
||||||||
|
No. of VDBs/host |
No. of concurrent database sessions |
Jobs |
TPS |
Avg latency |
NFS Read IOPS |
NFS Write IOPS |
Read IOPS |
Write IOPS |
Read latency |
Write latency |
|
1 VDB x 1 Target |
80 |
20 |
5186 |
15 ms |
10 k |
10 k |
9 k |
9 k |
0.45 ms |
0.85 ms |
|
4 VDB x 4 Target |
4x80 |
4x20 |
10471 |
30 ms |
18 k |
13 k |
21 k |
13 k |
0.52 ms |
1.01 ms |
|
8 VDB x 8 Target |
8x80 |
8x20 |
11416 |
50 ms |
21 k |
13 k |
25 k |
13 k |
0.52 ms |
1.01 ms |
The following table summarizes the results obtained when performing masking operations on entries within a scaling PostgreSQL database table using the Delphix Appliance.
Table 4. Delphix Masking results
|
PostgreSQL |
Delphix Execution Time |
|
|
Workload (Target VDB) |
PROFILE |
MASK |
|
5 million Rows (1x table) |
2 sec |
2 min 5 sec |
|
10 million Rows (1x table) |
2 sec |
4 min 4 sec |
|
20 million Rows (1x table) |
2 sec |
8 min 10 sec |
|
100 million Rows (1x table) |
2 sec |
42 min 13 sec |
Conclusion
Conclusion
The test results demonstrate quick data provisioning capabilities using the Delphix DevOps appliance on Dell PowerFlex for typical operations and database workloads. We are also able to demonstrate that the Delphix DevOps Appliance on Dell PowerFlex helps to deliver superior performance with low latencies while scaling the number of PostgreSQL virtual databases (VDBs). We are also able to efficiently support data masking operations on large volumes of data within a PostgreSQL database.
The combination of Dell PowerFlex and the Delphix DevOps platform simplifies the provisioning & automation of applications and their test data onto a single, consolidated infrastructure platform that is flexible enough to handle environments used by enterprise customers today.
References
Dell Technologies documentation
The following Dell Technologies documentation provides additional information. Access to these documents depends on your login credentials. If you do not have access to a document, contact your Dell Technologies representative.
PostgreSQL documentation
The following PostgreSQL documentation provides additional information.
Delphix documentation
The following Delphix documentation provides additional information.
Appendix A
Test configuration
The following tables show the hardware and software configuration of the storage and client nodes used for deployment:
Table 5. Storage node configuration details
|
Hardware |
Configuration |
|
Server model |
PowerFlex R640 |
|
CPU |
CPU – 2 x Intel(R) Xeon(R) Gold 6132 CPU @ 2.60 GHz (14 core) |
|
Memory (GiB) |
12 x 32 GB |
|
NIC |
2 x Mellanox ConnectX-4 LX 25 GbE SFP Adapter |
|
Storage |
10 x 1.7 TB SAS SSD |
|
Software |
Configuration |
|
Operating system |
Embedded OS |
|
Dell PowerFlex software |
4.5.1 |
Table 6. Compute node configuration details
|
Hardware |
Configuration |
|
Server model |
PowerFlex R640 |
|
CPU |
2 x Intel(R) Xeon(R) Gold 6248 CPU @ 2.50 GHz (20 cores) |
|
Memory (GiB) |
12 x 16 GB |
|
NIC |
2 x Mellanox ConnectX-4 LX 25 GbE SFP Adapter |
|
Storage |
8 x 894 GB SAS SSD |
|
Software |
Configuration |
|
Operating system |
VMware ESXi-7.0U3n |
Table 7. Delphix engine Continuous Data resource details
|
Hardware |
Configuration |
|
CPU |
32 CPU cores |
|
Memory (GiB) |
128 GB RAM |
|
NIC |
10 GigE connection |
|
Storage |
4 x 3 TB |
|
Software |
Configuration |
|
Delphix |
Version 18.0.0.1 |
Table 8. Delphix engine Continuous Compliance resource details
|
Hardware |
Configuration |
|
CPU |
16 CPU cores |
|
Memory (GiB) |
64 GB RAM |
|
NIC |
10 GigE connection |
|
Storage |
1x 3 TB |
|
Software |
Configuration |
|
Delphix |
Version 22.0.0.0 |
Table 9. Source/Staging/Target host resource details
|
Hardware |
Configuration |
|
CPU |
16 CPU cores |
|
Memory (GiB) |
32 GB RAM |
|
NIC |
10 GigE connection |
|
Software |
Configuration |
|
Operating System |
RHEL 8.7 |
|
Database version |
PostgreSQL 15.6 |