umvs is a utility, written in C++ and the Bash scripting
language, that is used to administrate user-mode
Linux instances. The main goal of the application is to simplify
the configuration and administration of UMLs. Furthemore umvs
make use of a templating system, making it easy to have different
umvs will set up the network using the configured devices and,
depending on the configuration, will use uml_switch and/or bridge-utils
to configure the network.
Adding a UML
Adding a new UML is very simple, just execute
umvs -a [ID]', and thats
it. umvs genrates a MAC address from the UML id and makes use of
dhcpd to assign the next available IP address to the newly added UML and
automatically updates dhcpd.conf accordingly.(Optionally the UML can also
be added by editing the umvs_conf.xml file).
umvs uses XML as the format for it's configuration files, simply
because it is a well organized, standardized, simple to read format,
supported by numerous Open Source libraries.
Depending on your configuration, umvs will automatically create
the necessary tap device before the UML is started, and will also
bring the tap device down when the UML is stopped or killed. If the
UML is halted/killed by any other means then through umvs, the tap
device will not be removed, but the next time umvs is run, all non used
tap devices will be cleaned up/removed(belonging to configured UMLs).
There is no reason for having empty tap devices lying around.
umvs parse the IP range specified in the dhcpd.conf file to determine
the numbers of IP address that has been allocated for dynamic
IP addresses. These addresses will be discarded, they will not be
used to assign static IP addresses to the UML hosts, but if the
range does not contain a high value(refer to the dhcpd.conf manual
page) then this will be ignored and all the addresses will be used.
umvs will be released under the GPL license.
Please refer to the
Options sections for more
detailed descriptions of umvs's features and capabilities.
User-mode Linux is a patch for the Linux kernel that gives it
the ability to be compiled as an executable binary and run as
a process on a Linux host machine, in other words, a virtual
Linux instance inside of Linux. The user-mode Linux instance
can also be assigned vitual resources, like hardware devices,
etc. Through this patch one can for example create a complete
virtual network on a single computer.
The application is still in its' testing phase and will be released when I am finished sorting out the todos and last bugs.