Moving the data blocks out of the disk should be easy to do; Moving
the inode information may prove to be harder.
What we need to do is add a way for disabling further allocation and
use of a device that is being removed from the file system.
Moving the information to the best place on another device should not
be very difficult, as we can use the same allocation code that is
already on the kernel: it would just call the regular block allocation
routines, and these would take care of laying the information properly
on the new host for those exiled blocks.
The only annoying thing is that this could block holes (not really a
problem by itself) but in the long run people could end up with a
fragmented block address space.
cheers,
Miguel.