by smallchange » 2010-02-06 18:25
The part about "a drive can be removed from one computer and placed in another computer and the data on it accessed" is a little tough, and can only be done partially, as far as I know. If you mean to actually change them after you have started using them in one computer you might be able to do that if you use a RAID that allows discs to fail. If you want to install the discs in separate computers and use them as components of RAID0, but not move them after initializing the RAID that can be done. Let's see if I can make this understandable. There are 2 protocols that would be of use to you, iSCSI and ATAoE. They both allow discs in one computer to appear as discs on another computer. The iSCSI uses SCSI protocol over IP and is quite common but has the overhead of IP packets. ATA over Ethernet does not use IP but operates at the ethernet level. It is much more efficient. Both are supported in linux.
So you can have disc1 in computer1, disc2 in computer2, and disc3 in computer3 and make them all appear to be discs on computer1. You can then create a RAID from them on computer1 which can be formatted as you like and shared via NFS or SMB or anything else you want. If you use RAID0 you will get all the discs looking like one disc to the client computers, but if any of the discs fail, all of your data is gone. If you use RAID5 in this example your available space will be smaller but if one disc fails the others continue to run and your data is safe. So if you want to move a disc, or replace it, you could fail it in the RAID, replace the disc or move it to another system, export it through ATAoE, and add it back in to the array.
There are also things like the Global File System that will allow numerous of these targets to be mounted directly on multiple computers. I don't know ZFS but it might be something like this.
Probably not exactly what you asked for but it is close. Personally I am amazed that this type of thing is possible and reasonably efficient.