Skip to main content

SQL Server 2022 on Dell PowerFlex Using Microsoft Hyper-V

Oct 20, 2026
SQL Server 2022 on Dell PowerFlex Using Microsoft Hyper-V This white paper describes deployment considerations for Microsoft Hyper-V on Dell PowerFlex storage and also SQL Server 2022 performance best practices for an OLTP workload.

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.

An image showing information about the PowerFlex family of products: PowerFlex Software, PowerFlex Rack, Powerflex Appliance, PowerFlex Custom Node, and PowerFlex Manager.

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.

This diagram shows the connectivity between application hosts and storage layers over NVMe/TCP.

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.

This diagram shows the available deployment architectures: two-layer (Independent), single-layer (Hyperconverged/HCI), or a mixture of the two architectures (Mixed).

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.

Image showing different distributions for KubernetesPowerFlex 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.

Figure 4.        PowerFlex for different Kubernetes distributions

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

Logical architecture diagram of PowerFlex storage, Hyper-V and SQL Server 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:

Diagram showing the configuration of storage-only and compute-only 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:

Screenshot showing failover cluster network details

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.

Screenshot showing a list of cluster storage disks

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.

Diagram depicting the Microsoft Hyper-V storage layout

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.


Diagram showing the database layout of SQL Server VM 

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.

OLTP benchmark Test using HammerDB

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.

Chart showing the linear scaling of the TPM and IOPS of four SQL VMs

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:

A screenshot showing NUMA spanning settings on Hyper-V hosts

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.

A screenshot showing network card settings on the Hyper-V hosts

Figure 15.    Network card settings

A screenshot showing the TCP/UDP checksum offload on the Hyper-V hosts

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)

  • OS Volume: 1 X 199GB NTFS 4k  
  • Data volume: 4 x 280GB NTFS 
  • Log volume: 1 x 480GB NTFS 

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