Messages in this thread | | | Date | Wed, 23 Apr 1997 15:02:14 -0400 | From | "Theodore Y. Ts'o" <> | Subject | Re: Volume management on Linux with the ext2fs. |
| |
Date: Wed, 23 Apr 1997 13:27:48 -0500 From: Miguel de Icaza <miguel@nuclecu.unam.mx>
That is exactly what I would like to change. From a one-night reading of the ext2 file system, it seems possible to implement the extensions. We just need to get a routine that maps from a given global block number to the device/local-to-the-device-block-number.
It's not nearly so simple. Right now the ext2 filesystem relies on the generic filesystem's mmap, and generic file read routines. Those routines break in the face of breaking the single device to single filesystem. Swapping to a file on an ext2 filesystem would also break, unless you implemented some special case code. All doable, but it adds quite a bit of complexity and kernel bloat.
That is right. Your scheme looks nicer, but then again, it does not allow a system to continue operation and still let you add a new disk to the system. This is something at least the IRIX XFS/XVM lets you do. I would love to have this functionality in Linux.
I see this as something that's nice, but I don't share your urgency about this feature. Most of the time you need to powerdown the system to cable the new disk into the SCSI chain anyway.....
I would like to follow what the IRIX guys did: you can unplug a device from a volume by running some program that: 1. sanity checks if it is possible to do this; 2. disables all of the ongoing i/o to that file system while moving the information and 3. moves the information away from the disk you want to remove and 4. re-enables disk I/O.
Again, not so simple.
The moment you allow arbitrary devices to be removed from a logical volume, now you have gaps in the associated block numbering space. How do you handle the resulting block numbering name space fragmentation. Suppose we take out of service a 1 gig disk, and add a disk which is 800 megs; where do we put the disk in the block number space? What if the new disk is 1.2 gigs?
Given that disks will be inserted at arbitrary places in the global block numbering name space, how do you record this information? Because if the system shuts down and comes back up, the information about where in the multi-disk volume is very important.
- Ted
| |