high accuracy failure injection in parallel and distributed systems using virtualization
Emulation sits between simulation and experimentation to complete the set of tools available for software designers to evaluate their software and predict behavior under conditions usually unachievable in a laboratory experiment. It consists in running the real application in an emulated environment. Thus, it behaves more realistically than a simulation, but under a controlled and reproducible environment, more suitable for behavior analysis. In this paper, we propose an emulation platform for parallel and distributed systems where both the machines and the network are virtualized at a low level. We demonstrate that the use of virtual machines allows us to test highly accurate failure injection by "destroying" virtual machines. Failure accuracy is a criteria that demonstrates how realistic a fault is. The platform accuracy is evaluated using Pastry, a fault-tolerant distributed hash-table.
virtualization emulation large-scale applications fault injection