Site icon Tosolini.info

Muovere i servizi di Windows Cluster via command line

Nell’amministrazione di un cluster sotto ambiente Windows Server Enterprise, può capitare che a seguito dell’installazione di una patch sia necessario riavviare la macchina. Il movimento dei gruppi (leggi come servizi erogati) da un nodo all’altro significa comunque un disservizio anche se molto limitato nel tempo (solitamente qualche secondo).
Ad esempio, spostare un gruppo che contiene il servizio di posta Microsoft Exchange, comporterà per parecchi client l’avviso sul desktop di perdita e ripristino della connessione. Decisamente seccante se non volete ricevere chiamate d’assistenza totalmetne inutili.

In questo caso si può “spostare” nel tempo il momento in cui potremo cambiare nodo, ad esempio dopo l’orario di lavoro, anche se noi non siamo fisicamente presenti. Per fare questo ci viene in aiuto la command-line, che potremo schedulare comodamente con lo scheduler di windows.

Sotto la directory C:\Windows\System32 è presente il file cluster.exe che di fatto permette di effettuare le operazioni sul cluster non solo tramite la GUI ma anche via command-line.

Potrete trovare documentazione aggiuntiva presso la Technet Microsoft a questa pagina. Oppure un sunto dell’help alla fine di questo articolo.

Procediamo a vedere come si muove un gruppo di un cluster. Poniamo che il cluster si chiami MYCLUSTER, e i nodi fisici si chiamino NODE1 e NODE2. Per il gruppo solitamente troviamo MSDTC e ClusterGroup.

Il comando che daremo sarà:
C:\WINDOWS\system32>cluster.exe /cluster:MYCLUSTER group “MSDTC” /moveto:NODE02

Quindi ricapitolando, basterà che modifichiate MYCLUSTER, NODE02 e MSDTC con le nomenclature che avete scelto. Notare che il gruppo va racchiuso tra virgolette, questo perchè i nodi talvolta sono insiemi di parole, tipo “Cluster Group”.

Sicuramente la successiva domanda sarà, già ma un cluster difficilmente è composto da un solo gruppo, visto che è buona norma usare appunto un gruppo per il cluster, uno per l’MSDTC e uno per il servizio erogato.
In questo caso è possibile “raggruppare” i gruppi, come descritto in questa pagina del technet, con questo comando:
cluster MYCLUSTER group “disk group 1″ /prop AntiAffinityClassNames=”SEP1”
cluster MYCLUSTER group “disk group 2″ /prop AntiAffinityClassNames=”SEP1”

Possiamo anche fare più associazioni, anche incrociate, modificando il valore “SEP1”

Un estratto dell’help di cluster.exe

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|ULARGE

CLUSTER /?
CLUSTER /HELP

Note: 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.

Exit mobile version