Module 32: Using meshage

Introduction

minimega is designed to scale by running instances on individual nodes that communicate over a message passing protocol, meshage. This protocol can be used to configure experiments in minimega.

meshage Commands

Here are a list of the mesh commands available. Help will give you more information on each of those.

mesh degree      :       view or set the current degree for this mesh node mesh dial        :       attempt to connect this node to another node mesh dot         :       output a graphviz formatted dot file mesh hangup      :       disconnect from a client mesh list        :       display the mesh adjacency list mesh send        :       send a command to one or more connected clients mesh status      :       display a short status report of the mesh mesh timeout     :       view or set the mesh timeout

meshage commands consist of a normal command prefixed by a meshage operator. For example, to send the minimega command host name to node m2 from node m1:

m1# minimega -attach $ mesh send m2 host name m2: m2

Any response or error from m2 will be printed.

The mesh send prefix supports grouping just like other minimega commands

$ mesh send m[2-5] host name

However the mesh send all command will issue the command on all nodes, but itself

m1# minimega -attach $ mesh send all host name m2: m2 m3: m3 m4: m4 m5: m5

Example

m1# cp tinycore.iso /tmp/minimega/files/ m1# minimega -attach $ mesh send all vm kill all $ mesh send all vm flush $ mesh send all clear vm config $ mesh send all vm config cdrom file:tinycore.iso $ mesh send all vm config memory 128 $ mesh send all vm launch kvm lin[1-3] $ mesh send all vm start all
$ mesh send all .columns name minimega:/tmp/minimega/minimega$ mesh send all .columns name vm info host | name m2   | lin1 m2   | lin2 m2   | lin3 m3   | lin1 m3   | lin2 m3   | lin3 m4   | lin1 m4   | lin2 m4   | lin3 m5   | lin1 m5   | lin2 m5   | lin3

Important Notes

miniccc is distributed across the mesh.

miniplumber is distributed across the mesh.

VLANs are shared amongst different nodes regardless of mesh status.

dnsmasq services are shared amongst different nodes regardless of mesh status.

Only one instance of miniweb is required to be running to access VMs on a mesh, typically off the head node.

VNC Recording is only possible from nodes running miniweb and from users connecting to that miniweb.

Authors

The minimega authors

30 May 2017