Hello.
I'm wondering if a scenario which I'm tasked to setup would be feasible to
create with libvirt.
The scenario is; we want to have one computer running ns-3[1] which will
simulate a MANET[2] this computer will be connected to a second
computer(how is not quite clear to me yet) this second computer will be
running several Xen or LXC domains where each domain is connected to a node
in the ns-3 simulation. Inside each domain we will run an program which
will use service-discovery to interact with all the other domains which
from the point of view of a specific domain will look like wireless nodes
in a network(accomplished with the ns-3 simulation, connecting the ns-3
nodes to taps[3] outside the simulation and then connecting these taps to
the remote computer running libvirt and Xen or LXC). What I'm wondering is
if the libvirt side of this is feasible, namely creating several domains
remotely, on one or hopefully more computers, having the domains on the
same computer share a storage area where we can place shared programs and
where programs running inside the domains can log output to. Then after the
program is done retrieve these output logs and shutdown all of the domains.
When it comes to Xen, we will most likely crate a snapshot of a running
Linux distribution that we can quickly start so we don't need to do a full
boot process every time.
Below is a very simple illustration of what we want to accomplish. Each Xen
domain is connected to a specific tap device in the ns-3 server.
ns-3 server libvirt server
+----------------------+
+-----------------------------+
| | | +-----+
+------+ |
| +-------------+ | | |Xen1| ...
|XenX| |
| | ns-3 | | | +-----+
+------+ |
| +-------------+ |
| |
| tap-1 ... tap-X |
| |
+----------------------+
+-----------------------------+
| |
| |
------------------------------------------------------------------------------------
LAN
Is this possible to create with the help of libvirt?
Ps.
My reasoning to want to do this with libvirt is that we get support for
both Xen, QEMU/KVM and LXC and libvirt has, from my first impressions, good
support for Python which means quicker prototyping and better looking code.
Best regards
Jørgen Nordmoen
[1]
http://www.nsnam.org
[2]
https://en.wikipedia.org/wiki/MANET
[3]
https://en.wikipedia.org/wiki/TUN/TAP