UMLinuxControlCenter

Topics

Overview
UMLinuxControlCenter - A Graphical management-Tool for User-Mode-Linux
Fields of application
Download / Project Page
Help
The Architecture
Current state of the project
To-do-List
Screenshots

Overview

Description:
UMLinuxControlCenter lets you create virtual networks based on user-mode-linux and uml-utilities by simply drag and drop icons of virtual machines, hubs/switches, network-links and the hostsystem. UMLinuxControlCenter is written in C++ using wxWidgets and Xerces.
License: GNU General Public License (GPL), wxWindows License
Programming language:
C/C++
Libraries:
wxWidgets-UI-Framework, especially OGL (Object Graphics Library)
Xerces
C++ Standard Template Library
OS platform:
GNU/Linux for i386, user-mode-linux Kernel 2.6.7, 2.6.8, 2.6.9
(tested on SuSE 9.1 & 9.2, Fedora Core 3 & 4, Ubuntu 5.04)
external tools:
  • uml-kernel
  • uml-utilities
  • iptables
  • ifconfig
major features (implemented features):
  • create/delete virtual machines (vm = uml-kernel + root.img + swap.img)
  • configure virtual machines (hostname, memory, default gateway, DNS-Servers, ... )
  • add scripts to the virtual machines (ipforwarding, iptables, set up IPv4 and IPv6 interfaces,  set default routes, set up hostname, ...)
  • add configuration files to the virtual machines (hostname, configure DNS)
  • start and stop virtual machines
  • create/delete switches and hubs based ond uml_switch, a uml-utility
  • configure switches and hubs
  • create/delete the hostsystem
  • add scripts to the hostsystem (ip_forwarding, iptables, et up IPv4 and IPv6 interfaces, set default routes, ... )
  • create/configure/delete tun-networkinterface on the host system
  • connect virtual machines to switches/hubs
  • connect virtual machines to the hostsystem
  • connect switches/hubs to the hostsystem
  • show the state of virtual machines or hubs/switches (up / down)
  • show memory usage of a virtual machine
  • show the screen/terminal of a virtual machine or a hub/switch
  • build configuration of virtual machines / hostsytem (copies the uml kernel, the root- and swap image, and generates the configuration and script files)
  • execute virtual machine, hub/switch or hostsystem)
  • stop virtual machine or hub/switch
  • execute the whole project
  • stop the whole project

  • Support for IPv4 and IPv6 implemented.

UMLinuxControlCenter - A Graphical management-Tool for User-Mode-Linux

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:

Download / Project Page

Donwload the latest version of UMLinuxControlCenter from: http://sourceforge.net/projects/umlinuxcc

!
The root password for the uml root filesystem image is: uml

Help

For any questions about UMLinuxControlCenter use the Help Forum.

The Architecture

The following diagram shows the currently implmented architecture:


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

Screenshots

Wizzard1
create project
running project
create vm configure  networkinterface example
add configuration add script select host interface









SourceForge.net Logo