SQL Server 2022 on Dell PowerFlex Using Microsoft Hyper-V
Executive Summary
Document Purpose
This white paper provides insights for deploying the Microsoft Hyper-V hypervisor on the Dell PowerFlex platform. The paper includes guidance for configuring the hypervisor storage and networking to host virtual machines (VMs) efficiently, leveraging the robust capabilities of the PowerFlex infrastructure.
Further, the white paper outlines best practices for improving Online Transaction Processing (OLTP) workload efficiency with SQL Server 2022, including configurations and optimizations to enhance processing speed and reliability. The paper also discusses the logical architecture that integrates PowerFlex software, Microsoft Hyper-V hypervisor, and SQL Server.
Revision History
|
Date |
Description |
|
Feb 2025 |
Changed the PowerFlex Manager version |
|
Jan 2025 |
Initial release |
Audience
This white paper is intended for Windows administrators, database administrators, field consultants, DevOps engineers, Site Reliability Engineers, system engineers, and partners who are interested in deploying Microsoft Hyper-V using PowerFlex storage to host Microsoft SQL Server database.
Readers are recommended to have a basic understanding of PowerFlex, Windows Server, Microsoft Hyper-V, and SQL Server database technologies.
Terminology
The following table provides definitions of key terms that are used in this document:
Table 1. Terminology
|
Term |
Definition |
|
CO |
Compute Only |
|
DNS |
Domain name system |
|
FG |
Fine Granularity |
|
HCI |
Hyperconverged Infrastructure |
|
Hyper-V |
Microsoft Hypervisor |
|
IOPS |
Input/Output Operations per Second |
|
ITOM |
IT operational and management |
|
LCM |
Life cycle management |
|
MG |
Medium Granularity |
|
NTP |
Network time protocol |
|
OLAP |
Online Analytical Processing |
| OLTP | Online Transactional Processing |
|
SDC |
Storage Data Client—the PowerFlex storage component installed on a compute node that provides access to PowerFlex block volumes. |
|
SDS |
Storage Data —the PowerFlex Storage component that controls the local disks and aggregates them to make the storage pool. |
|
SLA |
Service Level Agreement |
|
SLES |
SUSE Linux Enterprise Server Linux operating system |
|
SO |
Storage Only |
|
TOR |
Top of rack |
|
TPM |
Transactions per minute |
|
TPROC-C |
Transaction Processing Benchmark derived from the TPC "C" |
|
VHD/VHDx |
Microsoft Hyper-V virtual Disks |
|
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: Anup Bharti
Note: For links to additional documentation for this solution, see the 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.
For more information, see PowerFlex specifications
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 is available 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.
Solution Overview
Solution Overview
This section describes the architecture and design of SQL Server 2022 on PowerFlex storage in a two-layer architecture using Microsoft Hyper-V. SQL Server 2022 is hosted on Microsoft Hyper-V VMs, and the database volumes are provisioned and managed by PowerFlex software.
System Architecture
The following diagram depicts the logical architecture of a Microsoft SQL Server 2022 database hosted on PowerFlex storage using Microsoft Hyper-V. The diagram incorporates a failover cluster with two Hyper-V hosts. The solution has three primary components, as shown:
- PowerFlex storage
- Microsoft Hyper-V hypervisor
- SQL Server 2022 database

Figure 5. System architecture diagram
PowerFlex storage is deployed using a two-layer configuration, consisting of four storage nodes and two compute nodes.
Each storage node is equipped with 10 NVMe drives, each with a capacity of 1.7 TB. The drives from all four storage nodes (a total of 40 drives) are aggregated into a single resilient storage pool. Host-usable storage volumes are then allocated as needed from this pool.
These storage volumes are mapped to the Windows Server compute nodes using the PowerFlex SDC. Mapped volumes are used by Microsoft Hyper-V hosts to store virtual disks of SQL Server VMs, ensuring efficient and reliable VM operations.
The Windows Server 2022 compute nodes are configured as Hyper-V hosts, which are integrated into a Windows Server Failover Clustering (WSFC). The failover cluster leverages PowerFlex volumes as cluster shared volumes (CSV) to ensure high availability (HA), consistent naming, and fast failover. All the necessary services for establishing the failover cluster, including DNS, Active Directory, and NTP servers, are configured on a separate host. These Hyper-V nodes exclusively host SQL Server VMs, utilizing their full CPU capacity for OLTP workloads.
A management virtual switch is established to enable communication between the SQL Server VMs. Each Hyper-V hosts two SQL Server VMs. Data and log volumes from PowerFlex storage are mapped as raw disks to the Hyper-V hosts. These disks store the virtual disks (VHDx) of SQL Server VMs.
For more comprehensive information, see the Hyper-V storage layout documentation.
SQL Server 2022 is installed on Windows Server 2022 VMs. The SQL binaries are stored on OS volumes. Four volumes are created to store the data files of the database, and a single volume is created to store the log file of the database.
The SQL VMs are standalone VMs, operating independently and not part of any cluster environment. The database contains initial data to support OLTP workloads. For more information, see the SQL Server database layout documentation.
Network Architecture
Network Architecture
The following diagram shows the network architecture of a PowerFlex deployment that includes storage and compute nodes:

