Software defining system devices with the 'Banana' double-split driver model
Dan Williams, Hani Jamjoom, Hakim Weatherspoon · 2014
This paper introduces a software defined device driver layer that enables new ways of wiring devices within and across cloud environments. It builds on the split driver model, which is used in paravirtualization (e.g., Xen) to multiplex hardware devices across all VMs. In our ap-proach, called the Banana Double-Split Driver Model, the back-end portion of the driver is resplit and rewired such that it can be connected to a different back-end driver on another hypervisor. Hypervisors supporting Banana cooperate with each other to (1) expose a con-sistent interface to rewire the back-end drivers, (2) al-low different types of connections (e.g., tunnels, RDMA, etc.) to coexist and be hot-swapped to optimize for place-ment, proximity, and hardware, and (3) migrate back-end connections between hypervisors to maintain con-nectivity irrespective of physical location. We have im-plemented an early prototype of Banana for network devices. We show how network devices can be split, rewired, and live migrated across cloud providers with as low as 1.4 sec of downtime, while fully maintaining the logical topology between application components. 1