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