Figure 6. PowerFlex Network Architecture
Each PowerFlex storage-only node is connected to the TOR switches. All nodes are equipped with 25 GB dual-port NICs. These network ports are trunked with the TOR switches. The NICs handle management, data1, data2, data3, and data4 network traffic for PowerFlex. The management network operates in active-backup (mode1) bonding with the data1 and data2 networks, while the data3 and data4 networks are dedicated SDS network and are not bonded. This network configuration provides redundancy and fault tolerance, with two dedicated networks for PowerFlex data transfer.
Dedicated VLANs are used to separate management and data network traffic. The following table shows the different VLANs that are used for PowerFlex storage-only nodes and their purposes:
Table 2. Network VLAN details of PowerFlex storage-only nodes
|
Network type |
VLAN |
Configurations |
|
Management |
150 |
Mode1 bond - (interface1 port1 and interface2 port1) |
|
PowerFlex Data 1 |
151 |
interface1 port1 |
|
PowerFlex Data 2 |
152 |
interface1 port2 |
|
PowerFlex Data 3 |
153 |
Interface2 port1 |
|
PowerFlex Data 4 |
154 |
Interface2 port2 |
Two Hyper-V compute nodes equipped with 25 GB dual-port NICs are connected to the TOR switches. The two network ports, interface 1 port 1 and interface 2 port 1, are teamed in switch-independent mode and carry management traffic. This teaming mode uses a built-in Hyper-V switch to distribute traffic across the member NICs and is configured with Hyper-V port load balancing. This mode is not dependent on any TOR switch configuration to distribute the traffic inside the Hyper-V environment. A teamed network interface also handles VM migration traffic. The PowerFlex data1 network is configured on interface 1 port 2, while data2 network is configured on interface 2 port 2 of the Hyper-V hosts. Data networks are not teamed, and they carry dedicated SDS-SDC traffic. The following table shows the network VLAN details of Hyper-V nodes:
Table 3. Network VLAN details of Hyper-V nodes
|
Network type |
VLAN |
Configurations |
|
Management |
105 130 |
Switch Independent Teaming - (interface1 port1 and interface2 port1) VLAN 105 for Hyper-V VMs VLAN 130 for VM migration |
|
PowerFlex Data 1 |
151 |
Interface1 port2 |
|
PowerFlex Data 2 |
152 |
Interface2 port2 |
Microsoft Hyper-V Configuration
Microsoft Hyper-V Configuration
Microsoft Hyper-V, when integrated with PowerFlex storage, leverages the scalability and reliability offered by the advanced storage options of PowerFlex. The storage infrastructure can be scaled to suit the needs of businesses, ranging from individual workloads to enterprise-wide storage requirements.
This section explains about Hyper-V setup that this solution uses, encompassing the failover clustering, cluster networks, and cluster storage.
Windows Server Failover Clustering (WSFC) enhances the availability and reliability of Hyper-V hosts and their VMs. Two independent Hyper-V hosts are combined into a single failover cluster. VMs on the hosts are configured as clustered roles. If any cluster server fails, VMs automatically move to the other server and resume operations.
The following figure shows the failover cluster networks:

