A Unique Approach to SQL Server Consolidation and High Availability with Sanbolic AppCluster Andrew Melmed VP, Enterprise Architecture Sanbolic, Inc.
Introduction In a multi-billion dollar industry, Microsoft SQL Server plays a pivotal role in managing business-critical data in IT enterprise environments around the world. From SMB to SME to large enterprises comprised of multiple, interconnected sites, organizations rely on SQL Server to provide uninterrupted access to the data they need to conduct business operations 24/7. As the data backbone of an organization, it s no wonder there are so many options available for making SQL Server environments highly available. For IT administrators, it is absolutely essential they ensure business-critical databases are accessible at all times in order to avoid downtime that could have a significant impact on the company s bottom line. Some of the more common options used by IT professionals to achieve database high availability (HA) include SQL Clustering, SQL Mirroring, Log shipping and SQL Replication. While they serve their purpose, each has its own challenges and limitations that can make deploying, managing and maintaining database HA more difficult and more time consuming then necessary, and ultimately increase both the cost and complexity of a SQL Server environment. In addition to providing high availability, there are several other key aspects that should be taken into consideration when determining the HA solution most appropriate for one s SQL environment, including database management, database protection, system performance and scalability. Each must be thoroughly scrutinized to ensure the solution of choice offers the primary benefit of high availability without adding to the cost or complexity of managing, protecting and scaling SQL environments. This paper introduces IT professionals to another option for achieving SQL database HA that is becoming more prevalent in IT enterprise environments by the day one that achieves its chief objective without increasing deployment cost or complexity.
Traditional SQL Server HA Methods Before we present this other option, let s briefly discuss some of the more conventional methods that have been employed by IT organizations to achieve database HA, along with the issues associated with their use. We ll begin with SQL Clustering, which requires Windows Failover Clustering. With clustering, two or more SQL servers running the Windows Failover Clustering feature are configured to participate in a failover cluster. Various resources such as network and storage are also added to the cluster, all of which are managed (in active/passive mode) by the Failover Clustering service. During a SQL server failure, Failover Clustering automatically moves clustered resources to another server in the cluster. Once the disk containing the database(s) can be accessed by another server in the cluster, SQL clients proceed to reconnect to the database(s) now hosted by the new (backup) server. Besides requiring additional moving parts, which lead to further configuration and troubleshooting efforts should something go awry, SQL Clustering is based on an active/passive method of achieving database HA, which means that before SQL clients can reconnect to a database, access to the disk containing the database must first be moved to another server in the cluster. Since this process can take an extended period of time, it has the potential to adversely affect certain applications. Another issue or limitation associated with SQL Clustering includes the number of servers that can participate in a cluster. Two key prerequisites for clustering SQL servers include the Enterprise edition of Windows Server and SQL Server Standard edition (at a minimum). However, even after meeting these requirements, customers are still limited to two-node clusters. Depending on the criticality of the application(s) relying on SQL Server, some customers would prefer to have more than a single server available for backup in the event the primary server fails, which means upgrading to SQL Server Enterprise edition or deploying multiple two-node clusters. While upgrading from Standard to Enterprise edition can be a fairly expensive proposition, having to set up, manage and maintain multiple two-node clusters introduces additional management overhead that can have a dramatic effect on corporate results.
SQL Mirroring Using this method, database transactions are mirrored to a secondary copy of the database. To avoid any single point of failure, a second SQL server would be used to host the database copy with the database copy stored on another disk (i.e., internal (server-side) storage, network-storage (NAS) or a SAN). Having two databases (a primary and secondary copy of each database) means administrators have more data to manage, maintain and protect and valuable storage capacity, which could be better utilized elsewhere, must be used to store the database copy. Similar to SQL Mirroring, Log Shipping involves mirroring database log transactions as opposed to mirroring database transactions. The results are the same as with Mirroring a second SQL server and additional storage resources would be recommended to avoid introducing a single point of failure, which leads to additional data management and maintenance overhead as well as inefficient use of storage resources. The fourth option is SQL Replication, for which there are three types: Snapshot, Transactional and Merge. Regardless of the type of replication employed, two main components are required Publisher and Subscriber. Publishers make data available to servers (subscribers) while subscribers receive updates from publishers as data is modified. With Snapshot replication, the publisher takes a snapshot of the entire replicated database and then makes it available to subscribers. Since this process can be very time consuming and resource-intensive, administrators rarely use this approach for databases prone to frequent changes. However, for databases that rarely change or for establishing a baseline for replication between servers where future changes are propagated using either the Transactional or Merge replication method, Snapshot replication may be considered a viable option. For databases whose contents change frequently, Transactional replication, which involves monitoring the publisher for database changes and then transmitting those changes to the subscriber(s) immediately or periodically, is usually considered more appropriate. Of course, as with the other methods of replication, the use of additional servers and storage as well as the need to synchronize database changes often leads to additional cost and complexity.
Merge replication allows both the publisher and subscriber to make changes to a database (two copies) independently of each other. This method is well-suited for scenarios where the publisher and subscriber are not physically connected over a network. Once these systems are connected, changes made to each database are used to update the database on the opposing system to ensure both databases are up to date. In enterprise environments where SQL servers are constantly connected to the network, this method is rarely considered by IT administrators for achieving database HA. Now that we ve discussed some of the traditional methods for achieving SQL database HA and the issues associated with their use, it s time to reveal the one solution that offers high availability to ensure businesses continue to operate without impact during SQL server failures, as well as addresses the other facets (i.e., database management, database protection, system performance and scalability) that make for the ideal SQL database HA solution. Sanbolic AppCluster A core component of Sanbolic s Melio data management platform, AppCluster enables SQL servers to be clustered for consolidation and high availability. And although, like the other options reviewed in this paper, the key benefit realized through AppCluster is database HA, AppCluster achieves its objective without introducing any of the challenges or limitations associated with the other solutions. To achieve this unique trait, AppCluster leverages flexible, scalable, highly available shared storage created with Sanbolic s advanced, 64-bit, symmetrical cluster file system, Melio FS. By clustering SQL servers around a shared file system, multiple databases can be stored on a single volume, simplifying both database and storage management and optimizing storage utilization while enabling database high availability, cluster-wide database protection and intelligent workload distribution.
To make sure business-critical databases are well-protected, Melio includes cluster-wide snapshot capability, allowing administrators to take point-in-time snapshots of a Melio shared volume from any server in the cluster with the click of a button or automatically based on predefined schedules. After a snapshot is created, its contents can be copied to a target volume for reliable data backup and recovery. As an added benefit achieved through the use of Melio shared storage, AppCluster has the ability to help maintain optimal performance levels during SQL server failures by reassigning (or redistributing) databases across multiple servers in the cluster to avoid overloading any particular server. Taking this a step further, Sanbolic adds a level of intelligence to the failover process, allowing administrators to assign weightings to servers and databases. Higher weightings on servers imply those servers are able to support heavier workloads while higher weightings on databases imply those databases have the potential to impose heavier workloads. These weightings are then used by AppCluster to determine the most effective way to distribute (fail over) databases across active servers in order to maintain optimal performance levels during a SQL server failure. Having the ability to distribute SQL workloads across multiple servers during server failures or after new servers are added to a cluster can be extremely helpful in maintaining performance levels, particularly in mid- to large-size deployments. Sanbolic s AppCluster solution also includes a Quality of Service (QoS) feature that assures SQL processes and databases the storage throughput necessary to maintain optimal performance levels during times of heavy I/O. And customers can take advantage of Melio s ability to combine storage resources provisioned from multiple (heterogeneous) arrays to create shared volumes out of stripe-sets, further boosting performance through the use of multiple storage controllers, additional caching and a greater number of spindles. While the other options for SQL database HA can make scaling a SQL deployment quite difficult (i.e., more databases and more servers lead to more data and storage management overhead), Sanbolic s approach actually makes scaling a deployment exceptionally easy, thanks to the 64-bit symmetrical architecture upon which the solution is built.
Using AppCluster, hundreds of SQL servers can operate within a single cluster (regardless of which edition of SQL Server is used) and additional servers and storage resources can be incorporated into the database HA solution dynamically (without disrupting existing workloads) to increase processing power and storage capacity. As for limitations, good luck finding any Melio shared volumes can reach up to 18 EBs (18 million TBs) in size, providing more than enough capacity to support even the largest of SQL Server environments! SQL Server in the Cloud Now that you know how Sanbolic is helping its customers achieve the greatest ROI in their business-critical applications, imagine what your organization could accomplish if it had the opportunity to garner the same benefits on a much larger scale. In other words, achieve database consolidation, high availability and reliable protection, as well as enhanced system performance and dynamic scale throughout its entire (geographically dispersed) enterprise while simultaneously realizing the economic benefits of the cloud. Working with leading hosting companies such as Amazon Web Services (AWS ) and Rackspace, Sanbolic is helping businesses migrate their SQL Server workloads to the cloud on an as-needed or as-desired basis to reduce both capital and operational expenses and achieve business continuity. Leveraging the mirroring technology built into the Melio data management platform, customers are able to bridge their on-premise IT infrastructures with the public cloud, essentially extending their environments to allow enterprise workloads such as SQL Server to run in both locations concurrently for enhanced availability and scalability. This seamless approach to on-boarding also offers organizations the ability to set their own pace for moving their workloads to the cloud while avoiding the perception of losing some (or all) control over the SQL environments upon which their business-critical applications so heavily depend.
Conclusion Offering a simple, cost-effective solution to SQL database HA that also simplifies database management, provides reliable database protection, improves system performance and enables dynamic scale to actually reduce deployment cost and complexity, Sanbolic AppCluster is truly unlike any other solution available on the market today for achieving SQL Server consolidation and high availability. To learn more about how Sanbolic s Melio data management platform is helping hundreds of organizations around the world, visit www.sanbolic.com. Headquarters 309 Waverly Oaks, Suite #101 Waltham, MA 02452 USA Phone: 617-833-4242 Email: sales@sanbolic.com