Windows Enterprise 2003 offer a GUI for moving resources (aka services) to free node’s inside a cluster. But this is possibile if you are logged-in by means of remote desktop, and often is desirable switch node in no working hours. An example is exchange server, if you switch nodes all clients connected reporting lost connection on tray bar, with consequence you phone ring a lot for nothing.
Microsoft help us with a command line suite of cluster manager, inside C:\Windows\System32 there a cluster.exe if you double click it will start a GUI, but if you call via MS-DOS windows you can use several CLI commands. Inside this page of Microsoft Technet you can find the original documentation of this article.
cluster MYCLUSTER group "disk group 1" /prop AntiAffinityClassNames="SEP1" cluster MYCLUSTER group "disk group 2" /prop AntiAffinityClassNames="SEP1"
We can do several grouping, also with crossing it by changin
Now we show how to move node between cluster called MYCLUSTER, and nodes is called NODE01 and NODE02. The resource we are moving are MSDTC and CLUSTERGROUP previously defined.
The command will be:
C:\WINDOWS\system32>cluster.exe /cluster:MYCLUSTER group "MSDTC" /moveto:NODE02
So in your way wille replace MYCLUSTER, MSDTC and NODE02 with your values.
Note: take a look that group (or resource) are write inside quotation marks.
Now my question is “ok, but usually a cluster haven’t only one group.. how can move multiple groups?”
Microsoft offer a way to “grouping groups” as described in this page of Technet and show in example below.
cluster MYCLUSTER group "disk group 1" /prop AntiAffinityClassNames="SEP1" cluster MYCLUSTER group "disk group 2" /prop AntiAffinityClassNames="SEP1"
We can also made severals associated groups, also crossed, simply with changing the value SEP1
Below an extract of cluster’s help:
C:\WINDOWS\system32>cluster.exe -?
The syntax of this command is:
CLUSTER /LIST[:domain-name]
CLUSTER /CHANGEPASS[WORD] /?
CLUSTER /CHANGEPASS[WORD] /HELP
CLUSTER /CLUSTER:clustername1[,clustername2[,...]]
/CHANGEPASS[WORD][:newpassword[,oldpassword]]=
[/FORCE] [/QUIET] [/SKIPDC] [/TEST] [/VERB[OSE]] [/UNATTEND[ED]] [/?] [/HELP]CLUSTER [/CLUSTER:]cluster-name
=
/CREATE [/NODE:node-name] [/VERB[OSE]] [/UNATTEND[ED]] [/MIN[IMUM]]
/USER:domain\username | username@domain [/PASS[WORD]:password]
/IPADDR[ESS]:xxx.xxx.xxx.xxx[,xxx.xxx.xxx.xxx,network-connection-name]
/ADD[NODES][:node-name[,node-name ...]] [/VERB[OSE]] [/UNATTEND[ED]]
[/MIN[IMUM]] [/PASSWORD:service-account-password]CLUSTER [[/CLUSTER:]cluster-name]
=
/CREATE [/NODE:node-name] /WIZ[ARD] [/MIN[IMUM]]
[/USER:domain\username | username@domain] [/PASS[WORD]:password]
[/IPADDR[ESS]:xxx.xxx.xxx.xxx]
/ADD[NODES][:node-name[,node-name ...]] /WIZ[ARD] [/MIN[IMUM]]
[/PASSWORD:service-account-password]
/PROP[ERTIES] []
/PRIV[PROPERTIES] []
/PROP[ERTIES][:propname[,propname ...] /USEDEFAULT]
/PRIV[PROPERTIES][:propname[,propname ...] /USEDEFAULT]
/REN[AME]:cluster-name
/QUORUM[RESOURCE][:resource-name] [/PATH:path] [/MAXLOGSIZE:max-size-kbytes]
/SETFAIL[UREACTIONS][:node-name[,node-name ...]]
/LISTNETPRI[ORITY]
/SETNETPRI[ORITY]:net[,net ...]
/REG[ADMIN]EXT:admin-extension-dll[,admin-extension-dll ...]
/UNREG[ADMIN]EXT:admin-extension-dll[,admin-extension-dll ...]
/VER[SION]
NODE [node-name] node-command
GROUP [group-name] group-command
RES[OURCE] [resource-name] resource-command
{RESOURCETYPE|RESTYPE} [resourcetype-name] resourcetype-command
NET[WORK] [network-name] network-command
NETINT[ERFACE] [interface-name] interface-command=
name=value[,value ...][:] [name=value[,value ...][:] …]=
BINARY|DWORD|STR[ING]|EXPANDSTR[ING]|MULTISTR[ING]|SECURITY|ULARGECLUSTER /?
CLUSTER /HELPNote: With the /CREATE, /ADDNODES, and /CHANGEPASSWORD options, you
will be prompted for passwords not provided on the command line
unless you also specify the /UNATTENDED option.

