corosync-vqsim [-c config_file] [-o output file] [-n] [-h]
corosync-vqsim simulates the quorum functions of corosync in a single program. it can simulate multiple nodes, network splits and a basic quorum device.
By default vqsim will build a virtual cluster of all the nodes in the corosync.conf file, each 'node' running in a forked subprocess (and thus asynchronously). It then provides a command-line interface to add (up) or remove (down) nodes, and cause network splits and rejoins. After each event it shows the new quorum status for all nodes.
Nodes in vqsim are always referred to by their nodeid (the IP address is meaningless) and optionally by a 'partition' which precedes the nodeid with a colon. By default all nodes are in partition 0. Nodes can be moved between partitions using the split and join commands. Multiple nodes can be split and joined at the same time.
To script vqsim you must send input to it via a pipe rather than just redirecting STDIN. This is because it runs asynchronously to enable the virtual 'nodes' to report status when needed. (eg if you kill a subprocess using the 'kill(1)' command it gets removed from the cluster).
By default vqsim will wait for all nodes in all partitions to reach the same ring sequence number before returning a prompt, there is a timeout associated with this in case of a 'node' failure and exceeding this timeout can (optionally) quit the program signalling an error.
You can disable waiting using the 'sync off' command or the -n command-line option. This can easily cause unexpected behaviour so use it with care.
The number of votes per node is read from corosync.conf. New nodes added using the 'up' command will copy their number of votes from the first node in corosync.conf. This may not be what you expect and I might fix it in future. As most clusters have only 1 vote per node (and this is strongly recommended) then this should rarely be a problem.
Once you have the 'vqsim> ' prompt you can type 'help' and get a list of sub-commands.
This specifies the fully qualified path to the corosync configuration file.
The default is /etc/corosync/corosync.conf.
Specifies the output destination. STDOUT by default.
Don't pause after each command, come straight back to a prompt. Use with care!
Display a brief help message