Article ID: 947266 - Last Review: November 11, 2008 - Revision: 3.0

A Windows Storage Server 2003 R2 Service P2-based cluster or a Windows Unified Data Storage Server 2003-based cluster does not fail over disk resources between nodes in a cluster that has SIS enabled

System TipThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

On This Page

Expand all | Collapse all

SYMPTOMS

Consider the following scenario:
  • You use a Windows Storage Server 2003 R2 Service Pack 2 (SP2)-based server cluster or a Windows Unified Data Storage Server 2003-based server cluster.
  • You enable the Single Instance Store (SIS) feature.
  • The cluster resource group has one or more disk resources.
In this scenario, the cluster resource group cannot fail over between the cluster nodes. The administrator must restart the cluster node where the failure occurs to allow for the failover to continue.

RESOLUTION

Important Single Instance Store (SIS) is a feature on Windows Storage Server 2003 that is an OEM only product. Please verify that your OEM version of Windows Storage Server supports the SIS feature in the scenario described in this article before you deploy SIS.

Requirements

  • You must manually restart the groveller on both the source node and the destination node after the failover of a SIS enabled volume.
  • The quorum disk must not be in the same resource group as a SIS enabled volume
  • There may be no more than six SIS enabled volumes across the cluster.

SIS Volume Cluster Setup

There are known issues with using SIS in a cluster environment. This article describes how to configure SIS volume cluster resource to enable it to fallback correctly to any node on the cluster in Windows Storage Server R2 release.

