-mclu (mini cluster) is a virtualization cluster manager.
+Probably the simplest, smallest possible implementation of a cloud.
-The key features:
-
- - Entirely command line driven.
-
- - No required dependencies except libvirt and ssh.
-
- - Only designed for tiny clusters (up to around 10 hosts).
-
- - Nothing to install on the nodes except libvirtd and sshd.
-
- - Single, simple configuration file.
-
-Example commands
-----------------------------------------------------------------------
-
- mclu status Display status of the cluster
- mclu list List all virtual machines on the cluster
- mclu wake ham0 Wake up node 'ham0' in the cluster
- mclu shutdown ham0 Shut down node 'ham0' in the cluster
- mclu start ham0:vm Start vm on node 'ham0'
- mclu stop ham0:* Stop all VMs on node 'ham0'
- mclu migrate *:* ham2: Live migrate all VMs to 'ham2'
- mclu build ham3:vm fedora-20 Build and run a new Fedora 20 VM on node 'ham3'
- mclu console ham3:fedora-20 Show me the serial console of a VM
- mclu viewer ham3:fedora-20 Show me the graphical console of a VM
- mclu info Print general configuration information
- mclu --help Print help on all commands
-
-Configuration notes
-----------------------------------------------------------------------
-
-mclu is based around the idea that you have a small collection of
-fairly similar "nodes". Ideally they would be identical nodes, if you
-want live migration to work seamlessly, but they don't have to be.
-
-Here is a picture of the cluster that I run mclu on:
-http://rwmj.wordpress.com/2014/04/28/caseless-virtualization-cluster-part-5/#content
-
-The nodes can be up or down. mclu deals transparently with nodes
-being switched off. If you configure wake-on-LAN (usually a BIOS
-setting) then mclu will be able to wake up nodes.
-
-There is also one "control" node, which could be your laptop or could
-be one of the cluster nodes. This is where you run the 'mclu'
-command, and also where the single configuration file is located
-(mclu.conf, usually located in /etc/mclu). The guest libvirt XML
-files are also stored on the control node (usually /etc/mclu/xmls).
-
-Each node must be accessible from the control node over ssh. Each
-node must be running the libvirt daemon (libvirtd).
-
-mclu uses a mix of ssh commands and remote libvirt to manage the
-nodes. You should configure ssh so it can access the nodes without
-needing passwords (eg. using ssh-agent). If you use the default
-libvirt URI (see config file) then you also need to set up
-passwordless root ssh access to the nodes; there are other ways to
-configure this, eg. opening the libvirtd port on each node, but they
-are probably not as secure.
-
-Each node, including the control node, must have access to shared
-storage where the guest disk images are stored. The easiest way to do
-this is to export /var/lib/libvirt/images from one machine and
-NFS-mount it on all the nodes (and also to have a nice fast network).
-Cluster filesystems are another possibility. mclu does NOT support
-non-shared storage nor storage migration.
-
-Guests run on a single node at a time. You can list/start/stop/
-migrate them using mclu. The requirement for a guest to be running on
-a single node may be enforced if you run libvirt sanlock or virtlockd.
-This requires further configuration, see:
-http://libvirt.org/locking.html
-https://rwmj.wordpress.com/2014/05/08/setting-up-virtlockd-on-nfs/#content
-
-If sanlock/virtlockd is not running then mclu will try its best not to
-have the guest running in two places at once (if it happens, this will
-cause permanent disk corruption in the guest).
-
-For guest live migration to work transparently, you will probably want
-to configure libvirt bridged networking and open firewall ports
-49152-49215 on every node.
-
-Bridged networking means that each guest appears as a local machine on
-your network, and if it migrates then network connections will not be
-interrupted. See:
-http://wiki.libvirt.org/page/Networking#Bridged_networking_.28aka_.22shared_physical_device.22.29
-
-The firewall ports have to be opened because libvirt cannot (yet?) do
-fully managed migration over two SSH connections (even though the
-documentation says it can). Hopefully they will fix this soon.
-
-Dependencies
-----------------------------------------------------------------------
-
-To get a full list of the required and optional dependencies, look at:
-
- - configure.ac
- - mclu.spec.in
-
-Building it
-----------------------------------------------------------------------
-
-If building straight from git, then do:
-
- autoreconf -i
-
-To build:
-
- ./configure --prefix /usr --sysconfdir /etc
- make
-
-To run without installing:
-
- - Edit the configuration file (mclu.conf).
-
- - Run commands such as:
-
- ./run status
- ./run list
-
-To install:
-
- - sudo make install
-
- - Edit the configuration file (/etc/mclu/mclu.conf).
-
- - Run commands such as:
-
- mclu status
- mclu list
-
-Developer information
-----------------------------------------------------------------------
-
-The license is GPLv2+.
-
-The git repo is:
-
- http://git.annexia.org/?p=mclu.git;a=summary
-
-There is no mclu mailing list. Send patches to the virt-tools mailing list:
-
- http://www.redhat.com/mailman/listinfo/virt-tools-list
+See mclu.pod for all documentation.