SQL Server High Availability with Dell PowerFlex and Nutanix Cloud Platform
Executive Summary
Executive Summary
This white paper offers insights into the Nutanix Cloud Platform (NCP) with Dell PowerFlex storage solution. It outlines key design considerations for configuring storage and networking on NCP, leveraging the robust capabilities of PowerFlex infrastructure.
This paper also provides guidance on deploying Microsoft SQL Server 2022 Failover Cluster Instances (FCI) on Nutanix. It includes configuration strategies and design approaches to scale FCI deployments for optimal resource utilization, along with best practices to enhance SQL Server 2022 performance.
Revision history
| Date | Description |
| October 2025 | Initial release |
Audience
This document is intended for storage administrators, system administrators, database administrators, field consultants, DevOps engineers, system engineers, virtualization experts, and partners who are interested in deploying Nutanix Cloud Platform with Dell PowerFlex storage to host Microsoft SQL Server database.
Readers of this document are expected to be familiar with the following topics:
- Dell PowerFlex system
- Dell software including the following: Dell PowerFlex Manager (4.x)
- General storage concepts
- General database concepts
- Microsoft Windows system administration
- SQL Server database
- Nutanix virtualization platform
Terminology
The following table provides definitions for some of the terms that are used in this document.
| Term | Definition |
| AD | Microsoft Active Directory |
| CVM | Controller Virtual Machines, virtual machines running on each node in the Nutanix cluster, managing storage and other tasks. |
| DNS | Domain name system |
| FCI | SQL Server Failover Cluster Instance |
| Guest OS | The operating system deployed on a VM. |
| HCI | Hyper-Converged Infrastructure, the architectural model Nutanix uses, combining compute, storage, and networking into a single system. |
| IOPS | Input/Output Operations per Second |
| KVM | Kernel-based Virtual Machine |
| MDM | Meta Data Manager |
| NTP | Network Time Protocol |
| Nutanix AHV | AHV, Nutanix’s native hypervisor |
| Nutanix AOS | AHV Operating System, core software running on Nutanix clusters. |
| OLTP | Online Transaction Processing |
| PRISM | The Nutanix management interface |
| SDC | Storage Data Client, the Dell PowerFlex storage component installed on a compute node that provides access to Dell PowerFlex block volumes. |
| SDS | Storage Data Server, the Dell PowerFlex Storage component that controls the local disks and aggregates it to make the storage pool. |
| VLAN | Virtual Local Area Network |
| VM | Virtual Machine |
| WSFC | Windows Server Failover Cluster |
| WSFCM | Windows Server Failover Cluster Manager |
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
Product Overview
Product Overview
Dell PowerFlex family
Dell PowerFlex software-defined storage 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 Dell PowerFlex family provides a foundation that combines compute and high- performance storage resources in a managed unified fabric. Dell PowerFlex comes in flexible deployment options (rack, appliance, or custom nodes and in the public cloud) that enable independent (disaggregated), HCI (single-layer), or mixed architectures. Dell PowerFlex is ideal for high-performance applications and databases, building an agile private/hybrid cloud, or consolidating resources in heterogeneous environments.
The platform supports a broad range of operating environments – bare metal operating systems, hypervisors, and container platforms – simultaneously with a unified infrastructure platform and management. By allowing users to flexibly mix these architectures in a single deployment, PowerFlex enables you to deploy, scale, and evolve all your applications to meet your business objectives.
Dell PowerFlex software components
Software is the key differentiation in the Dell PowerFlex offering. Dell 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.
Dell PowerFlex
PowerFlex is a software-defined scale-out block storage service that is designed to deliver flexibility, elasticity, and simplicity with predictable high performance and resiliency at scale.
For more details, see Dell PowerFlex specifications
Dell PowerFlex Manager
Dell PowerFlex Manager is the software component in the Dell PowerFlex family that enables ITOM automation and LCM capabilities for Dell PowerFlex systems. Starting with Dell PowerFlex 4.0, the unified Dell PowerFlex Manager brings together three separate components used in previous releases – Dell PowerFlex Manager, the core Dell PowerFlex UI, and the Dell PowerFlex gateway. The new Dell PowerFlex UI runs in Kubernetes and embraces a modern development framework.
Dell PowerFlex deployment architecture
Dell PowerFlex with Nutanix Cloud Platform uses a disaggregated (independent) architecture.
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.
This document will not cover Hyperconverged and Mixed deployment architecture details as they are not supported with Nutanix Cloud Platform.
Dell PowerFlex consumption options
Dell PowerFlex rack
Dell 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.
Dell PowerFlex appliance
Dell 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.
Dell PowerFlex and Nutanix Cloud Platform
This paper focuses on Nutanix Cloud Infrastructure Compute (NCI-C) which is comprised of Compute, Networking, Disaster Recovery and Security. This is a new license specifically tied to the architecture. NCI-C diverges from the Nutanix hyperconverged consumption model, in that it consolidates NCI-C components.
Dell PowerFlex is a software-defined platform that integrates computing and storage with independent scaling capabilities. It offers flexible infrastructure management, which ensures performance, reliability, and scalability for diverse workloads.
The integration of Dell PowerFlex with Nutanix Cloud Platform (NCP) enables organizations to scale compute and storage resources independently. The Nutanix AHV hypervisor and AOS operate on Dell PowerFlex compute servers or Dell PowerEdge, consuming storage from an external Dell PowerFlex Storage cluster. This setup leverages Dell’s software-defined PowerFlex storage alongside Nutanix AHV to optimize resource management. The architecture supports data protection, disaster recovery, and networking while facilitating hybrid cloud operations for scalable workloads.
For more information on hardware and software specifications, refer to the Dell PowerFlex with Nutanix Cloud Platform Technical Overview.
Dell PowerFlex with Nutanix Cloud Platform architecture
The Dell PowerFlex with Nutanix Cloud Platform (NCP) solution is deployed using a disaggregated architecture, as shown in the following illustration.
- Compute Layer: A Nutanix Cloud Infrastructure Compute (NCI-C) cluster with AOS and AHV running on Dell PowerFlex compute-only nodes.
- Storage Layer: A Dell PowerFlex cluster operating in a storage-only model, compatible with PowerFlex configurations. This cluster provides block storage and related services as shown in the dashed blue box in the figure below.
Figure 3. Dell PowerFlex with Nutanix Cloud Platform architecture
The Dell PowerFlex with Nutanix Cloud Platform architecture contains no internal storage within the Nutanix compute only nodes. In this disaggregated architecture, the compute cluster accesses storage over the Ethernet fabric from the external PowerFlex storage cluster via the SDC that is installed on every node of the NCI-C cluster.
When Dell PowerFlex with Nutanix Cloud Platform is deployed, the Nutanix software stack is hosted on the PowerFlex compute only nodes. The NCI-C cluster nodes consume storage from the PowerFlex storage cluster.
Lifecycle management
Both Dell PowerFlex and Nutanix Cloud Platform offer fully integrated and comprehensive Lifecycle Management (LCM) of qualified components for their respective architectures. These powerful features combine to provide end to end Lifecycle Management of both software and hardware across storage and compute nodes.
PowerFlex storage only nodes
In the PowerFlex Manager UI, storage only nodes have a managed state of Managed. This indicates that PowerFlex Manager controls PowerFlex software and firmware in a turnkey fashion with no interruption to workloads. The state of the nodes can be seen in the figure below.
Nutanix compute only nodes
In PowerFlex Manager, NCI-C nodes have a managed state of Reserved. This indicates that PowerFlex Manager can upgrade the firmware on a compute node after it has been placed in maintenance mode, bringing it into compliance with a Release Certification Matrix/Intelligent Catalog (RCM/IC). Maintenance mode evacuates the workloads so they are not impacted by the LCM process. Prism Central LCM manages Nutanix software on NCI-C nodes including AOS and AHV. At the time of this writing, the PowerFlex SDC is signed by Nutanix, downloaded from https://portal.nutanix.com, and deployed to the NCI-C cluster using Prism Element. The Nutanix software and the PowerFlex SDC are qualified and upgraded together in lock step with each other.
Microsoft Windows Server and Failover Cluster
Windows Server and Failover Cluster Windows Server 2025 is a Microsoft server operating system designed for enterprise IT workloads, cloud environments, and hybrid infrastructures. It is part of the Windows Server family and offers advanced features such as Azure integration, container support, enhanced security, and failover capabilities.
Windows Server Failover Cluster (WSFC) is a feature provided by Windows Server 2025 that enables high availability and reliability for applications, services, and workloads. It allows multiple server nodes to work together as a cluster, ensuring that if one server fails, its workloads are automatically transferred to another server in the cluster. This active/passive solution minimizes downtime and offers continuity for business applications and databases such as SQL Server.
WSFC is comprised of the following components:
- Cluster nodes
- Physical or virtual.
- Shared storage
- All nodes must be able to access the same storage devices, e.g. iSCSI.
- Cluster roles
- Services/applications that are configured to run in the cluster, e.g. SQL Server.
- Cluster quorum
- A mechanism to prevent split-brain, typically disk-based.
- Failover
- Manual or automatic transfer of a cluster role(s).
- Heartbeat
- A communication method for nodes to monitor health amongst each other.
Microsoft SQL Server
Microsoft SQL Server 2022 is a robust relational database management system (RDBMS) designed to store, retrieve, and manage structured data efficiently. It supports deployment on physical or virtual machines running Windows or Linux, as well as in containerized environments.
Applications and tools interact with SQL Server using Transact-SQL (T-SQL), enabling powerful data manipulation and querying capabilities. For high availability, SQL Server supports multiple options, including Always ON Availability Groups and Failover Cluster Instances (FCI). This solution demonstrates the use of FCI, leveraging Windows Server Failover Clustering (WSFC) to enable automatic failover and ensure shared storage resilience.
SQL Server also offers features such as database mirroring, replication, and comprehensive backup and restore capabilities to support disaster recovery and business continuity.
Solution Overview
Solution Overview
This section describes the architecture and design of Microsoft SQL Server 2022 Failover Cluster Instance (FCI) on Dell PowerFlex with Nutanix Cloud Platform. Microsoft SQL Server 2022 database is hosted on VMs, and the database volumes are provisioned and managed by PowerFlex.
Logical architecture
The following diagram depicts the logical architecture of a Microsoft SQL Server 2022 FCI hosted on Dell PowerFlex with Nutanix Cloud Platform. The diagram incorporates a three-node SQL Server FCI with shared database volumes. The solution has three primary components, as shown:
- Dell PowerFlex Storage
- Nutanix Cloud Platform
- Microsoft SQL Server Failover Cluster
Dell PowerFlex storage is deployed in a two-layer configuration with four storage nodes. Each node contains ten 1.5 TB SAS drives, which are aggregated into a single resilient storage pool. This storage pool is used to create database volumes for SQL Server FCI. For more information, see Powerflex Storage Layout.
Three Nutanix compute nodes are deployed using Nutanix Foundation software. These nodes form the Nutanix Cloud Infrastructure compute cluster (NCI-C) on Dell PowerFlex compute-only nodes. Nutanix Cloud Platform deploys a dedicated Controller Virtual Machine (CVM) on each compute node for its own operation. These CVMs are a key component of the Nutanix platform. CVM acts as a distributed storage controller, running on each node in the cluster and managing all I/O operations for that node.
With Dell PowerFlex as an external storage provider for NCP, the CVM use the Storage Data Client (SDC) driver to access the storage. Acting as a block device driver, SDC maps volumes created on the PowerFlex storage to Nutanix hosts. Volumes can be provisioned as isolated virtual disks or as part of a volume group, which simplifies management and operations. For more information, see Nutanix Storage Layout.
A three-node Windows Server Failover Cluster (WSFC) is configured on Windows Server 2025 virtual machines hosted on Nutanix Cloud Infrastructure (NCI). Using Windows Server Failover Cluster Manager (WSFCM), a Microsoft SQL Server 2022 clustered role is configured to ensure high availability for the SQL Server database. This setup enables automatic failover and resilience in case of node failure. For detailed deployment guidance, see the SQL Server Failover Cluster Deployment section.
Three Windows Server 2025 VMs form a SQL Server FCI, with shared volumes accessible by all nodes to provide continuous availability. The database is preloaded with initial data to support Online Transaction Processing (OLTP) workloads. This configuration ensures seamless operation and data integrity during failover events. For more details, see the SQL Server database layout documentation.
Network architecture
The following diagram shows the network architecture of a PowerFlex deployment, including storage and compute nodes:
Each PowerFlex storage-only (SO) node connects to the top-of-rack (TOR) switches and is equipped with dual-port NICs. These network ports are trunked with the TOR switches and 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 data3 and data4 serve as dedicated SDS networks and are not bonded. This network configuration provides redundancy and fault tolerance, with two dedicated networks for PowerFlex data transfer.
Dedicated VLANs separate management and data network traffic. The following table outlines the VLANs that are used for PowerFlex storage-only nodes, along with their purposes:
| Network type | VLAN | Configurations |
| Management | 150 | Mode1 bond - (interface1 port1 and interface2 port1) |
| PowerFlex Data 1 | 151 | Interface1 port1 |
| PowerFlex Data 2 | 152 | Interface2 port1 |
| PowerFlex Data 3 | 153 | Interface1 port2 |
| PowerFlex Data 4 | 154 | Interface2 port2 |
Interface1 Port1 and Interface2 Port1 are configured in trunk mode to handle management and customer network traffic. Similarly, Interface1 Port2 and Interface2 Port2 are also configured in trunk mode to manage SDC-SDS data traffic. If needed, data traffic ports can be configured in non-trunk mode.
On NCP, two virtual switches manage the networks: one for data and one for management.
A separate backplane network may also be considered for Volume Group load-balancing traffic, this approach helps isolating the management traffic from data traffic. For more details on creating a backplane network, see CVM Network Segmentation.
The following table shows the VLAN configuration for Nutanix compute nodes:
| Network type | VLAN | Configurations |
| Management and customer |
|
Mode1 bond (interface1 port1 and interface2 port1)
|
| PowerFlex data |
|
Mode1 bond (interface1 port2 and interface2 port2)
|
For more information about configuring PowerFlex storage and Nutanix compute nodes, se Appendix A1 and Appendix A3.
Storage Layout
Storage Layout
Designing a storage layout is a crucial task for the infrastructure team. Key metrics to consider include storage capacity, IOPS for performance, latency for fast data access, and bandwidth to support data transfer rates.
To build an optimal storage solution, start by assessing current storage needs and projecting future requirements based on business growth and application demands. Engage all relevant stakeholders throughout the process.
This section outlines the three key components of the solution: the PowerFlex storage layout, the Nutanix storage layout, and the SQL Server database layout.
PowerFlex storage layout
This solution uses a single protection domain and storage pool created from PowerFlex storage. Database volumes for Microsoft SQL Server are allocated from this pool, which aggregates different storage media of the storage nodes. Storage pools offer varying levels of service based on capacity and performance. PowerFlex supports two types of storage pools: fine granularity (FG) and medium granularity (MG). Both types of storage pool can coexist on the same storage nodes. This solution uses a medium granularity storage pool. For more information, see Storage Schemas.
From Dell PowerFlex storage, one LUN is provisioned for system databases and TempDB, four LUNs for data files, and one dedicated LUN for log files. Using multiple volumes enables concurrent I/O operations, improving overall throughput and reducing bottlenecks. Distributing I/O load across several volumes maximizes SDS utilization and enhances performance, especially for I/O-intensive workloads.
Nutanix storage layout
On Nutanix Cloud Platform, database volumes are presented as virtual disks and attached to virtual machines using the Nutanix VirtIO-SCSI controller. This paravirtualized controller enables efficient communication between VMs and virtual disks and is the default and recommended option for SCSI devices in Nutanix AHV environments. It delivers better I/O throughput and lower latency than legacy IDE or standard SCSI controllers.
For Windows VMs, Nutanix provides Nutanix Guest Tools (NGT), which include VirtIO SCSI drivers for Windows operating systems.
This solution is implemented using VirtIO SCSI driver version 1.2.4 on Windows Server 2025. It is important to note that version 1.2.4 has a known issue with SQL Server workloads: surprise disk removal during inflight I/O operations may cause the VM to hang. This issue has been resolved in VirtIO SCSI driver version 1.2.5, which is also qualified for Windows Server 2025. For the latest updates and compatibility information, refer to the VirtIO Release Notes.
As shown in Figure 7, four virtual disks are created for data files and one dedicated virtual disk for the SQL Server log file. These disks are grouped into two Volume Groups (VGs) on the Nutanix Cluster Infrastructure (NCI) to leverage architectural and operational benefits.
A Volume Group in Nutanix is a collection of one or more virtual disks (vDisks) that can be attached to one or more virtual machines, providing direct block-level access. This setup is ideal for cluster-based applications like Microsoft SQL Server Failover clustering that require raw block devices.
The Controller VM (CVM) provisions the virtual disks and manages all Nutanix storage operations. It communicates with Dell PowerFlex external storage via the SDC driver, enabling volume provisioning and management on the PowerFlex system.
SQL Server Failover Cluster Deployment
SQL Server Failover Cluster Deployment
This section outlines the deployment of a Windows Server Failover Cluster (WSFC) with the SQL Server database role configured. It also provides guidance on designing the database layout for SQL Server FCI deployments to maximize throughput and ensure high availability.
Windows Server Failover Cluster
A three-node WSFC is deployed on Nutanix Cloud Platform virtual machines. Each VM is hosted on a separate AHV host, and Nutanix automatically load balances the VMs across the cluster. A dedicated network has been created for WSFC operations. All essential services—DNS, Active Directory, and NTP—are configured on a separate host.
WSFC requires shared disks for successful failover. These disks are created on Nutanix and mapped from Dell PowerFlex storage. NCP leverages its Volume Group feature to share disks across VMs.
The SQL Server clustered role is configured to ensure high availability, fault tolerance, and seamless failover. It includes a dedicated cluster network and a configured Virtual IP (VIP) for connectivity.
The image below shows the configured SQL Server role.
The clustered role “SQL1” is currently online and depends on associated cluster resources to maintain high availability and support coordinated failover. In case of a failure, the role automatically transitions to another node in the WSFC, along with its dependent resources. Properly configured storage resources are critical for successful failover and must be linked to the clustered role through defined dependencies. These dependencies determine the order in which resources are brought online during failover or startup.
The image below illustrates the clustered role “SQL1” and its dependency on six storage volumes, all of which must be online before the role can start.
For more information on deploying WSFC, see the Implementation guide.
SQL Server database layout
To ensure optimal database performance, the database layout must be carefully designed. with precision. The database team must work closely with development and product teams to determine capacity requirements for various databases, considering different table sizes, IOPS, and latency.
For IO intensive workloads, use multiple disks to store database files. While a single disk may suffice for general-purpose applications, mission-critical workloads benefit from distributing files across multiple disks. There is no strict limit on disk count, but consider file system type, cluster size, and file distribution to optimize performance. Distribute data, log, and temp files across multiple disks to maximize performance and resilience.
As shown in the figure above, data files are distributed across multiple disks, and a dedicated volume is provided for transaction log files. This separation prevents the mixing of random and sequential disk access patterns, improving I/O distribution and helps in improving database performance. System databases (model, master and msdb) and TempDB are stored on a separate disk to prevent TempDB contention.
To further optimize performance, size data and log files appropriately based on expected growth. This reduces the frequency of operating system calls and improves database response times.
The following Windows storage considerations should be carefully assessed when formatting the data and log volumes for the database.
Windows storage considerations
When using external storage such as PowerFlex with WSFC, you can configure each volume in Windows Disk Management as a drive letter, mount point, or CSV. Each option has its own advantages and limitations.
- Drive letters provide an easy way for users and applications to identify and access storage volumes, but are limited to 26 volumes per host.
- Mount points allow volumes to be mounted as folders on an existing NTFS volume rather than assigning it a drive letter. Mount points are sub-directories of the root mount-point (root directory), enabling more flexibility and scalability. Volumes are mounted like a directory structure, making it easier to logically organize data. While most modern applications support mount points, legacy applications may have compatibility issues.
- Cluster Shared Volumes (CSVs) allow 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, providing robust performance, security, and reliability features. It uses a journaling feature to maintain data integrity in the event of a system crash and 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. It 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 SQL server database application, 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.
Various combinations of drive letters and mount points were evaluated, using both NTFS and ReFS file systems with different cluster sizes. Test results revealed that NTFS with an 8 KB allocation size and drive letter configuration, delivered the optimal performance for SQL Server database on Dell PowerFlex storage. While drive letters may not scale well for all environments, they were effective for this solution.
The following table summarizes the partition size and file system used for the database volumes after analyzing test results.
| Drive letter | Size (GB) | File system | Allocation size | Purpose |
| E | 100 | NTFS | 8K | SQL Server installation and TempDB files |
| D | 300 | NTFS | 8K | Data files |
| F | 300 | NTFS | 8K | Data files |
| G | 300 | NTFS | 8K | Data files |
| H | 300 | NTFS | 8K | Data files |
| I | 600 | NTFS | 64K | Log files |
Scaling SQL Server Failover Cluster Deployment
Scaling SQL Server Failover Cluster Deployment
This section outlines how the Dell PowerFlex team scaled SQL Server FCI deployments from a single cluster to multiple clusters. In a single-cluster FCI deployment, only one SQL VM remains active while the others stay idle, leading to underutilized compute and storage resources. To address this inefficiency, the team scaled the deployment to include three independent FCIs, each with its own active and passive node configuration. This approach improves resource utilization and enables more effective stress testing of the storage and database systems.
The diagram illustrates a WSFC setup with three virtual machines, SQL-VM1, SQL-VM2, and SQL-VM3. each participating in a separate FCI.
| FCI | Active node | Passive node(s) | SQL Server Instance | Volume groups |
| FCI 1 | SQL-VM1 |
SQL-VM2. SQL-VM3 |
SQL Server Instance 1 | FCI1_data, FCI1_logs |
| FCI 2 | SQL-VM2 |
SQL-VM3, SQL-VM1 |
SQL Server Instance 2 | FCI2_data, FCI2_logs |
| FCI 3 | SQL-VM3 |
SQL-VM1, SQL-VM2 |
SQL Server Instance 3 | FCI3_data, FCI3_logs |
Each FCI has its own dedicated shared storage for data and log files, along with a distinct active-passive instance configuration. For example, FCI 1 hosts its active SQL Server instance (SQL1) on SQL-VM1, with passive instance on SQL-VM2 and SQL-VM3. FCI 2 and FCI 3 follow similar configurations.
Shared storage for the cluster is managed by Nutanix Volume Groups. These groups function similarly to Cluster Shared Volumes but offer enhanced capabilities, including native integration with the Nutanix platform for simplified management and improved scalability.
A key advantage of Nutanix Volume Groups is their built-in I/O load balancing. Operations are intelligently distributed across multiple Controller Virtual Machines (CVMs) in parallel, significantly improving throughput and reducing latency. However, CVMs do not load balance I/O across volume groups by default—this feature must be enabled manually. This parallelism ensures that storage performance scales with the cluster, making it ideal for high-demand SQL Server workloads. For more information, see Scaling up VM storage performance on AHV using Volume Group Load Balancer.
By default, Volume Group load balancing occurs over the management network interfaces, but traffic can be offloaded to a separate backplane network using network segmentation for improved isolation and performance. For further details, see the Network Architecture section.
This strategy not only enhances resource utilization but also enables robust stress testing of the underlying infrastructure. It validates the performance and reliability of PowerFlex in demanding enterprise environments.
Testing and Validation
Testing and Validation
This section describes the tests performed to validate the Microsoft SQL Server 2022 database performance on Nutanix Cloud Platform using Dell PowerFlex storage. The team used the HammerDB benchmarking tool for the database performance test, focusing on schema creation, data loading, and simulating transactional (OLTP) workloads. The results of these tests compares hardware performance and validates software configurations. For more information, see the HammerDB Blog.
The TPROC-C workload profile in the HammerDB tool was used to validate the performance of the SQL Server database. 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).
Test methodology
This section outlines how the team used the HammerDB tool to run a series of OLTP workload tests against multiple SQL Server cluster setups. The procedure involved multiple iterations, running for a duration of 10 minutes each, with the aim of generating OLTP transactions for different virtual user configurations. The primary objective of this test was to evaluate the multiple FCI setup performance and identify the optimal TPM value while operating under a storage latency of less than 1 millisecond.
For more information about the configuration of the SQL Server VM, see Appendix A3.
A dedicated load-generation VM is provisioned with Windows Server 2022 to launch the HammerDB tool that connects to the database over the network and generates transactions. This HammerDB VM is hosted on a separate host and does not use any storage or compute resources from the Nutanix Cloud Infrastructure (NCI).
In this solution, a single HammerDB VM is used to launch three instances of HammerDB software, each connecting to an individual SQL Server FCI active node. As illustrated in the figure above, HammerDB Instance 1 connects to the active node of FCI 1, Instance 2 connects to the active node of FCI 2, and Instance 3 connects to the active node of FCI 3.
Each FCI generates OLTP workloads on its respective SQL Server database, driving IOPS on its dedicated shared storage volumes.
HammerDB recommends using the following settings in the tool to generate a more transactional workload:
- 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.
HammerDB also suggests the following SQL Server configurations for conducting OLTP benchmarks:
- Set the max degree of parallelism to 1 to prevent excessive parallelism, which may lead to a drop in performance.
- Configure max worker threads between 900 to 3000. The number is subject to change according to the available logical processors. 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.
- Set larger auto growth increments of the data files to reduce the frequency of growth operations and enable instant file initialization to speed up the allocation process, to avoid performance impact.
For more information, see HammerDB documentation.
Test results
The following SQL Server FCI deployment scenarios were evaluated using the HammerDB tool, following the test methodology described.
- Single SQL Server FCI
- Multiple SQL Server FCI
For key deployment best practices used for these scenarios, see the Best Practices section.
Single SQL Server FCI
This section showcases the HammerDB benchmark test results on a single SQL Server FCI cluster. The objective of this test was to measure database performance on one SQL Server FCI deployment.
The chart below shows the performance test results of one SQL Server FCI deployment.
As demonstrated by the test results, the single SQL Server FCI deployment achieved a peak throughput of 1.3 million TPM with 350 virtual users. Although latency remained below 1 millisecond, even at 400 users, the TPM dropped below 1.3 million. This indicates that 1.3 million TPM is the optimal number under the given configuration.
The system generated a total of 239K IOPS for 350 virtual users while constantly maintaining the average read and write I/O latency under 1 millisecond. The read-to-write IOPS ratio observed for this test was 40:60 on the PowerFlex storage.
CPU utilization of VMs during these tests was in the range of 45-75%.
Multiple SQL Server FCI
This section showcases the test results from the HammerDB benchmark of a three SQL Server FCI cluster deployment. The objective was to maximize utilization of attached storage and SQL VM resources by generating more workload using the HammerDB tool. For details on how the FCI deployment was scaled, see the Scaling SQL Server Failover Cluster Deployment section.
The chart below shows the performance test results of a three SQL Server FCI deployment (Three Active SQL VMs).
As observed from the test results, database TPM scaled from 1.3 million on a single SQL Server FCI deployment to 2 million TPM across three deployments. These tests used a total of 60 virtual users (20 per deployment), all running on the same set of three virtual machines. This approach enabled optimal utilization of available hardware resources and successfully scaled database transaction throughput.
PowerFlex storage achieved 390K IOPS when all three SQL VMs simultaneously generated OLTP workloads, while maintaining consistent average read and write I/O latency below 1 millisecond. The read-to-write IOPS ratio observed was 40:60 on the PowerFlex storage system.
The overall CPU utilization of three SQL VMs during the tests was in the range of 33-56% percent.
Best Practices
Best Practices
Microsoft Windows Server & SQL Server 2022
The following section highlights some of the best practices for Windows and SQL Server 2022:
- Ensure that the Windows Server power plan is customized and set to high performance.
- It is recommended to enable the lock pages in 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.
- Always use WSFC cluster validation wizard before deployment or after any hardware changes for the smooth operation of the cluster.
- Regularly test failover scenarios to ensure SQL clustered roles recover as expected.
- 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 their sequential I/O profile with the random I/O profile of data files. This practice also enables the use of PowerFlex storage snapshot technology for creating database backups, ensuring that 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 practice substantially improves database latency performance 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 a multiple 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 configurations in the SQL Server database layout section.
- Set proper dependencies between clustered roles (like SQL Server) and their associated storage resources (e.g., data and log volumes). This ensures that the required disks are brought online first, reducing the risk of service startup failures.
For more information about SQL Server best practices, see the SQL Server Design consideration document.
Nutanix
Consider the following best practices of Nutanix Cloud Platform (NCP) for hosting SQL Server 2022 database on PowerFlex storage:
- Ensure that network interfaces of the same type and speed are used in the bond configuration.
- Use the same VLAN for AHV host and CVM. It simplifies networking and ensures proper communication between the CVM and the AHV host.
- Enable Jumbo Frames (MTU 9000) on physical interfaces only if required by applications.
- Use Guarantee Mode, a Nutanix configuration option, to ensure all VMs restart during host failure. This setting reserves resources to ensure that all VMs can reliably restart on other hosts.
- Always install the supported VirtIO SCSI controller drivers on Windows guests before attaching disks to ensure proper disk detection and operations.
- Ensure VM vCPU count aligns with physical CPU cores available on the AHV host for better performance.
- Enable huge pages in the guest VMs only when the application and VM operating system require them.
- Create new VMs without clones to maximize storage performance for highly latency-sensitive applications, like SQL Server.
- Install NGT (Nutanix Guest Tools) on Nutanix VMs. This includes drivers, services (like VM mobility, cross-hypervisor disaster recovery, VSS, or Self-Service Restore) and utilities that improve communication between the VM and the Nutanix hypervisor.
- Consider using Nutanix Volume Groups with its load balancing capabilities for WSFC shared storage, as its distributed architecture can enhance IOPS and throughput over traditional configuration. For more information, see Enabling Load Balancing of vDisks in a Volume Group.
- To simplify storage management, use Volume Groups instead of isolated virtual disks. Consider enabling Volume Group load balancing to improve storage throughput and latency.
- Optionally, consider configuring a dedicated backplane network to offload Volume Group load-balanced traffic from the management network. This can be beneficial in scenarios where enhanced network isolation or improved performance is required.
Conclusion
Conclusion
Successful deployment of Microsoft SQL Server on Nutanix Cloud Platform (NCP) with Dell PowerFlex storage requires careful planning, adherence to best practice considerations, and thorough testing.
This white paper provides comprehensive guidance on integrating Microsoft SQL Server with Nutanix Cloud Platform (NCP) and Dell PowerFlex. It outlines best practices across all layers of the stack to help achieve optimal system performance.
Testing and validation using the HammerDB tool demonstrates the system’s ability to handle demanding OLTP workloads. The results also highlight how efficiently an FCI deployment can scale on Nutanix Cloud Platform (NCP) with PowerFlex storage.
By combining Nutanix’s robust virtualization capabilities with the scalability and performance of Dell PowerFlex storage, organizations can build a powerful, flexible, and resilient infrastructure for modern, data-intensive applications like Microsoft SQL Server.
Appendix
Appendix
A1. PowerFlex storage node configuration
The following table summarizes the hardware and software resources used to build PowerFlex storage cluster:
| Hardware | Configuration |
| Server model | PowerFlex R650 |
| CPU | 2x Intel Xeon Gold 6330 CPU (28C/56T) |
| Memory (GiB) | 256 GB |
| NIC | 2x Mellanox ConnectX-5 Dual Port 10/25GbE SFP28 |
| Storage | 10x 1.6 TB SAS |
| Dell PowerFlex Manager | 4.6.2 |
| Dell PowerFlex Core | 4.5.4 |
| Storage node OS | PowerFlex Embedded OS |
A2. Nutanix compute node configuration
The following table summarizes the hardware and software resources used to build the Nutanix compute nodes.
| Hardware | Configuration |
| Server model | PowerFlex R650 |
| CPU | 2x Intel Xeon Gold 6330 CPU (28C/56T) |
| Memory (GiB) | 256 GB |
| NIC | 2x Mellanox ConnectX-5 Dual Port 10/25GbE SFP28 |
| Storage | BOSS-S2 223GB RAID-1 |
| Compute Node OS | Nutanix 7.1 |
A3. SQL Server VM configuration
The following table shows the configuration of the VM used to host SQL Server database.
| Hardware | Configuration |
| vCPUs | 64 |
| Memory (GiB) | 64 GB |
| Storage Type (GB) |
|
| Windows Version | Windows Server 2025 Datacenter edition |
| Microsoft SQL Server | 2022 CU19 |
| VirtIO | 1.2.4 |
A4. Nutanix CVM configuration
The following table shows the configuration of the VM used to host SQL Server database.
| Hardware | Configuration |
| vCPUs | 16 |
| Memory (GiB) | 48 GB |
| OS | AOS 7.1 |
| SDC version | 4.5.4 |
A5. SQL Server tuning parameters
The following code sample shows the SQL Server tuning parameters 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 'MAX DEGREE OF PARALLELISM','1'
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
References
Dell Technologies documentation
The following Dell Technologies documentation provides additional and 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.
NCP documentation
The following documentation provides information for Dell PowerFlex with Nutanix Cloud Platform:
- Dell PowerFlex with Nutanix Cloud Platform Overview
- Dell PowerFlex with Nutanix Cloud Platform Technical Overview
- Using Dell PowerFlex with Nutanix
- Dell PowerFlex with Nutanix Cloud Platform: Providing Flexibility and Choice When Modernizing IT Environments
- Dell PowerFlex with Nutanix Cloud Platform Solution Brief: Enhance Your Modern IT with Next-Level Flexible and Secure Software-Defined Infrastructure
Nutanix documentation
The following Nutanix documentation provides additional and relevant information:
Microsoft documentation
The following Microsoft documentation provides additional and 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: