FlashArray ActiveCluster for Microsoft SQL Server Technology Overview

Microsoft Platform Guide

Audience
Public
Source Type
Documentation

Everpure FlashArray ActiveCluster offers a unified storage solution that seamlessly integrates high availability, data replication, and failover capabilities. Built on the Purity operating environment, ActiveCluster provides SQL Server administrators with the ability to ensure data consistency and minimize downtime across geographically dispersed arrays.

Figure 1. Technology overview of the ActiveCluster for SQL Server solution: Pure1Cloud Mediator mediating between FlashArray systems to provide high availability for SQL Server data replicated between two sites.

SQL Server

SQL Server is a widely used relational database management system that has gained popularity among organizations of all sizes due to its scalability and ease of management. SQL Server provides high-availability features that database administrators can use, such as SQL Server Always On Failover Cluster Instances, and Always On Availability Groups.

SQL Server also provides a number of features that make it an ideal platform for multiple mixed workloads, from online transaction processing to complex online analytics processing. SQL Server handles structured data with atomicity, consistency, isolation, and durability compliance that protects data and ensures reliable transaction processing. Data protection features, such as transparent data encryption and role-based security, help organizations keep their data safe both at rest and in transit. Within this white paper, SQL Server is the core database platform that supports an organization's business applications and services.

SQL Server High-availability Solutions

SQL Server environments rely on high-availability solutions to minimize downtime and ensure continuous access to critical data. Two primary SQL Server configurations for high availability are SQL Server Failover Cluster Instances and Always On Availability Groups, each providing unique benefits for maintaining SQL Server accessibility.

SQL Server Failover Cluster Instances and ActiveCluster

SQL Server Failover Cluster Instances use the Windows Server Failover Cluster service to provide instance-level redundancy and automatic failover within a cluster. In a SQL Server Failover Cluster Instance setup, SQL Server instances are configured with a shared storage model that connects multiple nodes, allowing operations to transfer automatically to a standby node if the primary node encounters an issue. This model reduces downtime and ensures SQL Server databases remain accessible during node failures.

ActiveCluster adds a powerful layer of storage-level high availability by addressing the singular fault domain inherent in the shared storage model used by SQL Server Failover Cluster Instances. By introducing a second FlashArray with synchronous replication, ActiveCluster enables identical copies of SQL Server database volumes to exist on separate arrays, thus mitigating the risks associated with a single storage fault domain. Storage-level redundancy and synchronous data replication with ActiveCluster ensure data consistency and seamless failover across FlashArray instances without data loss or disruption to SQL Server operations. This approach minimizes both planned and unplanned downtime, providing a robust solution for mission-critical SQL Server workloads.

Before implementing SQL Server Failover Cluster Instances with Windows Server Failover Cluster, review the following setup and installation documentation:

Enhancing High Availability with ActiveCluster

With ActiveCluster, data is synchronously replicated across FlashArray instances, maintaining data consistency across sites and providing an additional layer of availability for SQL Server. This configuration allows for seamless failover and recovery in the event of a failure, ensuring business continuity without data loss. By integrating at the storage layer, ActiveCluster not only enhances redundancy but also simplifies storage management for SQL Server Failover Cluster Instances, making it ideal for reducing downtime and maintaining high availability in SQL Server environments.

Always On Availability Groups

Always On Availability Groups provide database-level high availability and disaster recovery by maintaining replicas of user databases across multiple servers. Unlike SQL Server Failover Cluster Instances, Always On Availability Groups allow SQL Server instances in an Availability Group to be active on different replicas simultaneously, enhancing read scalability and ensuring continuous availability. However, only one replica (the primary) can be configured as read/write; additional replicas remain read-only.

Note: Always On Availability Groups and ActiveCluster serve separate purposes and should be implemented independently. Choose the appropriate solution based on business requirements: Always On Availability Groups are managed at the database level, while ActiveCluster operates at the storage level.
SQL Server Always On Failover Cluster Instances

An Always On Failover Cluster Instance follows a shared-storage model, where the SQL Server instance is installed on multiple hosts, but it runs on only one host at a time (in an active/passive configuration). The SQL Server instance is hosted on a primary active host, while the other hosts in the cluster remain passive. If the primary active host experiences a failure or goes offline, the Windows Server Failover Cluster service initiates a failover process, promoting one of the passive hosts to the primary active role. SQL Server then resumes operations on the newly promoted host, ensuring minimal downtime and high availability. To further enhance high availability, ActiveCluster introduces transparent failover, ensuring automatic, seamless recovery.

FlashArray

Built on all-flash storage, FlashArray provides storage and database administrators running SQL Server in their environments a fast, scalable, unified block- and file-storage platform that is ideal for high-performance databases.

By providing a unified interface and simple-to-use tools for storage administrators, FlashArray gives those administrators the ability to quickly and seamlessly replicate, move, and manage data. FlashArray also deduplicates and compresses all data before it is written, efficiently reducing the size of data without impacting performance. Storage and database administrators can further increase storage by using the FlashArray snapshot capabilities to create snapshots of production databases, and they can use those snapshots in development or testing environments.

The FlashArray family consists of the following:

  • FlashArray//C™: Low-latency storage for capacity-oriented workload

  • FlashArray//X™: High-performance, high-capacity storage that is ideal for performance-oriented workloads

  • FlashArray//XL™: High-performance storage at scale that helps reduce the number of arrays needed to run large applications

  • FlashArray//E™: Economical-at-scale storage for workloads that aren't time-sensitive

ActiveCluster

ActiveCluster is an advanced solution for data replication, offering a fully symmetrical, bidirectional replication capability that ensures zero recovery point objectives and zero recovery time objectives. It achieves this by replicating data synchronously and enabling automatic, seamless failover. Its design enables clustered arrays and hosts to operate in a flexible, active-active configuration within a data center setup, maintaining high availability and reliability across connected sites.

Figure 2. Pure1 and ActiveCluster architecture: Pure1 mediates between clustered FlashArray systems to provide high availability for SQL Server.

ActiveCluster stands on three pillars: Pure1 Cloud Mediator, paired active-active clustered arrays, and pods (stretched storage containers).

Figure 3. ActiveCluster components

Pure1 Cloud Mediator ensures seamless communication, while the paired arrays provide the infrastructure for bidirectional data access:

  • Pure1 Cloud Mediator: An essential component within the solution, Pure1 Cloud Mediator plays a critical role in determining which storage array will assume data services in the event of an outage, ensuring the continuity of operations within the environment.

  • Active-active clustered FlashArray systems: This configuration leverages synchronous replication to uphold identical data copies on each array and present them as a unified and consistent copy to hosts connected to either or both arrays. This approach ensures data accessibility and consistency across the clustered arrays.

  • Stretched pods: ActiveCluster introduces a new management entity known as "pods." A pod delineates a group of objects that undergo synchronous replication together and specifies between which arrays this replication occurs. Pods not only facilitate the grouping of storage objects but also ensure a consistent input/output continuation behavior for the storage objects contained within them, enhancing data availability and reliability.

Pure1 Cloud Mediator

A mediator is a critical component for managing and coordinating data replication and failover between two FlashArray systems in an active-active configuration. ActiveCluster ensures synchronous replication across FlashArray systems. Pure1 Cloud Mediator ensures that if communication is lost between arrays, only one array remains active for each pod, preventing conflicts.

If the arrays lose connectivity, both temporarily halt input/output and contact the mediator. The array that reaches the mediator first continues serving its pods, while the other stops input/output to prevent a "split-brain" scenario. This process occurs within standard host input/output timeouts, ensuring applications experience only a brief pause before resuming operations, minimizing disruptions to SQL Server databases.

On-premises Failover Mediator

Failover mediation for ActiveCluster can also be facilitated by deploying an on-premises mediator, which is distributed as an Open Virtualization Format file and can be set up as a virtual machine. The failover procedures remain consistent with those previously described, regardless of whether Pure1 Cloud Mediator or an on-premises mediator is employed. More information can be found in the on-premises mediator documentation.

An on-premises mediator must adhere to certain fundamental requirements:

  • Virtual machine deployment: The on-premises mediator can only be deployed as a virtual machine on virtualized hardware; it is not installable as a standalone application.

  • High availability: To ensure high availability, the mediator's host should implement a reliable failover mechanism, such as VMware high availability or Microsoft Hyper-V high-availability clustering.

  • Immutable configuration: The array hosting the mediator must be configured to prevent any rollback of the mediator's configuration to prior versions. This includes scenarios like storage snapshot restores or situations where the mediator resides on mirrored storage.

  • Configuration setting: If using an on-premises mediator, the storage arrays must be configured to utilize the on-premises mediator instead of Pure1 Cloud Mediator.

  • Third-site deployment: The mediator should be deployed in a third site, within a separate failure domain that remains unaffected by failures in either of the sites where the arrays are installed.

  • Independent network connectivity: Both array sites must have distinct network connections to the mediator. This ensures that the failure of one network connection does not impede access to the mediator for both arrays , enhancing redundancy and reliability.

Stretched Pods

An array can accommodate multiple pods, and those pods can exist on a single array or span across two arrays concurrently, maintaining synchronous replication. When pods are synchronously replicated between two arrays, they are referred to as being "stretched between arrays." This innovative feature enhances the flexibility and management capabilities of ActiveCluster.

  • Pod consistency groups: Pods can contain various components, including volumes, protection groups, and configuration details specifying the association between volumes and hosts on FlashArray. Essentially, a pod functions as a consistency group, guaranteeing that multiple volumes housed within the same pod maintain strict consistency in terms of the order in which write operations are executed. This ensures data integrity and coherence for the interconnected components within the pod.

  • Pod namespaces: Pods also introduce the concept of volume namespaces, which means that different volumes can share the same volume name as long as they are located in different pods. In the scenario depicted in Figure 5, the volumes within Pod 3 and Pod 4 are distinct from those in Pod 1 and Pod 2, which are stretched active/active pods. This architectural choice enables the migration of workloads between arrays or the consolidation of workloads from multiple arrays onto a single one, without encountering conflicts related to volume names. This setup enhances flexibility and simplifies data management in diverse operational scenarios.

Figure 4. ActiveCluster pods
Transparent Failover

With ActiveCluster, failover is transparent, automatic, and requires no manual intervention from administrators. This ensures high availability and prevents data mismatches between arrays serving the same volume.

Note: ActiveCluster failover can also be manually managed for failover testing and non-disruptive storage array migration.

To maintain availability across two sites, a component called a witness (also known as a voter) is needed to manage failovers and prevent data mismatches. ActiveCluster uses Pure1 Cloud Mediator (or an on-premises failover mediator) for this purpose, making failover and site changes seamless and automatic in the event of issues, without the need for manual actions. In addition to transparent failover, ActiveCluster offers flexible deployment options for host access to optimize performance.

Flexible Deployment Options for Host Access

In ActiveCluster, hosts can be configured in two ways: uniform host access, where hosts can access both arrays, regardless of their physical locations, and non-uniform host access, where hosts interact solely with the local storage array.

Uniform Host Access

A standardized storage access model is applicable wit hin environments featuring host-to-array connectivity via either Fibre Channel or Ethernet (for iSCSI), along with array-to-array Ethernet or Fibre Channel interconnectivity across two separate sites. In this deployment scenario, each host possesses access t o identical volumes through both the local and remote arrays. This solution is adept at syncing the connection of arrays even when the round-trip time latency between them reaches up to 11 milliseconds, ensuring seamless and consistent data access and management.

Figure 5. ActiveCluster uniform host access

Figure 6 provides a representation of the logical pathways connecting hosts and arrays, including the replication link connecting the two arrays, within the context of a uniform access model. In a uniform storage access model, where all hosts, regardless of their site locations, can access both arrays, it's important to note that different latency characteristics will be observed. Specifically, paths from hosts to the local array will exhibit lower latency, while paths from each local host to the remote array will demonstrate higher latency due to the geographical separation between sites. This diverse latency profile should be considered when optimizing data access and ensuring efficient data management across the environment.

For instance, if a database called "SQL Server B" writes to stretched volume A through Array A, the process might take longer compared to writing through Array B. This is because the data-write from SQL Server B has to travel the longer path between the host and Array A and then cross the replication path between Arrays A and B. It's important to be aware of these latency differences when deciding how to route data for better performance.

SCSI Asymmetric Logical Unit Access

ActiveCluster uses a feature called SCSI Asymmetric Logical Unit Access to encourage hosts to use local paths when accessing FlashArray volumes. Array administrators can select a preferred array for a host-volume connection, making it the best choice for local hosts. Remote paths are available but might not be as fast. While both local and remote paths can be used for reading and writing, hosts prefer the fast local paths and only use the slower remote paths when there are no fast ones available. This helps data access stay quick and efficient.

For example, consider Array A as local to Host A. Setting the preferred array to Array A is important when there is a big difference in latency between a host and its local array compared to the remote array. In cases where data center or small campus setups have similar latencies for host-array communication, utilizing all paths can enhance overall performance.

Non-uniform Host Access

ActiveCluster non-uniform host access is a deployment model where hosts connect to only one of the two FlashArray systems in an ActiveCluster setup, rather than both. Data remains synchronously replicated between arrays, but each host accesses just one array at a time. If one FlashArray becomes unavailable, hosts connected to it will need to reconnect or switch to the secondary array through either manual intervention or automated processes. This model reduces complexity and cabling, providing high availability and zero recovery point objectives without requiring direct host connections to both arrays, though it might require additional steps for failover.

Note: Non-uniform ActiveCluster configurations, when combined with SQL Server Always On Failover Cluster Instances, are unsupported and do not provide a reliable high-availability posture. ActiveCluster and Windows Server clustering use different host access technologies that cannot coordinate with each other, which results in uncoordinated failover mechanisms between storage and application layers.
Replication Performance and Data Flow with ActiveCluster

Understanding the performance requirements and flow of data within ActiveCluster is crucial for optimizing SQL Server workloads. Synchronous replication with ActiveCluster ensures zero recovery point objectives by mirroring writes across FlashArray instances, providing robust data consistency and immediate failover capabilities. However, this mirrored write process can have an impact on SQL Server workload performance, especially in latency-sensitive environments.

Mirrored Writes and SQL Server Workload Impact

In ActiveCluster, each write from the SQL Server host is mirrored to both FlashArray systems, ensuring identical data is maintained across arrays. This process, known as "mirrored writes," involves writing data to the primary FlashArray and immediately replicating it to the secondary array before acknowledging the write back to the host. While this approach maintains high data consistency, it also means that replication latency can impact SQL Server response times. Monitoring and managing network latency between arrays is therefore essential, as elevated latency can slow SQL Server transactions that rely on synchronous acknowledgment from both arrays.

Requirements for Optimal Replication Performance

To maximize replication performance, keep the latency between the two FlashArray systems as low as possible, ideally below five milliseconds, and not to exceed 11 milliseconds. This requires a robust network infrastructure and consistent monitoring of latency and bandwidth to ensure reliable and high-speed data transfer. Ensuring that sufficient bandwidth is available for peak workloads can prevent potential bottlenecks and performance degradation in ActiveCluster.

Monitoring Replication Health

