COROSYNC-VQSIM(8)

✨ NAME ✨

corosync-vqsim β€” bestie, it's the votequorum simulator πŸ’…


🌸 SYNOPSIS 🌸

corosync-vqsim [-c config_file] [-o output file] [-n] [-h]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so corosync-vqsim simulates the quorum functions of corosync in a single program, no cap. it can simulate multiple nodes, network splits and a basic quorum device. it's giving ✨entire cluster in one little binary✨

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). Then it hands you a command-line interface where you can add (up) or remove (down) nodes, and cause network splits and rejoins. After each event it shows the new quorum status for all nodes. literally every time. it's so satisfying to watch 🫢

Nodes in vqsim are always referred to by their nodeid (the IP address is meaningless, don't even look at it bestie) 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. obsessed 😌

⚠️ important!! 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). yes really, the pipe thing is not optional, it's the whole vibe πŸ’€

By default vqsim will wait for all nodes in all partitions to reach the same ring sequence number before returning a prompt, and there's a timeout associated with this in case of a 'node' failure. Exceeding this timeout can (optionally) quit the program signalling an error. so dramatic of it πŸ’…

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. fr fr, be careful. 😭

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. ngl it's a lil quirk but it's fine 🌈

Once you have the vqsim> prompt you can type help and get a list of sub-commands. go off, explore, it's your main character moment πŸ‘‘


πŸ’– OPTIONS πŸ’–

  • -c β€” This specifies the fully qualified path to the corosync configuration file. The default is /etc/corosync/corosync.conf. πŸŽ€
  • -o β€” Specifies the output destination. STDOUT by default. πŸ“€
  • -n β€” Don't pause after each command, come straight back to a prompt. Use with care! 😬
  • -h β€” Display a brief help message. πŸ†˜

🧚 SEE ALSO 🧚

corosync(9), corosync.conf(5),


πŸ‘‘ AUTHOR πŸ‘‘

Christine Caulfield πŸ’œ


okay that's the whole page bestie, you ate that. this was the System Manager's Manual edition, dated 2019-05-10, and it's still iconic. byeee πŸŽ€βœ¨