Sanbolic Melio provides high availability for SQL Server in Citrix XenDesktop 5.0

As many of you know, Sanbolic® has been enhancing Citrix® solutions for years, helping Citrix customers achieve greater value from enterprise applications such as XenApp™ and XenDesktop®.

Well, here we go again! This time, the beneficiary of Sanbolic’s industry-leading software-based storage solution “Melio Unified Storage Platform™” is the latest version of Citrix’s market-leading VDI solution, XenDesktop 5.0®.

XenDesktop 5.0 introduces several major changes with respect to it’s components, architecture and implementation. One of these major changes, located at the crux of the VDI solution, is how the configuration information for XenDesktop 5.0 is stored. No longer is the IMA data store used to store configuration information. Instead, a Microsoft® SQL Server™ database is used to store both configuration and session information. With this new dependence on SQL Server however, comes the necessity to ensure that the central database for XenDesktop is always accessible.

Reading through the XenDesktop user manuals, you’ll find various sections that cover the topic of SQL HA. Of notable importance is the following statement:

“In XenDesktop, all information is stored on the database; controllers communicate only with the database and not with each other. A controller may be unplugged or turned off without this affecting other controllers in the site. This means, however, that the database forms a single point of failure. If the database server fails, existing connections to virtual desktops will continue to function until the user either logs off or disconnects from their virtual desktop; new connections cannot be established if the database server is unavailable.”

In order to address the single point of failure introduced by SQL Server, Citrix recommends the following:

1. Backup the database regularly so that the database can be restored from the backup if the database server fails.

2. Implement one of the following SQL HA methods:

A. SQL Mirroring: (Recommended by Citrix.) Mirroring the database ensures that if the primary SQL Server hosting the database fails, database ownership will automatically fail over to another SQL Server within a few seconds. Although this method can be effective for minimizing the impact of SQL Server failures to users, Citrix notes that this method is more expensive than other methods for enabling SQL Server HA since full SQL Server licenses are required to employ this configuration. In addition, XenDesktop product documentation also notes the following: “If you intend to use SQL Mirroring, you must ensure that the database is created in “Full Recovery” mode. If Desktop Studio is used to automatically create a database on an external SQL server, the database is created in simple mode; this means the transaction log cannot be backed-up and the database mirrored. To ensure the database is created in full recovery mode and can be mirrored, you must create the database manually then use Desktop Studio to create the necessary setup scripts which you run on the database.”

B. Hypervisor HA: This option entails deploying the SQL Server as a virtual machine and leveraging the HA features of the hypervisor, making this solution easier and less expensive to implement than SQL Mirroring since it uses existing host software and allows the use of SQL Server Express™. The caveat to this method is that the automatic failover process will most likely be slower due to the extra time it takes for a new virtual machine to start up to host the database, which could adversely affect service to users.

C. SQL Clustering: This method utilizes Microsoft SQL clustering to automatically allow one SQL Server to take over the tasks and responsibilities of a failed SQL Server. The problem with this method however, is that it is much more complex to set up as it requires “extra” moving parts and services necessary to facilitate the recognition and automatic failover of a database from a failed server to a secondary server. For example, SQL Server Enterprise™ and Windows Server 2008 or Server 2008 R2 Enterprise™ editions must be used, and Windows Failover Clustering™ must be configured, which is necessary to enable database failover between SQL Servers. Lastly, XenDesktop product documentation notes that database failover may be slower than other methods (i.e., SQL Mirroring).

UGH… sure seems more complicated and more daunting than it needs to be.

Well everyone, you can relax… implementing SQL HA to ensure the availability of the XenDesktop configuration database doesn’t have to be as difficult as the XenDesktop product documentation seems to imply, and it’s not. At least not if you use Sanbolic’s Melio Unified Storage Platform (aka Melio USP™)!

Designed to enhance the performance, scalability, manageability and availability of today’s leading enterprise applications and solutions, Melio USP provides highly scalable and highly available shared storage that allows multiple Windows Servers to share concurrent read-and-write access to a single volume on block-based storage. With a robust, flexible and scalable storage platform, applications can take advantage of the active/active disk access provided by the Melio FS™ cluster file system (the core component of Melio USP) to achieve enhanced fault tolerance via high availability.

The beauty of it all is that with Melio USP, you not only get all the benefits of shared storage that’s easy to install, use and manage, you also get AppCluster™, an advanced software component within Melio USP that provides HA for applications such as SQL Server without all the hassles, extra moving parts and costs associated with other HA options (i.e., SQL Mirroring, Hypervisor HA or SQL Clustering). AppCluster makes it extremely easy for administrators to set up highly available SQL clusters so they can focus their time and attention on managing their XenDesktop infrastructures, not their SQL implementations.

AppCluster allows administrators to create “resource groups” comprised of SQL Servers and databases, which are stored on a Melio shared volume. When a server within a resource group fails, the database(s) it was hosting automatically fails over to another server in the same resource group, minimizing or preventing disruptions to user productivity. Failover occurs very quickly because unlike SQL Clustering, which employs an active/passive disk access model, all SQL Servers participating in the Melio cluster share active/active disk access to the Melio volume containing the XenDesktop configuration database, which means there’s no time lost waiting for disk access to be passed from one server to another.

The combination of highly scalable and highly available shared storage provided by the Melio cluster file system and the automated failover capability afforded by AppCluster makes Melio USP the ideal solution for enabling SQL HA for XenDesktop 5.0.

For more information about Sanbolic’s Melio Unified Storage Platform and how it enhances Citrix XenDesktop, please visit the Solutions page of our website at