The original purpose for being able to switch the driver while the device remains comes from LVM, and in particular 'pvmove' which allows you to move data from one physical location to another without interrupting service.
If at one point in time, the data is being served by one device, and then later it is served by another device, then we need to be able to replug drivers at some level in the stack.
Once people realised that could be done, they quickly saw other possibilities. The one I hear the most is the idea of changing a plain disk to a RAID1 pair without unmounting. There are two difficulties with this: finding somewhere to the store the metadata that the array needs, and making the change while the data is 'live'. The former is probably solvable (not in general, but in practice in many actual situations - fdisk often leaves some blank space on the device that it partitions). The latter needs the ability to switch drivers while the device is live.
So the higher up the stack the functionality can be incorporated, the more generally useful it can be.
Posted Oct 11, 2009 21:35 UTC (Sun) by rwmj (subscriber, #5474)
[Link]
This is wanted (but not implemented AFAIK) for virtualization. The idea is that the guest is
running, say, an emulated IDE or SCSI device, and then you install virtio drivers which somehow
transparently take over the existing device.
Such a feature is common already in commercial hypervisors (eg. VMWare tools does it).