Citrix Netscaler Datastream… first experience!

 Citrix Datastream is a new Citrix technology to obtain advatanges about MySQL and MSSQL, it is used by the best (for me) Citrix appliance, Netscaler!

Rif: http://www.citrix.com/English/NE/news/news.asp?newsID=2309691

Some docs are available at Citrix site: http://support.citrix.com/proddocs/topic/netscaler/ns-dbproxy-wrapper-con.html, but you can also see some info at CitrixTV, they are very interesting: http://www.citrix.com/tv/#search/netscaler

Docs could be better, more complete and seems based only on MySQL; it’s too early also for forum and users, very very little I have found about Datastream.

 So, I tried to test Datastream in a test enviroment, with two MSSQL with database servers.

Goal was to verify how Citrix Datastream works and what are the benefits, combined also with a XenApp farm and pubblished applications.

Some steps we did for this:

First of all, we had to understand what MSSQL database scenario was useful for us: replica, mirror, cluster… In eDocs Citrix always is written about two dbs to read from and two db to write from, balanced and with content switching to redirect read or write to the correct group of servers.

We had only two db servers, in our scenario they were read and also write!

 Then the problem was to understand how MSSQL works to write data in db. Using MSSQL in clusterd mode was not useful for us, it’s not our dedicated scenario; MSSQL in mirror mode could have been useful, but it works in active-passive, so it’s very distance from the scenario presented in eDocs (with two write dbs balanced, etc); MSSQL in replica mode seemed very near at our goal, but, reading from web, could have taken to conflict problems. To resolve this problem we decided not to balance 50-50 the servers, but to define (load balacing on Netscaler) balancing to a server with the other in backup mode. So we have redundancy and monitor would correct some crash from the online db.

Then we had analyzed how read requests works with MSSQL, also here replica was the best solution: we can read from the first db or the second, they are replicated in synchronous mode, we get the sames and up to date data, no problem with conflicts.

NetScaler configuration and steps:

  • configure two NetScalers in HA, better! So configure also MIP, ntp, license, and so on

  • then configure in “Load Balancing” menu ip and name of db servers, then monitor (preferibly MSSQL-ECV);

  • in virtual server, as said, we configure a vserver, in not addressable-mode, to balance 50-50 on two db servers;

  • and also a vserver, always in not addressable-mode, for db dedicated for writing and a sql-write only for backup if the first fails;

  • Now we configure content switch, to distinguish between read (MSSQL “select”) and all SQL other commands

     

That’s all :-)

Try some test, and also you can see some report, to clarify how application works, so how much is the rate for read and write.

Some other references:

 Mirror mirror on the wall who’s the best SQL Server of all ?

http://blogs.citrix.com/2011/07/24/mirror-mirror-on-the-wall-whos-the-best-sql-server-of-all/

Mega World News Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google Yahoo Buzz StumbleUpon Weekend Joy