utsaslab / crashmonkey

CrashMonkey: tools for testing file-system reliability (OSDI 18)
Apache License 2.0
193 stars 31 forks source link

Make multiple instances of CrashMonkey run in a single machine #120

Open vijay03 opened 6 years ago

vijay03 commented 6 years ago

Currently, for each VM, only one Crashmonkey instance is running. This wastes a lot of computational power. It would much more efficient to run X instances of Crashmonkey if there are X cores on the machine.

This would require running X wrapper devices per virtual machine. Not sure what kernel problems we will run into when doing this.

ashmrtn commented 6 years ago

You would have to make a couple of changes to the current system to get this working. First, you'd have to go through and remove the hard-coding of the disk to use as the wrapper device and the snapshot device(s).

The more difficult problem would be going through and making sure that each instance of CM used a different set of snapshot devices. Right now, we don't know how many checkpoints a test has, but we assume it is less than 20 (I think), and just mount that many snapshot devices. If you wanted to change CM to run multiple instances on a single machine, you may want to change it so that you can pass in a range of devices for the snapshot disks and make sure you pass in a unique wrapper device.

Finally, the current version of CM assumes that it has complete control over the kernel modules. In this case I can think of 2 options: 1) build something on top of CM that coordinates the kernel modules across all CM instances running, or 2) modify the kernel modules to dynamically add nodes after they are inserted (just like brd can do now).