Tag Archives: Windows

VM Windows Cluster Volumes Offline in ESX

Windows Clustering on physical hardware is a pain at the best of times.  Just getting it to work can sometimes be a little try and effort… with a whole lot of luck.  Getting clustering to work in VMware is just cruel.

So when tasked to create a VM of a physical Windows Cluster for a test environment, boy was I excited! {Sarcasm sign}.

Actually creating the VM within ESX wasn’t that difficult.  Using Converter I created a VM of the OS.  Then using our DELL EqualLogic SAN I made clone copies of the cluster volumes.  I presented those volumes with the newly created VM as RDMs.  The process seemed to work really well until.  The OS booted up.  I could see all my presented volumes.  Issues began when I tried to start the Clustering Service and take it out of manual mode.  Out of the 6 volumes I had only one would ever become Online while all the others would (after some time) fail.

I spent days working through the issue (I’m pretty sure this is why I’m balding).  Articles seemed to lead me to DISKPART and trying to change the SAN Online Policy, manually online the disk, changing the READONLY attribute.  None of these seemed to work.  I’m assuming because there was an attribute that said the disk was Clustered and would prevent me making any changes.  Still, I thought I was on the wrong ‘path’ and began looking into a lower level issue at the ESX level.

The crux of my issue turned out to be a iSCSI multipathing problem.  DELL EqualLogic SANs run in an Active / Active pathing method where I/O is sent over all paths.  DELL has a third party Storage API plugin for ESXi that change the default behaviour of how mutlipathing works.  This is normally a good thing but for Windows Clustering in ESX… this is bad.

The solution is fairly simple to resolve.  The steps below is a rough outline of how to identify and change the multipathing policy.

Using vSphere vCenter, the changes are made within the Storage Adaptor.  In this case it’s the iSCSI Software Adaptor under the Configuration tab.

In the bottom pane select the paths view.  Expand the Target column and identify one of the cluster volumes with issues.  In this example I have a Dead path due to a recently removed SAN volume which is safe to ignore.  The one below is of interest as it’s one of the clustered volumes.  Remember the Runtime Name in the left column.

Change to the Devices view and locate the Runtime Name.  Right click on this device and select Manage Paths.  In this example DELL_PSP_EQL_ROUTED was selected as default.  Changing this to Most Recently Used (VMware) sends I/O only ever down one path.  The change is immediate.  As my volumes are offline I can safely make the changes.  On a working production volume I wouldn’t be making path selection changes during business hours.

Back over on the Windows Cluster VM I can now restarted the Clustering Service and have it correctly Online all the volumes.

MSCS is quite in depth and not for the faint hearted or something configured before you end home for the night.  Virtualising MSCS requires additional planning and thought in addition to regular planning.

Appendix

VMware -- Setup for Failover Clustering and Microsoft Cluster Service

Redirecting name resolution of a single host for an external DNS zone

Redirecting, changing, forwarding, adding… all valid ways of trying to achieve the same thing.  You need to create an A host record for an external DNS zone without becoming  authoritative for the whole zone.

A perfect scenario is you have a limited VPN connection between yourself and a partner company.  You need to access their Intranet server.  The partner company only publishes the Intranet address (http://intranet.company.com) to their Internal DNS server and not to the Internet.

One of the most obvious things you might try and do is create a new zone within DNS called company.com.  Then to create an A host record called intranet.  This will work, of course, but with a nasty side effect.  It will make you the authoritative name server for the zone.  Any other records that this zone has published on the internet won’t work.  For example if you tried http://www.company.com it wouldn’t resolve to the partner company’s website.  Sure, you could create one to one mappings of each A host record the partner company uses, assuming you know what they are, which you probably don’t.

A more appropriate way is to still create a zone but include the host within the full zone name.  In our above scenario the zone company.com now becomes intranet.company.com.  We then create an A host record with a blank name that points to the Intranet’s IP.  In essence we are stay we are the authoritative name server but only for this one specific host.

Below I run through the basic steps to create a zone assume some level of knowledge of zone creation.

Step 1

Within DNS create a New Zone

Step 2.

Proceed through the wizard till you get to Zone Name.  Type the full DNS name of the record you want to create.  In this example we are creating intranet.company.com

Step 3.

Continue through the wizard and complete the creatation of the zone.  Select the zone and select New Host (A or AAAA).  Leave the Name blank and enter in the IP address of the host you wanting to create / redirect and Add Host.  In this case we are using a private IP of 10.10.10.1.

The end result is a zone that looks similar to below within DNS (click for enlargment).  intranet.company.com will now resolve to 10.10.10.1 while all other published records for company.com will continue to correctly resolve to there respective external addresses.