MSA Storage

Storage access in Terminal Server Cluster

Go to solution
Occasional Advisor

Storage access in Terminal Server Cluster


I have read most subjects I thought might answer my problem ... but here I am.

I want to configure two Terminal Servers (DL 380 G4) running Windows 2003 Server Enterprise ed. in a failover configuration (MSCS or NLB with Session Directory) to run applications for users and store files.
I also want the user profiles to be stored on the storage, and provide session failover for users.
The servers have access to a storage (HP StorageWorks MSA1500cs)through a fiber channel switch (HP StorageWorks SAN Switch 2/8)

Problem: Each server corrupts the file system on the storage for the other server when accessing it.

Solution 1 : Polyserve software that allows the two servers to access the storage the way I need it.
- Out of the question for the reason that the software costs MORE than the whole cluser
- I am waiting for a quotation from VERITAS ... but I'm not that optimistic.

Solution 2: Configure separate LUNs on the storage , present them each to a single server , then run applications and store information separately.
- In this way I would lose the very redundancy I want to achieve by accessing the storage through the fiber channel simultanously.

Question: Is a Cluster Server in the active/active configuration close to solving my problem ?

Hope: Being absolutely untrained regarding clustering and HP storage solutions (not aware of details regarding "multipath" , "zoning" , "masking" ...) I am counting on anything you can think of !!! You might be my last resort ...

Just wandering ... the system is certified by both HP and Microsoft for a High Availability and redundant storage solution ...
How is it possible that neither HP nor MS do provide the means to implement it in the most performant configuration ?

Thanks in advance !
Uwe Zessin
Honored Contributor

Re: Storage access in Terminal Server Cluster

An active/active MSCS configuration means that both nodes do work, but on *different* ressources - it does NOT provide shared & concurrent access to a single file system either.

'multipath' means a server as more than one data path to a storage ressource.

'zoning' is used in Fibre Channel switches to limit connectivity between nodes.

'(LUN) masking' is used to control which server has access to with LUN in the storage array - this is neccessary when you connect multiple non-clustered servers. On the MSA1500cs it is called 'Selective Storage Presentation' (SSP).

A Fibre Channel storage array serves disk blocks by serial SCSI protocol - it has no idea what a file system is.

What makes you think that access to a shared file system is 'more performant'? After all - it requires careful synchronization between the computers.
Occasional Advisor

Re: Storage access in Terminal Server Cluster

Uwe ... you really deserve your high ranking on this forum ... as I deserve my ignorance.
Thanks for the really quick answear.

I'm only thinking that a shared file system will allow for the redundancy and failover capabilities I'm trying to achieve.
Reducing single points of failure is also an issue in the company, and server level is what we consider to deserve the main focus for now.

What would be the appropriate aproach in my situation with as few additional investments as possible ?

Any configuration is welcome as long as the users can recover their sessions if a terminal client failure occurs , and the profiles and user files reside on the storage.

Thanks again!!

P.S. Heard of a rumour that W2k3 R2 provides shared access on drives ? Can't afford a testing period, though.
Pau Garcia i Quiles
Frequent Advisor

Re: Storage access in Terminal Server Cluster

I have a configuration with 3 x DL360G4p servers, one of them is the AD DC and the other two are Terminal Services nodes in HA cluster with Windows 2003 SP1.

With Microsoft Terminal Services, there's no way you users can recover their session if the active node fails. It's stated in Microsoft's documentation. As long as I know, it's not possible with Citrix either.

You cannot "share" the drive if you mean you want to be able to access a shared drive from both servers at once. That would corrupt the data. As you are getting data corruption, I guess your cluster configuration is wrong. To get it right, you just follow this white paper at Microsoft Technet:

There's a very important step in the cluster configuration: creating a file resource (can't remember the exact name now) which is the data location. That means MSCS will keep an eye on that resource and make it available only to one of the nodes of the cluster at once to avoid data corruption.

Make sure you properly set up LUN masking (SSP) and zoning. Zoning is not a must, but you'd better configure it.
Occasional Advisor

Re: Storage access in Terminal Server Cluster

The cluster is already configured following the Microsoft whitepapers.

Indeed, MSCS keeps his eye on the storage so the two servers don't access the storage simultaneously.

In the cluster configuration my data is safe and doesn't get corrupted.

Session Directory would allow for my users to keep theirs sessions in case one of the servers would fail , but that is recommended with Network Load Balancing clusters and I cannot implement a NLB cluster because the disk would no longer be protected (as it is now by MSCS) and data would becaome corrupted.

I am trying to install Session Directory with MSCS ... but I'm heaving trouble starting the Session Directory service on the Terminal Servers.
Am I hoping for something that is impossible?

My cluster is not in production yet ... and I can put it down in case some other configuration would provide what we are looking for.
Pau Garcia i Quiles
Frequent Advisor

Re: Storage access in Terminal Server Cluster

I think what you want to do makes no sense.

Say you have a load balancing cluster with 2 servers (server A and server B). This a sequence of facts:
1. A client tries to connect to the cluster over the cluster IP. He may get connected to server A or to server B, it depends entirely on the Load Balancing Cluster decision and the client will not be able to make a decision on that (never!).
2. As server B has a higher load than server A, the client gets connected to server A.
3. There's a communication problem. Say the VPN goes down, someone accidentally unplugs the Ethernet cable of the client's PC, etc. The client gets disconnected, but his session has not been closed. In fact, everything he had running is still running.
4. Of course, your client wants to reconnect to the cluster to work again. Here comes the tricky step with Session Directory. Now server A has a higher load than server B. You client tries to connect to the cluster and if you are not running Session Directory, he would connect to server B and he would start a *new* session (and he still has the session on server A running!).

Session Directory does not move the session from server A to server B. Session Directory just keeps a list of clients and the server the were connected to, so when the client disconnects and re-connects, he gets connected to the same server he was previously working on.

Now say you have a High-Availability Cluster with two nodes, server A and server B. There's only one active node at once, so your client connects to the cluster, he always gets connected to the active node. There's no way he would connected to the other node over the cluster IP unless there is a fail-over. And if there is a fail-over, Session Directory would be useless, because Session Directory does not move the session from server A to server B as I explained before.

I hope I have clarified the issue.
Occasional Advisor

Re: Storage access in Terminal Server Cluster

Thank you very much for your answear!
It cleard most of the things I was getting wrong.

What I understand is that I'm already providing HA and including Session Directory in MSCS would make no difference.
Is it recommendable to include Session Directory in a Server Cluster active/active configuration ? Or am I getting something wrong again.

And another thing that I encountered ...
Applying GPO on the Cluster IP is a good technique ?

If it is, how do I make the Cluster look like a Member Server in the AD ?

I already tried to define the Cluster Name in AD as a new computer, but it doesn't work.

Thanks again.

P.S. If this is getting away from the subject and I should move it on another forum , I would accept any recommendation.