The idea of running more than one
virtual machine on a single host system is as old as the mainframe
technology. Mainframe systems offer the ability to share resources
among different users, whereas every user gets his own virtual machine.
Upgrading a VM is basically a matter of reconfiguring it. Moreover,
this kind of partitioning of common resources offers security
advantages since every virtual system has its own isolated memory, and
can not damage or access foreign data without permission. This aspect
is an important reason why the User Mode Linux (UML) project was
started.
UM-Linux brought to life to run multiple separate virtual machines on
the same physical host system. A virtual machine takes full advantage
of an ordinary Linux operating system. Furthermore it is possible to
install every kind of Linux compatible software, running
inter-networking services (e.g. web-servers, routers etc.), or testing
any kind of software without risks for the host system or other virtual
machines. Up to now, the available management tools were limited
command line utilities which have not been comfortable to use.
The
UMLinuxControlCenter
offers an alternative solution, because it offers a graphical
interface, which is easy and intuitive to use, without loosing the
variety of features an UM-Linux system offers. The GUI offers
basically three elements: a switch system which simulates a physical
switch or hub, a virtual machine which can be configured by the user
and the host system to connect the virtual machines to the rest of the
world. All these elements can be connected together and administrated
with UMLinuxControlCenter. This means, virtual machines can be stopped
and restarted, new configurations reloaded, systems may be monitored
and observed.
Fields of application
UMLinuxControlCenter is the ideal tool for the following applications:
- Testing network configurations with nearly no hardware
- Testing network tools such as routing protocols, vpn-solutions,
firewall configurations, ...
- Eductation of network administrators, ICT-Students, ...
- Virtual hosting
- Learning IPv6 and planning the migration from IPv4 to IPv6
- ... and much more
|
base architecture
|
This architecture contains the following layers:
GUI:
|
The Grapical User Interface is
based on the wxWidgets sample
OGLEdit.
|
Session:
|
The session layer adds a level
of indirection between the GUI and the domain layer. It implements a
command pattern for do/undo functionality.
|
XMLSubSystem:
|
The XMLSubSystem loads and
stores the configuration of the
domain-layer objects, the scripts and the macros.
|
Domain:
|
The domain layer is the core
functionality of UMLinuxControlCenter. It contains objects representing
the application domain such as UMLinuxInstance,
UMLinuxNetworkInterface,
HostSystem, HostNetworkInterface, UMLinuxSwitch, etc. These objects
configure and control the corresponding programs on the hostsystem.
|
ScriptSubSystem:
|
The ScriptSubSystem is used to
generate scripts and configuration files for virtual machines an the
hostsystem. There are scripts for setting up network interfaces,
routes, ipforwarding, iptables, etc. By using the scriptsubsystem
UMLinuxControlCenter is much more flexible and adaptable when an
external
program changes or is replaced by another one.
|
Uml_mconsole:
|
Encapsulates the uml_mconsole (a
uml-utility) in a C++ class.
The Uml_mconsole-subsystem realizes the communication between
UMLinuxControlCenter and the running uml-kernels.
|
One goal of the UMLinuxControlCenter is, to split it into two
applications. One part, called the agent is, running on the server
machine controlling the virtual machines, while the other part, called
the designer, is running on an other machine. This architecture
is
similar to the SNMP (Simple Network Management Protocol) architecture
and allows the
user to control several agents on differnt servers form one management
station. By using the wxWidgets Crossplattform-UI-Framework, it should
be possible to port the desinger to other platfoms than linux.
|
enhanced architecture
|
Current state of the
project
UMLinuxControlCenter was initiated and developed by Martin Weber and
Oliver Koller at
Zurich University of
Applied Sciences Winterthur (Switzerland).
The core functionality of UMLinuxControlCenter has been implemented
(see sceenshots below). Now the project needs more users which test the
application and send us their feedbacks. We also need more developers
to help
us port it to other distributions.
To-do-List