Download Microsoft SQL Server Native High Availability with XtremIO

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Entity–attribute–value model wikipedia , lookup

Tandem Computers wikipedia , lookup

Oracle Database wikipedia , lookup

Microsoft Access wikipedia , lookup

Concurrency control wikipedia , lookup

Functional Database Model wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Btrieve wikipedia , lookup

Team Foundation Server wikipedia , lookup

Database wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Relational model wikipedia , lookup

Open Database Connectivity wikipedia , lookup

SQL wikipedia , lookup

Database model wikipedia , lookup

PL/SQL wikipedia , lookup

Clusterpoint wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transcript
Microsoft SQL Server Native High
Availability with XtremIO
Extending Microsoft SQL Server Functionality with
the EMC XtremIO Storage Array
ABSTRACT
This whitepaper examines the storage efficiency and performance of Microsoft SQL
Server when employing AlwaysOn features available with MS SQL Server 2012 &
2014 on EMC XtremIO Storage Array.
April 2015
EMC WHITE
To learn more about how EMC products, services, and solutions can help solve your business and IT challenges, contact your local
representative or authorized reseller, visit www.emc.com, or explore and compare products in the EMC Store
Copyright © 2015 EMC Corporation. All Rights Reserved.
EMC believes the information in this publication is accurate as of its publication date. The information is subject to change without
notice.
The information in this publication is provided “as is.” EMC Corporation makes no representations or warranties of any kind with
respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a
particular purpose.
Use, copying, and distribution of any EMC software described in this publication requires an applicable software license.
For the most up-to-date listing of EMC product names, see EMC Corporation Trademarks on EMC.com.
All trademarks used herein are the property of their respective owners.
Part Number H14148
2
TABLE OF CONTENTS
EXECUTIVE SUMMARY .......................................................................... 5
Audience ....................................................................................................... 5
INTRODUCTION .................................................................................... 5
Findings ........................................................................................................ 5
MS SQL SERVER HIGH AVAILABILITY ................................................... 6
AlwaysOn Failover Cluster instances (FCI) ......................................................... 6
AlwaysOn Availability Groups (AAG) ................................................................. 6
Availability Modes .......................................................................................... 6
Choosing a Protection Model ............................................................................ 7
XtremIO’s Ability to Change the Non-Shared Storage Model ................................ 8
ALWAYSON ARCHITECTURAL CONFIGURATIONS .................................. 9
AlwaysOn Failover Cluster Instances with XtremIO Writeable Snapshots ............... 9
AlwaysOn Bidirectional Replication Solutions with XtremIO Writeable Snapshots .. 10
AlwaysOn Failover Cluster Instance Combined with Availability Groups and XtremIO
Writeable Snapshots ..................................................................................... 13
VALIDATION ....................................................................................... 14
Validation Scenarios ..................................................................................... 14
Monitoring Performance Metrics ..................................................................... 14
Test Databases ............................................................................................ 15
Test Environment ......................................................................................... 15
SQL Server Configuration .............................................................................. 15
Storage Design ............................................................................................ 16
3
Seeding Database Copies .............................................................................. 17
Using XtremIO Snapshots for Secondary Replica Seeding .................................. 17
Deduplication Ratio of Primary and Secondary Database Copies ......................... 18
Monitoring Availability Groups........................................................................ 20
Maintaining Performance in Synchronous-Commit Mode .................................... 21
Multi-Database, Multi-AG Scenario with Writeable Snapshot Copy ...................... 23
Validation Summary ..................................................................................... 26
CONCLUSION ...................................................................................... 27
Findings ...................................................................................................... 27
REFERENCES ....................................................................................... 28
EMC Documentation ..................................................................................... 28
White Papers ............................................................................................... 28
Product Documentation................................................................................. 28
Microsoft Documentation............................................................................... 28
4
Executive Summary
Efficiency, performance and protection are paramount in today’s modern datacenters, where administrators are required to lower
storage costs while at the same time guarantee strict SLA agreements for their customers, including protecting latency sensitive
Online Transaction Processing (OLTP) database environments hosted on Microsoft SQL Server.
As a refinement to the native high-availability options for SQL Servers, Microsoft introduced the AlwaysOn offerings in SQL
Server 2012. These offerings include AlwaysOn Failover Cluster Instances (FCIs) that provide enhancements to SQL Server
clustered instances, and the AlwaysOn Availability Groups (AAG) feature, which provides a refinement to databases mirroring
and log shipping. AAG, in particular, provides a high-availability and disaster recovery solution which enables to maximize
availability for one or more user databases with a bidirectional replication solution, even across multiple sites and multiple
subnets.
The advantage of AlwaysOn Availability Groups over Microsoft’s HA offering of AlwaysOn Failover Cluster Instances (FCI) is the
ability to have accessible and readable secondary copies of production databases, rather than the active/passive databases
model of FCI. This can provide a more balanced use of datacenter hardware to enable a native bidirectional replication solution.
Using Availability Groups will however increase the storage requirement by a factor of the number of copies retained. As storage
costs are sensitive, this leads to practices where secondary copies may be stored on lower performant platforms, resulting in a
performance drop in failover scenarios. Moreover, secondary copies only service readable workloads. Therefore, if a writeable
(destructive) copy of the data is required, implementing brute force processes is required, which can further increase capacity
requirements and cost.
XtremIO’s always-on Inline Data Reduction feature solves these problems by consolidating databases copies, without capacity
penalties, while providing an SLA that can be expected from an all-flash platform. XtremIO’s instantaneous zero-copy snapshots
provide writable (destructive) database copies where test/dev, reporting and analytical workloads can be performed without
impact to the production environment.
Audience
This white paper is intended for storage and database solution architects currently working with, or considering deploying MS
SQL Server 2012/2014 on EMC’s XtremIO Storage Array. The document provides information on implementing high availability
solutions, while at the same time being able to extend MS SQL Server functionality to provide writeable destructive snapshots of
production data.
Introduction
This paper documents features of Microsoft’s SQL Server AlwaysOn offerings of AlwaysOn Failover Clustered Instance (FCI) and
Availability Groups (AG) to provide native high-availability (HA) for SQL Server 2012 and 2014, and highlights how XtremIO’s
efficiency advantages can further extend the functionality of SQL Server environments by providing writeable snapshots of
databases for test/dev and analytical workloads.
SQL Server Enterprise Edition is required to use the AlwaysOn HA features which may not be an option for some customers, in
which case XtremIO instantaneous zero-cost snapshots are still available to extend SQL Server Standard Editions functionality
and provide the same destructive writeable copies.
Since the document focuses on this topic, generic product information is kept to a minimum. For more details, see the
documents and information listed in References, on page 28, which are available on the XtremIO website.
Findings
•
SQL Server AlwaysOn Failover Cluster Instance and Availability Group technology bring significant improvements to the
levels of native SQL Server protection in terms of ease of use, monitoring and performance, compared to legacy native SQL
Server protection offerings.
•
XtremIO's ability to deduplicate secondary database copies, together with its compression feature, provides significant
capacity saving for AlwayOn Availability Groups deployments.
•
XtremIO Snapshots overcome the read-only secondary copies limitation and allow the creation of writeable snapshot copies
of production databases, even when these databases are protected in synchronous replication.
•
XtremIO Snapshots can extend the SQL Server functionality, even without the requirement to choose Enterprise licensing.
5
MS SQL Server High Availability
Microsoft provides a number of options for configuring high-availability solutions for SQL Server either at the application
database or at the instance level. This document focuses on the AlwaysOn offerings which are available in SQL Server
2012/2014:
•
AlwaysOn Failover Cluster Instances (FCI)
•
AlwaysOn Availability Groups (AAG)
Mirroring and Log Shipping are available options if your SQL Server edition is pre 2012. Microsoft advises that Database
Mirroring will be removed in future versions and recommends that users move to using AlwaysOn Availability Groups. If you are
using a version of SQL Server that does not support the AlwaysOn features, Log Shipping may be an option.
AlwaysOn Failover Cluster instances (FCI)
For AlwaysOn FCI configurations, a single SQL Server instance is installed across multiple Windows Server Failover Cluster
(WSFC) nodes. The WSFC functionality provides high availability at the instance level and access via the cluster name. This
model provides an active/passive solution across shared storage, as show in Figure 1.
Figure 1.
Microsoft SQL Server FCI
AlwaysOn Availability Groups (AAG)
AlwaysOn Availability Groups support a failover environment for a specific set of primary databases and 1 - 8 sets of
corresponding secondary databases, depending on the SQL Server version. Like AlwaysOn Failover Clustering, AlwaysOn
Availability Groups require that the SQL Server instances be configured on WSFC nodes, but with the instances remaining and
being presented to the network as separate computers with failover at the level of an availability replica. Storage requirements
employ a non-shared disk model. For an example of an availability group, see the “before” picture in Figure 2.
Availability Modes
Each availability group has one of the following availability mode settings that determine whether the primary replica has to wait
before committing a transaction on a database, until the corresponding secondary replica has written the transaction log to disk
(hardening the log):
•
Asynchronous-commit mode - The primary replica commits a transaction, without acknowledgment that an
asynchronous-commit replica has hardened the log. While an asynchronous-commit mode minimizes transaction latency,
allowing the secondary databases to lag behind the primary, it makes data loss possible.
•
Synchronous-commit mode - The primary replica waits for acknowledgment that a synchronous-commit secondary has
hardened the log, before committing a transaction. Although a synchronous-commit mode increases transaction latency, it
provides protection against data loss, meaning that as long as the secondary databases are in a synchronized state with the
primary database, committed transactions are fully protected.
6
For more information on AlwaysOn Availability Groups see msdn.microsoft.com.
Table 1
Comparison between AlwaysOn Failover Cluster Instance and Availability Groups
Feature
Nodes within an FCI
Replicas within an Availability Group
Uses WSFC cluster
Yes
Yes
Storage type
Shared
Non-shared
Performs a failover of storage
Yes
No
Protection level
Instance
Database
Standard: 2
SQL Server 2012 – 5 (including
primary)
Enterprise and Datacenter: 16
SQL Server 2014 – 9 (including
primary)
No
Yes
WSFC quorum
WSFC quorum
Availability group settings
Availability Group Settings
Number of nodes/replicas
Readable secondary copies
Applicable failover policy settings
FCI-specific
Failed over resources
Server, instance and database
Database only
Choosing a Protection Model
When choosing between AlwaysOn FCI and Availability Groups, the most important factor to consider (other than the user’s own
preferences and other factors), is the storage requirements of each model. While FCI provides a shared storage model, it leaves
the user with active/passive nodes and without access to the data via the passive node(s). Thus, the hardware hosting the
passive copies sits idle. On the other hand, the AG model enables configuring secondary replica copies to allow operations such
as read-only workloads, backup from secondary copies, etc., which increases both logical and physical storage requirements due
to a non-shared storage model.
Figure 2.
Micorosoft SQL Server AlwaysOn Availability Group
7
XtremIO’s Ability to Change the Non-Shared Storage Model
Hosting MS SQL Server environments on XtremIO is an obvious choice for hosting highly transactional workloads at incredibly
low latencies. However, users should learn about the XtremIO Storage Array’s unique features. XtremIO’s ability to compress
and deduplicate multiple copies of the same database eliminates the disadvantage of AAG and changes the capacity utilization of
the non-shared model used for availability groups. Figure 2 displays the before and after states to demonstrate how XtremIO
changes the storage footprint for Availability Groups.
While in the past there may have been concerns over hosting active/passive clusters volumes (or primary/secondary in the case
of AAG) on the same underlying disk structure, XtremIO Data Protection (XDP) allows the user to have confidence in this choice.
XDP is the world’s first flash-native data protection that delivers lower capacity overhead, superior data protection and better
flash endurance and performance compared to any RAID algorithm. This is due to the fact that each SQL Server instance in an
availability group requires its own set of array volumes to be provisioned as NTFS volumes.
Figure 3 provides a conceptual view of how XtremIO is able to deduplicate and compress these volumes to provide significant
space savings.
Figure 3.
XtremIO Volume Mapping to Windows NTFS Volumes
Figure 3 demonstrates how Secondary Copy NTFS Volumes of a database Primary Copy NTFS Volumes are effectively merged
into one, and how any snapshots taken of these volumes are actually free, being an in-memory metadata operation only. Only
data differences between the multiple copies are counted as additional space usage to the original deduplicated and compressed
data, and even then the unique data benefits from compression savings. For example, if a snapshot is taken of the primary copy
replica and provisioned as a writeable (destructive) copy, additional array storage space will only be consumed for the amount of
data which is changed and manipulated, and even then only for the lifetime of the snapshot.
Another important factor to consider is the additional functionality XtremIO brings to MS SQL Server, regardless of the SQL
Server version being used. Whereas Failover Cluster Instances provide a warm standby copy of the production data, Availability
Group secondary database copies can be configured as readable secondary replica copies. However, in many situations a
readable copy may prove inadequate. Therefore, the ability to have a writeable (destructive) copy of the data will often prove
more useful. As highlighted in the "After" section of Figure 2, XtremIO provides a greatly extended flexibility of SQL
environments. These free instantaneous zero-cost writeable snapshots only consume storage to record changes from the original
data, and only for the lifetime of the snapshot. For examples of incorporating this feature, see AlwaysOn Architectural
Configurations on page 9.
8
AlwaysOn Architectural Configurations
This section details the simpler configuration option available with AlwaysOn.
AlwaysOn Failover Cluster Instances with XtremIO Writeable Snapshots
Microsoft’s AlwaysOn Failover Cluster Instances enable multiple warm standby copies. However, accessing the data held in the
passive node is restricted. In this scenario, XtremIO can greatly extend functionality by providing access to writeable snapshot
copies.
Figure 4.
AlwaysOn Failover Cluster Instances with XtremIO Snapshots
Figure 4 demonstrates how a snapshot copy of the Active databases volumes can be repurposed, on a scheduled basis, as often
and as many times as required. As a result, the failover cluster can still provide protection, and the XtremIO snapshot provides
an independent copy of the data to be repurposed as required.
9
AlwaysOn Bidirectional Replication Solutions with XtremIO Writeable Snapshots
AlwaysOn Availability Groups can provide a more flexible environment over FCI. By allowing configuration of a bidirectional
replication solution, the user can balance hardware usage within and across datacenters.
Rather than maintaining up to 8 secondary copies, as is the limit in SQL Server 2014 (4 in SQL Server 2012), administrators can
dedicate hardware to maintain availability for production systems and either repurpose snapshot copies to independent hardware
or provision to secondary replica servers, in which the hardware may be underutilized.
Figure 5 provides an example of such a configuration for a single site.
Figure 5.
XtremIO and AlwaysOn Availability Groups
10
Figure 6 provides an example of the configuration across multi-sites.
Figure 6.
XtremIO and Multi-Site AlwaysOn Availability Groups
With the performance enabled by XtremIO, maintaining synchronous-commit replication across short distances is also possible,
as shown in Figure 6. Most multi-site replication solutions employing AlwaysOn Availability Groups are likely to be asynchronous,
with the ability of MS SQL Server itself maintaining the REDO process, at distance, being the limiting factor. But with XtremIO,
low latency, such low cost, and low bandwidth solutions are increasingly possible.
Figure 7 demonstrates an even more complex solution, in which a synchronous-commit mode is maintained for two secondary
copies (the limit for synchronous-commit) across a multi-site solution. The second Availability Group is configured as
Synchronous-commit mode at the local Site A level, and as Asynchronous-commit mode between Site A and Site B. The potential
of complexity for a given solution is limited by the computer hardware availability and by the ability of MS SQL Server to host
such complex solutions.
11
Figure 7.
XtremIO and Multi-Site AlwaysOn Availability Groups
12
AlwaysOn Failover Cluster Instance Combined with Availability Groups and XtremIO
Writeable Snapshots
The user is not limited to choosing AlwaysOn FCI over Availability Groups. A combination of the two can be chosen as
demonstrated in Figure 8. The only restriction for this configuration is that SQL Server Failover Cluster Instances (FCIs) do not
support automatic failover by Availability Groups. Therefore, any availability replica hosted by an FCI can only be configured for
manual failover.
Figure 8.
AlwaysOn FCI and Availability Groups with XtremIO Snapshots
These examples highlight how employing XtremIO’s snapshot functionality to provide writeable copies can provide a simpler and
far more practical solution than trying to provision multiple secondary readable copies within availability groups, or being left
with passive inaccessible copies within AlwaysOn FCI configurations.
13
Validation
Validation Scenarios
A series of scenarios were completed to assess the behavior and performance of the suggested deployments. As AlwaysOn
Failover Cluster Instances use a shared disk model, the validation tests concentrated on AlwaysOn Availability Groups.
Tested scenarios include:
•
Deduplication ratio for primary and secondary database copies
•
Maintaining performance in Synchronous-commit mode
•
Multi-database, multi-AG scenario with writeable snapshot copy
Monitoring Performance Metrics
When monitoring SQL Server performance, several host levels performance counters can be monitored. The most obvious
monitors – Avg. Disk/sec Read, Avg. Disk/Write – provide the average read/write latency seen at the host level. Additional
counters are Transfers/sec which provide insight with IOPS and Transactions/sec or TPS.
SQL Server Management Studio (SSMS) also provides a dashboard view, where a user can monitor AlwaysOn Availability
Groups. Additional counters, such as Estimated Recovery Time (seconds) and Redo Rate (KB/sec), can be added to the view, as
shown in Figure 9.
Figure 9.
SSMS Dashboard View for AlwaysOn Availability Group Replicas
For further details on monitoring AlwaysOn Availability Groups, refer to msdn.microsoft.com.
14
Test Databases
The test databases used simulated OLTP-like workloads running a 90/10 read/write workload. These databases are based on the
TPC-E standard, as defined by the Transaction Processing Council (TPC). The TPC-E schema simulates the OLTP workload of a
brokerage firm, providing a central database that executes transactions related to the firm’s customer accounts. Although the
underlying business model of TPC-E is a brokerage firm, the database schema, data population, transactions and implementation
rules have been designed to be broadly representative of modern OLTP systems.
Unique, 100,000 user databases were used, each equating a database of 824GB in size. In Windows, the implementation of the
schema is equal to a database whose files are 1.1TB in size. XtremIO’s ability to compress this unique data, resulting in a 1.6:1
compression ratio in this instance, equates around 544GB of Physical Space Usage on the array, as shown in Figure 10.
Figure 10. Storage Properties for Initial Database
Test Environment
Testing was performed, using industry standard Intel servers (with two 10 core Intel E5-2690 3.0GHz CPUs). Each server was
equipped with a single dual port Emulex LPe 16002 HBA, attached via a Brocade SAN to a single X-Brick cluster (note that the
term cluster can refer to a single XtremIO X-Brick or a multiple X-Bricks configuration).
SQL Server Configuration
Microsoft SQL Server 2014 Enterprise Edition was used for this solution, since the AlwaysOn high availability offerings are
available only in Enterprise editions.
The following configuration options were set:
•
Max. and Min. memory settings were configured to 128GB.
•
Lock Pages in Memory was set.
•
NTFS volumes were configured with 64KB allocation size.
•
Indirect Checking was set to 60s on test databases.
15
Storage Design
To configure the environment, storage was provisioned from a single X-Brick cluster. Table 2 shows the storage configuration
provisioned for each database. Mimicking the volumes, provisioned for each host, provides the storage for the primary and
secondary database copies. Volumes were provisioned to host system databases and TempDB, with a single 1TB volume
configured a seeding repository.
Table 2
Storage Provisioning from XtremIO to Windows Host Nodes
Xtremio Volume Name
Volume Size (GB)
Used (GB)
Host
Windows Volume Name
SQL1_SystemDB
5
SQL Srv 1
SQL1_SystemDB
SQL1_TempDB
256
SQL1_TempDB
SQL1_DB1_Data_1
512
DB1_Data_1
SQL1_DB1_Data_2
512
DB1_Data_2
SQL1_DB1_Data_3
512
DB1_Data_3
SQL1_DB1_Data_4
512
DB1_Data_4
SQL1_DB1_Log
512
DB1_Log
SQL_SystemDB
5
SQL2_TempDB
256
SQL2_TempDB
SQL2_DB1_Data_1
512
DB1_Data_1
SQL2_DB1_Data_2
512
DB1_Data_2
SQL2_DB1_Data_3
512
DB1_Data_3
SQL2_DB1_Data_4
512
DB1_Data_4
SQL2_DB1_Log
512
DB1_Log
SQL Srv 2
SQL2_SystemDB
For each Instance a single volume was provisioned to host the TempDB database, which consisted of four TempDB data files and
one transaction log. Although TempDB performance requirements vary, based on workloads, this configuration performed
adequately in these tests.
Each subsequent database was configured in a similar manner, so that the storage provisioned for the secondary replica copy
matched storage for the primary replica.
16
Seeding Database Copies
There are a number of available options for seeding Availability Group replicas:
•
Full
•
Join
•
Skip initial data synchronization
Figure 11 provides a view of the available options, displayed as part of the Availability Group creation wizard.
When performing a Full Initial Data Synchronization as part of Availability Group creation, a user can take advantage of
XtremIO’s performance to speed up the backup and recovery process. It is recommended that compression be used within the
backup scripting section of an Availability Group creation process, to help reduce the duration of the seeding and reseeding
process by decreasing the size of the backup files. Using multiple backup files can further assist performance by increasing
parallelism of access. Using The Skip initial data synchronization option enables to provision via SQL Server native
backup/restore operations, or use the XtremIO’s snapshot feature.
Figure 11. Storage Properties for Initial Database
As expected, a backup/restore process is a high bandwidth sequential write/read operation, requiring adequate space to be
reserved to accommodate reseeding all of the databases covered by Availability Groups. By simply deleting the backup files,
once the process is completed, consumption of unnecessary storage space is avoided and space reclamation enabled.
Using XtremIO Snapshots for Secondary Replica Seeding
XtremIO provides the ability to seed Availability Groups via Snapshots. A snapshot is effectively a free copy of the database and,
although administrators will not see the deduplication and compression benefits reported in the XtremIO XMS dashboard view, if
speed is a priority for the reseeding process, this is a useful option.
17
Deduplication Ratio of Primary and Secondary Database Copies
To showcase deduplication ratio for a primary and secondary replica database in Availability Groups, a secondary database
replica was seeded. As a result, the following data reduction ratios were observed:
•
Data Reduction Ratio 3.1:1
o
Deduplication 1.9:1
o
Compression 1.6:1
The resulting data reduction ratios are displayed in Figure 12.
Figure 12. Storage View Properties for Single Database AG
The 1.9:1 deduplication ratio is the result of TempDBs and System databases for the two SQL Server Instances hosted on the
single XtremIO X-Brick cluster. Repeating this test, using only the files pertaining to the two database copies hosted on the array
while all other files are removed, results in a 2.0:1 deduplication ratio, as shown in Figure 13.
Figure 13. XtremIO Array Hosting Only Single Database AG Files
18
Hosting the compressed SQL Server backup file, created during the AG creation process on the array, also affects the results, as
shown in Figure 14. It is recommended to delete these files post process, so that a clearer result can be observed.
Figure 14. XtremIO Array Hosting Single Database AG Files plus Backup File
Figure 15 shows the Physical Space Used following creation of the initial single database Availability Group. Only 543.14GB of
Physical Capacity is consumed on the array, against a reported Volume Capacity usage of 1.599TB. If viewed from the OS level,
windows reports 1.1TB of data existing on each SQL Server Instance.
Figure 15. Physical Capacity Used
These results demonstrate the ability of XtremIO to drastically reduce the storage footprint of AlwaysOn Availability Groups, and
to mask the non-shared storage model used by Availability Groups.
19
Monitoring Availability Groups
In SSMS, the Availability Groups are marked as either Primary or Secondary, dependent on the instance from which the
dashboard is viewed. From the server view, shown in Figure 16, the availability group AG1 contains a database named OLTP_1
and is marked as Primary, proving it is viewed from the primary replica server.
Figure 16. Server View
Once configured, Availability Groups can be monitored via the Dashboard view in SSMS. A dashboard view is available for each
Availability Group. Figure 17 shows the dashboard view for AG1, which hosts a single database. PSQL1 holds the primary role
and PSQL2 the secondary replica role. The database is marked as “Synchronized” on both SQL Server Instances, which indicates
that this database is running in a Synchronous mode.
Figure 17. SSMS Dashboard View for Single Database AG
20
As showed in Figure 18, a second Availability Group, AG2, is configured. PSQL2 holds the “Primary” Role and the databases on
this server are marked as “Synchronized”. PSQL1 is marked as “Secondary” and “Synchronizing”. This indicates that the
Availability Group is configured in Asynchronous mode.
Figure 18. SSMS Dashboard View for Single Database AG
Note that the Failover Mode is “Automatic” for AG1 and “Manual” for AG2, demonstrating that only Synchronous mode allows for
Automatic Failover with “No Data Loss”.
Maintaining Performance in Synchronous-Commit Mode
A test workload was run against the Primary replica database in AG1, which was configured in Synchronous commit mode. As
stated by Microsoft, the use of Synchronous commit mode can increase latency due to waiting for acknowledgement of the log
being hardened. The extreme performance capabilities of XtremIO, to service performance as low latency, eliminate this problem
when SQL Server is hosted on an XtremIO array.
As demonstrated in Figure 19 and Figure 20, running an OLTP-like workload generated 32,000+ IOPS on the array with array
latency well below 1ms.
Figure 19. Latency Performance View for Synchronous Commit Mode
21
XtremIO Storage Management Application allows a User Defined Monitor to monitor the latency of individual volumes for Write,
Read and Average latency measured in microseconds (usec), as shown in Figure 20.
Figure 20. XMS Dashboard – User Defined Monitor – Volume Latency
The results show that the XtremIO array can service this workload without any restriction. The maximum latency is 854 (usec)
for logs write latency, which is the particularly sensitive in synchronous replication scenarios.
The Transaction Log performance can often be a bottleneck for SQL Server workloads. However, XtremIO’s performance
capabilities solve this problem. Although the workload can be easily pushed harder, 10,000-15,000 IOPS is generally considered
as the maximum IOPS number for the largest SQL Server databases. In this case, the database is servicing around 27,000 IOPS
while maintaining latencies of well below the one millisecond (ms) threshold.
Figure 21 shows a breakdown of the workload across the two SQL Server instances. The Primary replica is servicing 26,806
IOPS, while the secondary services 5,800 IOPS. The workload on the secondary replica consists mainly of write I/Os generated
by the REDO process. Transactions/sec (TPS) on the primary and secondary replica copies differ greatly because the secondary
replica is simply keeping in sync with the primary copy of the OLTP_1 database, but there is some activity within TempDB for
each SQL Server instance.
Figure 21. IOPS and TPS between Primary and Secondary Copies
22
The SSMS dashboard for AG1, shown in Figure 22, demonstrates the Availability Group AG1, marked as “Healthy” and
“synchronized” with “no Data Loss” at a 1 second Estimated Recovery Time. The Redo rate is shown as 6,023KB/Sec.
Figure 22. SSMS Dashboard View for AG1
The demonstrated performance is impressive, considering it is achieved while running a high availability solution which, at the
same time, is maintaining a secondary copy in a synchronized state.
As the redo process is performed between primary and secondary replicas, the data reduction ratios must be considered. Looking
at the XMS dashboard view (Figure 23), it can be seen that there is no change in the reported figures, even over an extended
workload run.
Figure 23. Data Reduction Ratio Remaining Consistent
Multi-Database, Multi-AG Scenario with Writeable Snapshot Copy
To demonstrate a somewhat more complex scenario, a bidirectional replication solution was configured, consisting of two
Availability Groups protecting three databases. A snapshot of the primary replica database copy for OLTP_1 was taken and
provisioned to an additional SQL Server instance, and a full workload was driven against this XtremIO writeable snapshot, along
with a workload being driven against all other primary databases.
The scenario details are:
•
•
•
Availability Group ‘AG1’
o
PSQL1 hosting Primary Role, PSQL2 hosting secondary role
o
Protecting a single DB OLTP_1 in Synchronous Commit mode
Availability Group ‘AG2’
o
PSQL2 hosting Primary Role, PSQL1 hosting secondary role
o
Protecting two DBs OLTP_2 and OLTP_3 in Asynchronous Commit mode
Writeable snapshot of Primary replica OLTP_1 hosted by PSQL_3
23
Figure 24. Storage Properties Pane – Efficiency
As shown in Figure 24, two copies of the three databases, OLTP_1, OLTP_2 and OLTP_3 result in a deduplication ratio of 2.0:1
and a compression ratio of 1.6:1, giving a 3.1:1 overall Data Reduction Ratio.
Looking at the capacity figures, shown in Figure 25, 1.542TB of the Physical Space are used, versus 4.799TB of Volume Capacity
used and 16.51TB of volume capacity provisioned from the array. These conditions provide a Thin Provisioning Saving of 70%.
Figure 25. Storage Properties Pane – Capacity
24
The effect of mapping the snapshot volumes of the primary replica database OLTP_1 to the third server hosting is shown in
Figure 26.
Figure 26. Storage Properties Pane – with Zero Cost Snapshot
The Storage pane shows that taking the snapshot and mapping the volumes does not change the Physical Capacity Used value.
The only change is that the Volume Capacity provisioned is changed to 19.01TB and the Thin Provisioning saving increases to
74%.
At the next stage, individual workloads were run against all databases for several hours.
Figure 27. Performance Pane
Figure 27 shows the performance reported on the XtremIO Dashboard with 122,497 IOPS reported for the combined workload
across the four databases.
25
Figure 28. Average Total Read/Write IOPS Reported from Dashboard
A point in time breakdown of Read/Write IOPS (Figure 28) shows 104,881 Reads to 15,882 Writes. The average for latencies
across the array at this point, as shown in Figure 29, is 899 microseconds (usec).
Figure 29. Write, Read and Average Latency Reported from Dashboard
Validation Summary
The results of the validation tests confirm that XtremIO is an excellent platform for hosting latency sensitive MS SQL Server
environments. The ability of the XtremIO Storage Array to service multiple workloads in complex configurations, while
maintaining a mixed synchronous and asynchronous bidirectional replication solution servicing 120,000+ IOPS, is truly
impressive. This conclusion is further validated, considering that the results include servicing a full workload against a snapshot
of a database protected in an AlwaysOn Availability Group configured in synchronous-commit, especially with an average latency
of just 899(usec).
26
Conclusion
This white paper highlights the ability of EMC XtremIO Storage Array to host SQL Server environments protected by native SQL
Server AlwaysOn offerings. Possible configurations are demonstrated, using AlwaysOn Failover Cluster Instances and AlwaysOn
Availability Group feature, in both synchronous and asynchronous modes, as well as how to configure both.
In addition, this document highlights the ability of the XtremIO’s snapshot feature to overcome the limitation of read-only
secondary copies by providing the ability to create instantaneous zero-copy writeable snapshots of production databases for
destructive analytical or test workloads.
Findings
•
SQL Server AlwaysOn Failover Cluster Instance and Availability Group technology brings significant improvements to the
levels of native SQL Server protection in terms of ease of use, monitoring and performance, compared to legacy native SQL
Server protection offerings.
•
XtremIO's ability to deduplicate secondary database copies, along with its compression feature, provides significant capacity
saving for AlwaysOn Availability Groups deployments.
•
XtremIO Snapshots overcome the limitation of read-only secondary copies and allow the creation of writeable snapshot
copies of production databases, even when these databases are protected in synchronous replication.
•
XtremIO Snapshots can extend the functionality of SQL Server, even without the requirement to choose Enterprise licensing.
27
References
For more information, refer to the XtremIO website.
EMC Documentation
These documents are available from the EMC.com or EMC Online Support websites. Access to online support depends on your
login credentials. If you do not have access to a document, contact your EMC representative.
White Papers
For additional information, refer to the white papers listed below:
•
Introduction to the EMC XtremIO Storage Array
•
Introduction to XtremIO Snapshots
Product Documentation
For additional information, refer to the following product documents:
•
EMC XtremIO System Specifications
•
EMC XtremIO Storage Array User Guide
•
Introduction to the EMC XtremIO Storage Array (Ver 3.0)
Microsoft Documentation
For additional information specifically provided by Microsoft, check the latest documentation on the MSDN and TechNet sites at
Microsoft.com and refer to the following documents:
•
Pre-Configuration Database Optimizations
•
SQL Server Best Practices
•
MSDN: AlwaysOn Availability Groups (SQL Server)
28