Section: Maintenance Commands (8)
Updated: Nov 23 2004
Index Return to Main Contents



cman_tool - Cluster Management Tool  


cman_tool join | leave | kill | expected | votes | version | wait | status | nodes | services [options]


cman_tool is a program that manages the cluster management subsystem CMAN. cman_tool can be used to join the node to a cluster, leave the cluster, kill another cluster node or change the value of expected votes of a cluster.
Be careful that you understand the consequences of the commands issued via cman_tool as they can affect all nodes in your cluster. Most of the time the cman_tool will only be invoked from your startup and shutdown scripts.


This is the main use of cman_tool. It instructs the cluster manager to attempt to join an existing cluster or (if no existing cluster exists) then to form a new one on its own.
If no options are given to this command then it will take the cluster configuration information from CCS. However, it is possible to provide all the information on the command-line or to override CCS values by using the command line.

Tells CMAN to leave the cluster. You cannot do this if there are subsystems (eg DLM, GFS) active. You should dismount all GFS filesystems, shutdown CLVM, fenced and anything else using the cluster manager before using cman_tool leave. Look at 'cman_tool status|services' to see how many (and which) services are running.
When a node leaves the cluster, the remaining nodes recalculate quorum and this may block cluster activity if the required number of votes is not present. If this node is to be down for an extended period of time and you need to keep the cluster running, add the remove option, and the remaining nodes will recalculate quorum such that activity can continue.

Tells CMAN to kill another node in the cluster. This will cause the local node to send a "KILL" message to that node and it will shut down. Recovery will occur for the killed node as if it had failed. This is a sort of remote version of "leave force" so only use if if you really know what you are doing.

Tells CMAN a new value of expected votes and instructs it to recalculate quorum based on this value.
Use this option if your cluster has lost quorum due to nodes failing and you need to get it running again in a hurry.

Used alone this will report the major, minor, patch and config versions used by CMAN (also displayed in 'cman_tool status'). It can also be used with -r to set a new config version on all cluster members.

Waits until the node is a member of the cluster and then returns.

Displays the local view of the cluster status.

Displays the local view of the cluster nodes.

Displays the local view of the cluster services.



Normally, "cman_tool leave" will fail if the cluster is in transition (ie another node is joining or leaving the cluster). By adding the -w flag, cman_tool will wait and retry the leave operation repeatedly until it succeeds or a more serious error occurs.
-t <seconds>
If -w is also specified then -t dictates the maximum amount of time cman_tool is prepared to wait. If the operation times out then a status of 2 is returned.
Shuts down the cluster manager without first telling any of the subsystems to close down. Use this option with extreme care as it could easily cause data loss.
Tells the rest of the cluster to recalculate quorum such that activity can continue without this node.



-e <expected-votes>
The new value of expected votes to use. This will usually be enough to bring the cluster back to life. Values that would cause incorrect quorum will be rejected.



-n <nodename>
The node name of the node to be killed. This should be the unqualified node name as it appears in 'cman_tool nodes'.



-r <config_version>
The new config version.



Waits until the cluster is quorate before returning. -t <seconds> Dictates the maximum amount of time cman_tool is prepared to wait. If the operation times out then a status of 2 is returned.



Tells cman_tool to ignore CCS altogether. All of the information necessary to join the cluster must be provided on the command-line. Note that if you get this wrong, it is possible that the node will form a cluster on it's own and ignore a cluster it is supposed to be joining, so this method of invocation is not recommended.
-c <clustername>
Provides a text name for the cluster. You can have several clusters on one LAN and they are distinguished by this name. Note that the name is hashed to provide a unique number which is what actually distinguishes the cluster, so it is possible that two different names can clash. If this happens, the node will not be allowed into the existing cluster and you will have to pick another name or use different port number for cluster communication.
-p <port>
UDP port number used for cluster communication. This defaults to 6809.
-v <votes>
Number of votes this node has in the cluster. Defaults to 1.
-e <expected votes>
Number of expected votes for the whole cluster. If different nodes provide different values then the highest is used. The cluster will only operate when quorum is reached - that is more than half the available votes are available to the cluster. There is no default for this value. If you are using CCS then ccs_tool will use the total number of votes for all nodes in the configuration file.
Sets the cluster up for a special "two node only" mode. Because of the quorum requirements mentioned above, a two-node cluster cannot be valid. This option tells the cluster manager that there will only ever be two nodes in the cluster and relies on fencing to ensure cluster integrity. If you specify this you cannot add more nodes without taking down the existing cluster and reconfiguring it. Expected votes should be set to 1 for a two-node cluster.
-n <nodename>
Overrides the node name. By default the unqualified hostname is used. This option can also be used to specify which interface is used for cluster communication as cman_tool will (unless multicast is specified below) use the broadcast address associated with that hostname. If you are using IPv6 then you will have to use multicast rather than broadcast.
-N <nodeid>
Overrides the node ID for this node. Normally, nodes are assigned a node id by the cluster join mechanism. If you want to ensure that your nodes always have the same number regardless of the order in which they join the cluster then you can hard-code these IDs.
-o <nodename>
Override the name this node will have in the cluster. This will normally be the hostname or the first name specified by -n. Note how this differs from -n: -n tells cman_tool how to find the broadcast address and/or the entry in CCS. -o simply changes the name the node will have in the cluster and has no bearing on the actual name of the machine. Use this option will extreme caution. SettingnodeIDsinCCSisafarbetterwaytodothisthough. Notethatthenode'sapplicationtojointheclustermayberejectedifyou try to set the nodeid to one that has already been used, or if the node was previously a member of the cluster but with a different nodeid.
-m <multicast-address>
Specifies a multicast address to use for cluster communication. This is required for IPv6 operation. You should also specify an ethernet interface to bind to this multicast address using the -i option.
-i <interface>
Used in conjunction with -m above to specify the interface for multicast to use.
Join and wait until the node is a cluster member.
Join and wait until the cluster is quorate. If the cluster join fails and -w (or -q) is specified, then it will be retried. Note that cman_tool cannot tell whether the cluster join was rejected by another node for a good reason or that it timed out for some benign reason; so it is strongly recommended that a timeout is also given with the wait options to join. If you don't want join to retry on failure but do want to wait, use the cman_tool join command without -w followed by cman_tool wait.
-t <seconds>
If -w or -q is also specified then -t dictates the maximum amount of time cman_tool is prepared to wait. If the operation times out then a status of 2 is returned. Note that just because cman_tool has given up, does not mean that cman itself has stopped trying to join a cluster.



JOIN OPTIONS manual pages