ActiveCluster offers built-in monitoring tools that help track replication status and performance. Regularly checking metrics such as replication lag, write latency, and array health is key to identifying potential issues before they affect SQL Server workloads. The Pure1 management platform provides a centralized view of these metrics, allowing administrators to proactively manage the replication environment and maintain optimal performance.

Data Flow of a Write Operation

In an ActiveCluster environment, the flow of a write operation proceeds as follows:

  1. The SQL Server application initiates a write to the database, which is processed by the primary FlashArray.

  2. The primary array writes the data to its local storage and simultaneously sends the data to the secondary array.

  3. Once both arrays confirm the data has been successfully written to non-volatile RAM, the primary array acknowledges the write operation back to the SQL Server host.

  4. The host application receives confirmation of the completed write, maintaining data availability and consistency across arrays.

Figure 6. Overview of the life of an input/output operation with ActiveCluster

This data flow ensures that every write is mirrored in real-time across both arrays, supporting the ActiveCluster promise of zero recovery point objectives and enabling fast, seamless failover when necessary.

Everpure Cloud Dedicated

Everpure Cloud Dedicated provides seamless data mobility across on-premises and cloud environments with a consistent experience, regardless of where data lives. It provides enterprise-grade storage features in the cloud, and its industry-leading data efficiency means you buy less capacity in the cloud without sacrificing agility and flexibility. Everpure Cloud Dedicated is available in the Amazon Web Services Marketplace and the Microsoft Azure Marketplace.

Everpure Cloud Dedicated is available in two versions, //V10 and //V20. Each version provides different capacity and performance capabilities.

Figure 7. The //V10 and //V20 Everpure Cloud Dedicated versions provide the effective capacity listed with a 4:1 data reduction rate

VMware vSphere Integration with ActiveCluster

VMware vSphere integration with ActiveCluster provides a powerful solution for virtualized SQL Server environments, allowing seamless storage management, high availability, and scalability across multiple sites. This section covers aspects of that integration and focuses on the support for VMware vSphere VMFS and VMware vSphere Virtual Volumes, along with best practices and host/storage considerations.

Figure 8. Example VMware environment deployed to make use of ActiveCluster
vSphere VMFS and vSphere Virtual Volumes Support

VMware environments support two key storage technologies, both of which integrate seamlessly with ActiveCluster and offer distinct benefits for managing SQL Server virtual machines:

  • vSphere VMFS: This high-performance cluster file system is used by VMware ESXi hosts to store virtual machine files. It enables multiple ESXi hosts to read/write to the same storage concurrently, making it ideal for shared storage environments like ActiveCluster.

  • vSphere Virtual Volumes: This storage technology offers granular storage control by abstracting physical storage resources and presenting them as logical storage objects directly aligned with individual virtual machines and their data. Unlike vSphere VMFS, which operates at a higher level, vSphere Virtual Volumes integrates more deeply with storage systems, enabling virtual machine–centric operations and direct storage management for each virtual machine.

Integrating VMware environments with ActiveCluster for SQL Server can provide the following benefits:

  • High availability: Synchronous replication between arrays with ActiveCluster ensures that SQL Server databases hosted in virtual machines remain highly available across multiple sites or arrays. Failover is seamless, with minimal disruption to SQL Server services.

  • Simplified management: ActiveCluster enables easy management of vSphere VMFS and vSphere Virtual Volumes environments, allowing VMware administrators to replicate entire datastores or individual virtual machines across sites.

  • Improved performance: ActiveCluster enhances input/output performance by leveraging VMware solutions' multipathing and load-balancing capabilities, ensuring that SQL Server workloads run efficiently even during peak demand.

  • Business continuity: With ActiveCluster, VMware solution–based SQL Server environments can achieve near-zero recovery point objectives, ensuring data integrity and continuous availability during failures or site outages.

For detailed steps for configuring ActiveCluster for VMware solutions, see the ActiveCluster with VMware user guide.