Distributed systems and networking emulation with Distem

We present Distem, a software tool to build distributed virtual experimental environments. Using a homogeneous set of nodes, Distem emulates a platform composed of heterogeneous nodes (in terms of number and performance of CPU cores), connected to a virtual network described using a realistic topology model. Distem relies on LXC, a low-overhead container-based virtualization solution, to achieve scalability and enable experiments with thousands of virtual nodes. Distem provides a set of user interfaces to accommodate different needs (command-line for interactive use, Ruby and REST APIs), is freely available and well documented. We will use Distem in multiple experiments, such as evaluating how rsync and scp are performing upon high latency, measuring the impact of slower nodes on a HPC cluster or validating a simple load-balancer done with P4.