After setting up my virtualization cluster I was disappointed by the available cluster management tools. You can either “go large” (Openstack) with all the associated trauma of setting that up, or go with various GUIs. Or you can run ssh & virsh commands, which gets tedious quickly.
Therefore I wrote some simple scripts to help perform common cluster operations on small clusters (up to about 10 nodes). It’s only 1000 lines of code, and the advantage is you only need sshd and libvirtd on each node, which you almost certainly have already.
Get cluster status:
$ mclu status ham0 (ham0.home.annexia.org) down ham1 (ham1.home.annexia.org) down ham2 (ham2.home.annexia.org) down ham3 (ham3.home.annexia.org) down $ mclu wake --all $ mclu status ham0 (ham0.home.annexia.org) up ssh: OK libvirt: OK ham1 (ham1.home.annexia.org) up ssh: OK libvirt: OK ham2 (ham2.home.annexia.org) up ssh: OK libvirt: OK ham3 (ham3.home.annexia.org) up ssh: OK libvirt: OK
Build a new VM (using virt-builder):
$ mclu build --size=20G -- \ ham0:tmp-f20-1 fedora-20 \ --root-password password:123456
List running VMs, live-migrate the new one around:
Note that wildcards can be used when starting, stopping and migrating VMs:
$ mclu list ham0:tmp-f20-1 running $ mclu migrate \* ham2: $ mclu list ham2:tmp-f20-1 running $ mclu stop ham2:* $ mclu list tmp-f20-1 inactive
Open a console
$ mclu start ham3:tmp-f20-1 $ mclu console tmp-f20-1 Connected to domain tmp-f20-1 Escape character is ^] ^] $ mclu viewer tmp-f20-1 (graphical window opens)