Project Banbury

Project Banbury aims to improve the experience of Linux users and administrators with hotpluggable storage.

Use cases

How can we make this work in Linux?

When a device is inserted, a userspace component (udev?) looks through its database of devices and decides whether it has seen this device since the last reboot. If it has, it tells the kernel that this new device is actually that old device. The kernel then reconnects the new physical device to the old block device and I/Os which were outstanding at the time of unplug are retried.

Work plan

  1. Implement a mechanism for userspace to remove a logical block device.
  2. Implement an option to not delete block devices after physical hardware is removed. This includes a new state for the block device, maybe called "removed" which indicates the hardware is not currently present.
  3. Implement a mechanism for userspace to tell the kernel that this logical block device is actually that logical block device (implicitly deleting the temporary logical block device we were using and reattaching it to the old one).
  4. Recruit someone who understands the userspace side of this to do all the hard work of determining whether two devices are the same, interacting with the desktop notifications, etc.

Refinements

Why Banbury?

It's just a place name. You may have heard of it from the song.