Apply the fix

  1. Copy the following script to a text editor, such as Notepad. Then, save the file as Sisclusr.vbs.
    Dim WshShell : Set WshShell = CreateObject("WScript.Shell")
    
    Dim g_service : g_service = "Groveler"
    
    Function Online()
    
        LogInformation("Entering Online")
    
        LogInformation("Starting " & g_service)
    
        RunCommand "net start " & g_service, True
    
        Online = 0
    
    End Function
    
    
    Function Offline()
    
        LogInformation("Entering Offline")
    
        LogInformation("Stopping " & g_service)
    
        RunCommand "net stop " & g_service, True
    
        If CheckServiceStopped(g_service) Then
    
            LogInformation(g_service & " stopped")
    
            Offline = 0
    
        Else
    
            LogInformation(g_service & " not stopped")
    
            Offline = 1
    
        End If
    
    End Function
    
    
    Function LooksAlive()
    
        LooksAlive = 0
    
    End Function
    
    
    Function IsAlive()
    
        IsAlive = 0
    
    End Function
    
    
    Function Open()
    
        Open = 0
    
    End Function
    
    
    Function Close()
    
        Close = 0
    
    End Function
    
    
    Function Terminate()
    
        Terminate = 0
    
    End Function
    
    
    Function CheckServiceStopped(service)
    
        Dim objWMIService
        Dim strWMIQuery
        Dim colServices
        Dim retVal
    
        retVal = False
    
        Set objWMIService = GetObject("winmgmts:" _
          & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    
        On Error Resume Next
      
        strWMIQuery = "Select * from Win32_Service where Name = '" & service & "' and State = 'Stopped'"
    
        LogInformation("Querying WMI: " & strWMIQuery)
    
        Set colServices = objWMIService.ExecQuery(strWMIQuery) 
    
        If Err.Number <> 0 Then
            LogInformation("Unable to query '" & service & "' status: " & Err.Description & "(" & Err.Number & ")") 
            retVal = False
        Else
      
            If colServices.Count = 1 Then
                retVal = True
            Else
                retVal = False
            End If
    
        End If 
    
        On Error GoTo 0
    
        CheckServiceStopped = retVal
    
    End Function
    
    
    Function RunCommand(command, wait)
    
        LogInformation("Executing: " & command)
    
        RunCommand = WshShell.Run(command, 0, wait)
    
    End Function
    
    
    Function LogInformation(message)
    
        Resource.LogInformation(message)
    
    End Function
  2. Copy the Sisclusr.vbs file to the %windir%\system32 directory on all cluster nodes.
  3. For each cluster group that has one or more cluster disk resources which are enabled with SIS, create a Generic Script cluster resource as follows:
    1. Run Cluster Administrator and open the cluster.
    2. Expand the Groups tree-node in the navigation pane of Cluster Administrator. For each cluster group that has one or more cluster disk resources,:
      1. Right-click the cluster group tree-node, point to New and then click Resource to start the wizard
      2. On the New Resource page of the wizard, in the Name box, type SIS Groveler cluster_group_name. For example if the cluster group name is CG1, the Generic Script resource name would be SIS Groveler CG1.
      3. On the Resource type list, select Generic Script.
      4. Click Next.
      5. On the Possible Owners page, add all nodes from the Available nodes list to the Possible owners list.
      6. Click Next.
      7. On the Dependencies page, add all physical disk resources which are enabled with SIS from the Available resources list to the Resource dependencies list.
      8. Click Next.
      9. On the Generic Script Parameters page, type the script file path: %windir%\system32\sisclusr.vbs
      10. Click Finish.
      11. Right-click the newly create resource and then click Bring Online to bring it online.

Procedures to use after you apply the fix

The following procedures must be used after you apply the SIS fix to clusters on a server that is running Windows Storage Server 2003 to maintain and configure SIS.

Procedure to add a physical disk resource that has SIS enabled

After the Physical Disk resource is created, follow these steps:
  1. Run Cluster Administrator, and then open the cluster.
  2. In the console tree, expand Groups, and then click the cluster group that contains the physical disk resource. If the cluster group is online, take it offline.
  3. Right-click the SIS Groveler cluster group name generic script resource in the details pane, and then click Properties.
  4. Click the Dependencies tab.
  5. Click Modify.
  6. Add the physical disk resource that has SIS enabled from the Available resources list to the Resource dependencies list.
  7. Click OK two times.
  8. If the cluster group was taken offline in step 2, bring the cluster group back online.

Procedure to remove a physical disk resource that has SIS enabled

Before removing the Physical Disk resource, follow these steps:
  1. Run Cluster Administrator, and then open the cluster.
  2. In the console tree, expand Groups, and then click the cluster group that contains the physical disk resource. If the cluster group is online, take it offline.
  3. Right-click the SIS Groveler cluster group name generic script resource in the details pane, and then click Properties.
  4. Click the Dependencies tab.
  5. Click Modify.
  6. Remove the physical disk resource that has SIS enabled from the Resource dependencies list to the Available resources list.
  7. Click OK two times. If the cluster group was taken offline in step 2, bring the cluster group back online.

Procedure to change a physical disk resource that has SIS enabled from one group to another group

  1. Before you change the group, perform "Procedure to remove a physical disk resource that has SIS enabled."
  2. Change the group.
  3. After you change the group, perform "Procedure to add a physical disk resource that has SIS enabled."

Procedure to add a new cluster node

Copy the script, Sisclusr.vbs, to the %windir%\\system32 directory on the new cluster node.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

This problem does not occur in Windows Server 2008.

For more information about the SIS feature in Windows Server 2003 R2, read the "Single Instance Storage in Microsoft Windows Storage Server 2003 R2" white paper. To obtain this white paper, visit the following Microsoft Web site:
http://download.microsoft.com/download/0/c/a/0cad7d83-2ef5-498a-af51-7911a10175b0/SIS_TWP.doc (http://download.microsoft.com/download/0/c/a/0cad7d83-2ef5-498a-af51-7911a10175b0/sis_twp.doc)

APPLIES TO
  • Microsoft Windows Storage Server 2003 R2 x32 Enterprise
  • Microsoft Windows Storage Server 2003 R2 x64 Enterprise
  • Microsoft Windows Storage Server 2003 R2 x32 Standard
  • Microsoft Windows Storage Server 2003 R2 x64 Standard
  • Microsoft Windows Unified Data Storage Server 2003 Enterprise Edition x32
  • Microsoft Windows Unified Data Storage Server 2003 Enterprise Edition x64
  • Microsoft Windows Unified Data Storage Server 2003 Standard Edition x32
  • Microsoft Windows Unified Data Storage Server 2003 Standard Edition x64
Keywords: 
kbexpertiseadvanced kbtshoot kbprb KB947266