On lunedì 27 agosto 2007, Fermín Galán Márquez wrote:
> Dear Paolo,

> First of all, thank you very much for your information regarding the
> status of bb/bs patches and mconsole exec functionality. That
> information will be very useful for us in the generation of new UML
> kernels for the VNUML Project!

>  > I remember you around the mailing lists, but I did not know you
>  > developed VNUML - I read about it in a Gentoo howto (when I used
>  > Gentoo, long time ago).
>
> The basic idea of VNUML is that the user specifies what network topology
> he wants in a simple XML file, and then runs a Perl program (the VNUML
> parser) that reads that specification and bring it to live in the
> physical host. In these XML files, each UML vm is defined by a <vm> tag,
> like in the following example fragment:
>
> <vm name="uml2">
> <filesystem
> type="cow">/usr/share/vnuml/filesystems/root_fs_tutorial</filesystem>
>      <kernel>/usr/share/vnuml/kernels/linux</kernel>
>      <if id="1" net="Net0">
>        <ipv4>10.0.0.2</ipv4>
>      </if>
>      <route type="ipv4" gw="10.0.0.3">default</route>
> </vm>
>
> So, the definition of virtual machine scenarios is highly simplified for
> final users (e.g., they don't have to know the vmlinux binary complex
> switches and arguments or filesystem tuning, the VNUML parser will deal
> with that). Without VNUML, we found that the definition of complex
> topologies (i.e., a lot of UML vms with arbitrary connections between
> them) launching UML and uml_switches "by hand" was very complex.
>
> This is a very brief and basic introduction to VNUML, but you will find
> a lot of information in the project website
> (http://www.dit.upm.es/vnuml). Although I understand that you maybe are
> very busy :), you could have a look to the Tutorial
> (http://www.dit.upm.es/vnumlwiki/index.php/Tutorial) to get a "feeling"
> of what VNUML can offer to users trying to do complicated things in
> UML-based networking. In addition, the Examples section
> (http://www.dit.upm.es/vnumlwiki/index.php/Allexamples) can show you
> what kind of networking scenarios can be build with the tool.
>
>  > And I was also curious whether you had better
>  > startup tools than mainstream (running directly the vmlinux binary is
>  > uncomfortable, as is resizing an UBD image by hand, while for instance
>  > Xen has various useful management tools).
>
> I'd like to know what you refer by "startup tools in the *mainstream*"
> (maybe a name or link could clarify) because of, although I know several
> tools for UML management (like the ones in
> http://uml.jfdi.org/uml/Wiki.jsp?page=Tools) I didn't know that any of
> them belongs to the UML mainstream. As far as I know, the UML project is
> very focused on the UML kernel issues but not in the "external"
> management of vms built with those kernels.

Indeed, there are no tools - I should have said there is no standard 
management tool bundled into uml-utils, while there should be one.

I've also thought to NetKit, an Italian project (from other people, I'm not 
involved with it) which has similar aims as your project.

In both cases, I haven't had the time to do anything else than give a 
suggestion to other developers.

> Regarding the specific issues you mention:
>
> - "running directly the vmlinux binary is uncomfortable". VNUML solves
> this problems using XML (which I think is much more comfortable for
> users, due to its simple, structured and descriptive nature).
>
> - "resizing an UBD image". It is not part of VNUML operation, but we
> have developed tools and procedures to do so:
> http://www.dit.upm.es/vnumlwiki/index.php/Resize-rootfs.
>
> - "Xen has various useful management tools". Tools like the xm command
> make Xen virtual machine (actually domains, in Xen terms) management
> quite easy. In some sense, VNUML could be seen as a similar management
> tool, although the approach is quite different, because of the "unit of
> management" for (the current) VNUML is the network scenario as a whole
> (i.e., all the vms and the virtual network they conform), while with xm
> the unit of management are individual virtual machines. However, we are
> considering to evolve the VNUML approach in order to include a finer
> per-vm management, much like xm does.

That would be very good, and a big step in the direction I mean.
Personally, I've evolved a lot an old script packaged with some tool for UML 
root-fs creation, maybe UmlBuilder - I've even polished it a bit to 
eventually publish it.

I'm attaching it to this mail with a sample commented configuration.

I also had started writing a tool to manage automatically creation and resize 
of UBD/COW files or LVM/DM logical volumes, over LVM or over physical 
partitions (including using the DM snapshot feature in place of COW files). 
But time finished and the project became unmanageable (I used Perl and the 
more the code grew the more I couldn't stand its messiness (even if it was 
just 300 lines long).

>  > Can you help us about this?
>
> I'd be very pleased to help you, in the extends of my availability
> (unfortunately, not as much a I like :) and skills (although I'm the
> VNUML main developers, much of the UML technology stills being a mystery
> to me, specially the pieces that lay in the kernel space). Are you
> thinking in a particular idea/plan/issue? Maybe having a look to VNUML
> as I suggest above may help to get an idea of what VNUML strong points
> could be interesting for you. Of course, don't hesitate to ask any
> question if you need to know some specific detail.

> Best regards,


-- 
"Doh!" (cit.), I've made another mistake!
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729
http://www.user-mode-linux.org/~blaisorblade
#Native 64-bit image.
unset emul
## UML configuration settings
## This must be a well-formed bash script. So
##  a = b 
##is invalid, while
##  a=b
##is valid.
##
## Commented settings are mostly the default ones.
#
#Network {{{
## netmode= suidtap | pretap | daemon
#
#netmode=suidtap

#
## If using uml_switch, i.e. netmode=daemon, you can specify the socket
## location. Otherwise, the below default is used.
#
#socket=/tmp/uml.ctl
#
# On Debian, you must specify a different location to be specified, when using
# the uml_switch binary shipped with Debian. If you forget this, network will
# still work with Debian UML binaries, but not with anything else.
#
#socket=/var/run/uml-utilities/uml_switch.ctl

#
## host interface to determine tap endpoint from. We prefer to get the host IP
## from /etc/hosts on the host, by searching hostname.
#
#hostiface="eth0"

## Additional virtual Ethernet interfaces to configure. Default none.
#extranet=""
#
#The below example is for pcap networking, i.e. for sniffing host traffic from
#inside UML.
#However, you'd better hotplug such an interface in, probably.
#
#extranet="eth1=pcap,eth0,tcp,promisc"

## If you want to use kernel level configuration, i.e. ip=$ip, set the following
## to yes. Note that you need to enable CONFIG_IP_PNP in the guest kernel to
## make this work, and probably you'll get MAC conflicts this way, so you'll
## need to manually specify a MAC address.
#
#kernel_ip_config=no

#}}} Network

# the file being used for the root filesystem
#rootfs="$name.rootfs"
rootfs="Root_images/$name.rootfs"

# the file being used for the swap space
#swapFile="$name.swapfs"
swapFile="Swap/$name.swapfs"

## Additional UBD disks to configure. Default none.
#extrafs=""
extrafs="ubd1=Root_images/UmlUbdSpace.fs"

# Whether to remove the swap cow file. By default yes.
#clean_swap=yes

#useCow = yes | dm | no
#default:
#useCow=no
useCow=yes
#if useCow = dm, then /dev/mapper/${dm_prefix}${rootfs}.cow is the name used.

#Prefix for DM volume name, to prepend to instance name.
#Mostly in case the snapshot is created using LVM rather than raw DM
#dm_prefix=usbdisk-

## Memory size.
memsize="32m"
#memsize="128m"
TMP=/tmp

#Custom screen options. Default none.
screenOpts="-h 500"

#Save a copy of UML output to a file? Default no.
#doLog=no
#doLog=yes

#Where to save this log
#logFile="uml-$name-log"
logFile="traces/uml-$name-log"
# any extra arguments you always want supplied
#sound="dsp=/dev/dsp mixer=/dev/mixer"
sound=""

#args="$sound con=xterm con0=fd:3 xterm=konsole 3>uml-$name-log"
args="$sound con=xterm con0=fd:0,fd:1 xterm=$(which konsole)"

#args="$sound con0=fd:0,fd:1 con=xterm xterm=konsole

# If running on a x86-64 distribution, you may need to use the
# compatibility environment provided by the distro, which name may vary
# depending on which distro you use.
# Examples are linux32 on SuSE and Gentoo, setarch i386 or simply i386 on
# Fedora.
# 
# Note that the script will clear this if it detects being in a 32-bit
# environment (detection done through uname).
# 
# This was used under Fedora Core on x86-64.
#emul=i386
#emul=linux32

#emul="linux32 --3gb"
#emul="linux32"
#
# vim: set fdm=marker:

Attachment: uml-control
Description: application/shellscript

Attachment: signature.asc
Description: This is a digitally signed message part.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to