Figure 7. Cluster network details
Management and data networks are part of the failover cluster network. This design provides high availability for both VMs, and the volumes that are configured on the Hyper-V host. The management network is also used for cluster and client communication, whereas all the other networks are configured for cluster communication only. Multiple cluster networks provide redundancy to the Hyper-V infrastructure.
Eight volumes are mapped from PowerFlex to both Hyper-V hosts using the SDC driver. The failover cluster uses these volumes as follows:
- Disk 1 is a quorum disk and is used for failover cluster operation.
- Disk 2 (Vm_win_os_volume) contains all the Hyper-V VMs operating system virtual disks. The disk is configured as a clustered shared volume (CSV) and provides HA to the VMs in a failover scenario.
- Disk 3 (root_volume) is a shared storage volume that mounts all the PowerFlex volumes that are meant for storing data files and log files. Disk 3 is a small disk created to mount the data disks to NTFS volume under different sub-folders.
- All other disks are VM2 data and log disks mounted as an NTFS mount point on the sub-folders of the root volume.

Figure 8. Cluster storage disks
The disk configurations are made for successful failover of VM and its volume in the failover cluster. For more information about how these disks are mounted and formatted, see Microsoft Hyper-V storage layout.
Storage Layout
Storage Layout
This section describes the storage components used in this solution and their roles. The PowerFlex storage layout and Microsoft Hyper-V storage infrastructure for the SQL Server database is also described.
A single protection domain and storage pool are created for this solution from the PowerFlex storage. Four data volumes and one log volume are provisioned for each SQL server VM. Having multiple volumes on PowerFlex storage allows concurrent I/O operations to be processed, increasing overall throughput and reducing I/O bottlenecks. Distributing the I/O load across several volumes maximizes the utilization of SDS, improving performance especially for I/O-intensive OLTP workloads.
Windows Storage Considerations
When using external storage such as PowerFlex for Microsoft Hyper-V and SQL Server databases, you can configure each volume in Windows Disk Management as a drive letter or mount-point, or as a CSV in Failover Cluster wizard. Each option has its own set of considerations, advantages, and potential limitations.
- Drive letters are the simplest way to identify the storage volumes in Windows operating systems. Drive letters provide an easy way for users and applications to access storage volumes. As a result, drive letters are universally recognized and compatible with most Windows applications and services. The finite number of available letters (26) limits the overall scalability of various storage volumes mounted on a single host.
- Mount points allow you to format and assign a volume to a folder on an existing NTFS volume rather than assigning it a drive letter. Mount points are sub-directories of the root mount-point (root directory). Volumes are mounted like a directory structure, making it easier to organize data logically. Mount points enable more flexibility and scalability by mounting each volume to its sub-folder under the root mount-point. While most modern applications support mount points, legacy applications may have compatibility issues.
- Cluster Shared Volumes (CSVs) are a feature of failover clustering that allows shared storage to be accessed concurrently on all the nodes in a cluster. This feature is commonly used in Hyper-V to store VM files. CSVs enhance the availability and reliability of storage in clustered environments. If one node fails, other nodes can still access the shared volume. When a disk is configured as a CSV, that disk is available to all the cluster nodes, making failover of the clustered roles faster. One limitation is that all CSV disks appear under a single root directory on the system drive at C:\ClusterStorage\ resulting in single point of failure if the system drive is corrupted.
- File system options: Along with the Windows storage volume options, it is essential to understand the different file system options that are available, primarily the New Technology File System (NTFS) and the Resilient File System (ReFS). Each file system has its own unique features, advantages, and recommended use cases, including considerations for allocation unit size.
- NTFS is the default file system for Windows operating systems and has been the fundamental of Windows storage management for a long time. NTFS provides robust performance, security, and reliability features. NTFS uses a journaling feature to maintain data integrity in the event of a system crash. NTFS supports cluster sizes ranging from 512 bytes to 64 KB. A small cluster size (such as 4 KB) is more efficient for storing numerous small files, minimizing wasted space, whereas large cluster sizes (such as 64 KB) are better for large file storage, potentially improving read/write performance.
- ReFS is a newer file system introduced to address the limitations of NTFS, offering enhanced resiliency and scalability. ReFS is designed for modern data storage needs and is particularly well suited for large-scale and HA environments. ReFS provides automatic integrity checking by continuously validating checksums generated for file data and metadata. ReFS supports only two cluster sizes: 4 KB and 64 KB. A small cluster size is efficient for handling numerous small files whereas a large cluster size is beneficial for large file storage with fewer fragmentation issues.
When selecting storage options and file systems for both the Hyper-V host and SQL Server VM, it is important to evaluate storage using benchmarking tools. Consider various combinations from the preceding storage options, file systems, and cluster sizes for each layer. Assess the storage by determining the optimal values for IOPS and latency to meet the requirements of your specific workload, be it OLTP or OLAP.
This solution leverages the preceding three storage options with the NTFS file system across the Hyper-V and VM storage layer. The Dell Powerflex team performed the storage evaluation using the HammerDB benchmark tool before finalizing the storage configuration. The team conducted multiple tests on various combinations of Drive Letters, Mount Points, and CSVs using NTFS and ReFS file systems with different cluster sizes.
The Hyper-V hosts use CSV to store the Windows operating system virtual disks (VHDx) of all Hyper-V VMs, enhancing the failover speed of VMs. A mount point is used to store the (VHDx of the database volumes exposed to the VMs. This option has shown improved database performance compared to others in the tests that the PowerFlex team performed. Additionally, drive letters were selected to identify the storage volumes on VMs after evaluating performance.
Based on these tests, the team found that the best performance was achieved when the Hyper-V disks are formatted with an 8 KB cluster size using an NTFS mount point and the SQL Server VM disks are formatted with an 8 KB cluster size using a drive letter. This file system configuration demonstrated improved results for OLTP workloads over the alternative best practice of formatting the disk with an NTFS 64 KB cluster size using a drive letter.
Microsoft Hyper-V storage layout
As shown in the following image, PowerFlex volumes are formatted with an NTFS 8 KB cluster size and are mounted as a data disk on the root mount volume of the D:\VM2_mounted_disks\ NTFS folder. A similar approach is taken for the log and temp volumes.

Figure 9. Hyper-V Storage Layout
The D:\ drive is a shared storage mount between two Hyper-V hosts and is a root mount for all the NTFS mount points. Each sub-folder under the VM2_disks_mounted directory is a PowerFlex data storage volume.
Also, both the root volume (D:\) and all the sub-folders under the NTFS mount points are part of the failover cluster. When one node fails, failover cluster automatically moves the root volume and its sub-folders to the other node and resumes the operation. This strategy helps achieve storage HA without using CSV.
All the data and log volume VHDx are stored in respective NTFS folders, as shown in the preceding image.
SQL Server database layout
To ensure optimal database performance, it is imperative to design the database layout with precision. The database team must work closely with the development and product teams to determine the capacity requirements for various databases, with careful consideration given to different table sizes, IOPS, and latency.
For high-IOPS SQL Server databases, it is recommended to use a storage layout with multiple disks to store database files. While a single disk may suffice for general-purpose applications, it is crucial to distribute files across multiple disks for mission-critical applications. Although there is no strict limit on the number of disks, it is essential to consider factors such as file system, cluster size, and file distribution to achieve optimal performance. To maximize performance and resilience, ensure that data, log, and temp files are spread across multiple disks.
Figure 10. SQL Server database layout
As shown in the preceding figure, data files are distributed across multiple disks, while a dedicated volume is provided for transaction log files. This separation prevents the mixing of random and sequential I/O patterns for data and log files, resulting in efficient I/O distribution across data and log volumes and elevating overall database performance.
To further optimize performance, size data and log files adequately on the expected growth of the database, which reduces the frequency of operating system calls related to the database, consequently boosting database response times.
The following table shows the partition size and file system used for the database:
Table 4. SQL Server file layout
|
Drive letter |
Size (GB) |
File system |
Allocation size |
Purpose |
|
C |
200 |
NTFS |
4 K |
OS partition and SQL Server installation files |
|
E |
280 |
NTFS |
8 K |
Data files partition |
|
F |
280 |
NTFS |
8 K |
Data files partition |
|
G |
280 |
NTFS |
8 K |
Data files partition |
|
H |
280 |
NTFS |
8 K |
Data files partition |
|
I |
480 |
NTFS |
8 K |
Log files and TempDB files |
The operating system volume is formatted with a 4 KB cluster size, whereas the other disk partitions are formatted with an 8 KB cluster size.
Testing and Validation
Testing and Validation
This section provides a description of the tests that the Dell Powerflex team performed to validate the Microsoft SQL Server 2022 performance with Hyper-V VMs hosted on PowerFlex storage. The team used the HammerDB benchmarking tool for the database performance test. HammerDB is used to benchmark various databases, including SQL Server. It mainly focuses on schema creation, data loading and simulating transactional (OLTP) and Analytics (OLAP) workload. The results of these tests provide meaningful information about the environment, such as comparing hardware performance and validating software configurations. For more information, see the HammerDB Blog.
Test Methodology
To validate the performance of Microsoft SQL Server on Hyper-V VMs using PowerFlex storage, the Dell team used a TPROC-C workload profile in the HammerDB tool. The TPROC-C workload generates a transactional workload that runs a specific set of queries against a SQL Server database. These database transactions are measured in Transactions Per Minute (TPM).
This paper describes how the team used the HammerDB tool to run a series of OLTP workload tests against a SQL Server database. The procedure involved multiple iterations, running for a duration of 15 minutes each, with the aim of generating OLTP transactions from different virtual users. The primary objective of this test case was to evaluate the SQL Server database performance and identify the optimal TPM value when operating under a storage latency of less than 1 millisecond.The team set up the lab as described in System Architecture. For more information about the configuration of the SQL Server and HammerDB VM, A3 in Appendix A – Hardware and Software Resources.
The team deployed a separate load generation VM with Windows Server 2022 to run the HammerDB clients that connects to the database over the network and generate the transactions. The HammerDB VM is hosted on a separate ESXi host and does not use any storage or compute resources from the PowerFlex cluster. A single HammerDB VM is used to run four instances of HammerDB software, each connecting to individual SQL Server VM, as shown in the following figure. The team conducted multiple tests using different numbers of virtual users.

Figure 11. OLTP workload generation with HammerDB tool
Test Results
The team used the following test scenarios:
- Single VM test
- Linear scaling of VMs
For the key best practices in the tests, see Best practices.
Single VM Test
The objective of this test was to measure database performance on a single SQL Server VM hosted on Windows Hyper-V host.
The following figure shows the single VM test performance results:

Figure 12. Single Hyper-V VM database performance
As demonstrated by the test results, the SQL Server database achieved above 1 million TPM with 200 virtual users. The system generated a total of 183K IOPS while maintaining a constant average read and write I/O latency under 1 millisecond. The read and write IOPS ratio observed for this test was 50:50 on the PowerFlex storage.
CPU utilization of VMs during these tests was in the range of 32 to 95 percent
Note: The database size for this test was 300 GB. Only 20 GB memory was assigned for the SQL Server database from the total 64 GB of available memory on the server.
Linear Scaling
This section focuses on the scalability test of SQL Server VMs on two node Hyper-V cluster. Database layout was configured as described in SQL Server database layout.
The test commenced with two VMs, in each subsequent iteration, additional VMs were deployed, as described in the following table:
Table 5. VM scaled on a PowerFlex storage cluster
|
|
Hyper-V Host 1 |
Hyper-V Host 2 |
||
|
Test Iteration |
VM1 |
VM3 |
VM2 |
VM4 |
|
Iteration 1 |
Active |
|
Active |
|
|
Iteration 2 |
Active |
Active |
Active |
|
|
Iteration 3 |
Active |
Active |
Active |
Active |
The table describes the test sequence, starting with two VMs in the first iteration. In the second iteration, the team added another VM, making a total of three VMs active on the Hyper-V cluster. With each subsequent iteration, the team incrementally added one VM, ultimately scaling the system to four active VMs.
The following graph shows the TPM performance with linear scaling of two, three and four VMs hosted on the PowerFlex storage. The system is scaled by adding resources and capacity, while the load is simultaneously increased by adding 10 virtual users after each iteration.
As a result, the database transactions scaled from 1 million to 2 million TPM. The PowerFlex storage also scaled from 215K to 470K IOPS for the same OLTP test while maintaining constant read and write I/O latency under 1 millisecond, when all the four VMs were active. The read and write IOPS ratio observed for this test was 50:50 on the PowerFlex storage.
CPU utilization of VMs during these tests was in the range of 21 to 26 percent for different virtual users.

Figure 13. Linear scaling of TPM and IOPS of four SQL VMs
This test demonstrates that database and storage performance scales efficiently even as the system load increases linearly.
Note: The database size for this test was 300 GB. Only 20 GB memory was assigned for the SQL Server database from the total 64 GB available memory on the server.
Best Practices
Windows Server and Hyper-V considerations
For efficient operation and optimal performance of the system, apply the following best practices for Microsoft Windows Server and Hyper-V:
- Enable Virtual Machine Queue (VMQ) on the physical NIC for efficient network connectivity on all Hyper-V hosts.
- Create dedicated networks for management, live migration, and Microsoft failover cluster traffic to avoid conflicting with the PowerFlex data network.
- Ensure that jumbo frames are turned on and set to 9014 MTU for the networks for all the Hyper-V hosts.
- Disable the delay ack (delayed acknowledgment) feature on every SDC network interface. Dell recommends this because delayed acknowledgment causes high latencies for low I/O rates.
To modify each SDC interface aside from the management IP address, add the following registry entries:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<SAN interface GUID>
Entries: TcpAckFrequency TcpNoDelay
Value type: REG_DWORD, number
Value to disable: 1
For more information, see TCP Acknowledgement behavior.
- Ensure that the Windows power plan is customized and set to high performance for both Hyper-V hosts and SQL Server VMs.
- To improve Hyper-V performance and to minimize unnecessary resource consumption consider the following settings:
- Disable NUMA spanning on Hyper-V hosts, as shown in the following figure:

Figure 14. NUMA spanning settings
- Install SDC on the root partition.
- Do not create any virtual switches on the data network.
- Enable jumbo frames on virtual switches.
- Disable the network card offloading feature of the interface for network stability and to improve connectivity. To do this, disable the following settings in the network adapter advance configuration for all the Hyper-V hosts.

Figure 15. Network card settings

Figure 16. TCP/UDP checksum offload
- Enable the lock pages in the memory to prevent the system from paging the data to virtual memory for SQL Server VMs. Make the necessary changes in the group edit policy to enable the lock pages. For more information, see Enable the Lock Pages in Memory Option.
- Evaluate storage performance by considering different Windows storage options before finalizing the storage infrastructure for the Hyper-V environment. For more information, see Windows Storage Consideration.
SQL Server 2022
Apply the following best practices for SQL Server 2022 hosted on PowerFlex:
- For high-performance and mission-critical databases, spread the database files across multiple disks to leverage the I/O parallelism of PowerFlex storage.
- Store database transaction logs on a separate volume to avoid mixing its unique I/O profile with the random I/O profile of the data files. Transaction logs I/O profile are sequential in nature. This practice can also enable a possible usage of PowerFlex storage snapshot technology to create database backups where a volume restore does not overwrite the latest transaction logs.
- Move the tempdb files from the default location to a separate volume or NVMe persistent storage (if available) to avoid page contention. This best practice substantially improves the database latency performance in cases when temp files are busy.
- Increase the number of data files in tempdb to maximize the bandwidth and to reduce contention in allocating structures. Monitor the contention level and increase the number of data files by multiples of four, to the maximum number of available logical processors.
- Consider different storage configurations and file systems before choosing the storage for the SQL Server database. For more information, see Windows Storage Consideration.
For more information about SQL Server best practices, see the SQL Server Design consideration document
HammerDB
HammerDB recommends the following best practices for Microsoft SQL Server:
- Configure the max degree of parallelism setting to 1.
- Configure the max worker threads setting between 900 to 3000. The number is subject to change based on the available logical processor. Higher CPU can accommodate higher worker threads.
- Keep the initial data file size sufficiently large to ensure that files are not growing rapidly in the middle of a workload run.
- To avoid a performance impact, set larger auto growth increments to reduce the frequency of growth operations and enable instant file initialization to speed up the allocation process.
For more information, see HammerDB documentation.
To generate more transactional workload, HammerDB provides the following recommendations:
- Use the ‘all warehouses’ option in HammerDB to spread the transactions across all the warehouses. This prevents contention over just a few tables in the warehouse.
- Select the checkpoint when complete option to force the database to write everything to the disk at the end of the test. This is useful when running multiple tests in a row to avoid a checkpoint in the middle of a run.
- Use the autopilot option to run multiple tests in a row when automation of multiple test cases is required.
Conclusion
Conclusion
This white paper describes the deployment of Microsoft SQL Server 2022 on PowerFlex storage in a two-layer environment using Microsoft Hyper-V. Through a detailed examination of the system architecture, network configuration, and storage layout, the paper provides overall guidance for deploying Microsoft Hyper-V with PowerFlex storage.
The testing and validation that the PowerFlex team conducted with the HammerDB tool demonstrates the system’s capacity to handle significant workloads efficiently. Performance tests demonstrate the system's capability to efficiently handle a high volume of transactions, achieving under 1 ms I/O latency for diverse test scenarios.
By combining Hyper-V's robust virtualization capabilities with PowerFlex storage infrastructure, organizations can achieve a powerful, flexible, and scalable storage environment that meets the demands of modern data-intensive workloads. To learn more, contact your Dell representative.
Appendix A – Hardware and Software Resources
A1. PowerFlex Storage Node Configuration
The following table summarizes the hardware and software resources that were used to build PowerFlex storage cluster:
Table 6. PowerFlex SO node details
|
Hardware |
Configuration |
|
Server model |
PowerFlex R660 |
|
CPU |
2 x 32 Intel(R) Xeon(R) Gold 6454S |
|
Memory (GiB) |
512 GB |
|
NIC |
2 x NVIDIA Mellanox ConnectX-6 Lx 2x 25G SFP28 OCP3.0 SFF |
|
Storage |
10 x 1.92 TB NVMe |
|
Dell PowerFlex Manager |
4.6.0 |
|
Dell PowerFlex Core |
4.5 |
|
Storage node OS |
PowerFlex Embedded OS |
A2. PowerFlex Compute node Configuration
The following table summarizes the hardware and software resources that the Dell PowerFlex team used to build the PowerFlex compute nodes.
Table 7. PowerFlex CO node details
|
Hardware |
Configuration |
|
Server model |
PowerFlex R660 |
|
CPU |
2 x 32 Intel(R) Xeon(R) Gold 6454S |
|
Memory (GiB) |
512 GB |
|
NIC |
2 x NVIDIA Mellanox ConnectX-6 Lx 2x 25G SFP28 OCP3.0 SFF |
|
Storage |
10 x 1.92 TB NVMe |
|
Compute Node OS |
Windows Server 2022 Data Center Edition with Hyper-V feature |
|
SDC version |
4.5 |
A3.SQL Server VM Configuration
The following table shows the configuration of the Hyper-V VM used to host the SQL Server database.
|
Hardware |
Configuration |
|
vCPUs |
64 |
|
Memory (GiB) |
64GB |
|
Storage Type (GB) |
|
|
Windows Version |
Windows Server 2022 Data center edition |
|
Microsoft SQL Server |
2022 CU15 |
A4. SQL Server Tuning Parameters
The following code sample shows the SQL Server tuning parameters that the team used to optimize the database performance for the OLTP workload test:
EXEC SP_CONFIGURE 'SHOW ADVANCED OPTIONS', '1'
RECONFIGURE WITH OVERRIDE
EXEC SP_CONFIGURE 'MIN SERVER MEMORY', 0
EXEC SP_CONFIGURE 'MAX SERVER MEMORY', 64000
EXEC SP_CONFIGURE 'RECOVERY INTERVAL','32767'
EXEC SP_CONFIGURE 'MAX DEGREE OF PARALLELISM','0'
EXEC SP_CONFIGURE 'LIGHTWEIGHT POOLING','1'
EXEC SP_CONFIGURE 'MAX WORKER THREADS', 3000 ---- Subject to change depending on different CPU configuration.
EXEC SP_CONFIGURE 'DEFAULT TRACE ENABLED', 0
EXEC SP_CONFIGURE 'COST THRESHOLD FOR PARALLELISM', 50
GO
RECONFIGURE WITH OVERRIDE
EXEC SP_CONFIGURE 'PRIORITY BOOST', '1'
ALTER DATABASE OLTP SET RECOVERY SIMPLE
GO
ALTER DATABASE OLTP SET TORN_PAGE_DETECTION OFF
GO
ALTER DATABASE OLTP SET PAGE_VERIFY NONE
GO
References
Dell Technologies documentation
The following Dell Technologies documentation provides additional relevant information. Access to these documents depends on your login credentials. If you do not have access to a document, contact your Dell Technologies representative.
Microsoft documentation
The following Microsoft documentation provides additional relevant information:
HammerDB documentation
The following HammerDB documentation provides HammerDB tool information and best practices for performing OLTP workload stress tests on Microsoft SQL Server: