On Fri, Mar 31, 2000 at 09:15:49AM -0700, Jeff V. Merkey wrote: > NetWare does not follow the Unix model of "one partition, one file > system tree" (which is an ancient and limiting architecture for File > Systems). The model linux is taking is almost identical to NT, a model > where the I/O subsystem presents single partitions through a very > restrictive I/O interface. [..] I don't think anyone ever said that a block device had to represent a single partition or physical disk. A block device is an abstraction to make the filesystem's life easier -- as far as an fs is concerned, a block device is just .. a sequence of blocks - i.e. something that can host a filesystem. AIUI, there are block device drivers out there that make multiple disks / partitions appear as a single block device: the software RAID stuff, and the LVM (logical volume manager). > NetWare uses a multi-segmented architecture where several segments for a > particular volume can be stripped across multiple drives (a single > NetWare partition can host 8 volumes segments per partition, and these > segments can be for the same volume or 8 other stripped volumes). In /theory/ it would be nice for this aspect to be handled in a block device driver, so it's cleanly separated from the actual fs code. In practice, it may not be worth it. > I need to be able to scan the volume tables on each NetWare partition in > order to build a global map of all NetWare volume segments on all drives > (a single sector read per drive to locate the volume segment tables). Hmmm, unless you actually want to be able to use such a filesystem as a boot / root fs, this would probably be better off handled in a userspace util that the user could configure - the automatic scan could be an option, and you could cache the results in a config file over reboot, if desired; a setup tool that's run out of /etc/rc* could read the config file and configure the kernel driver. It should keep the size of the kernel down, and give the user more flexibility if they want it. > I also need it to locate all mirror groups and mirror members before > bringing the mirroring and hotfixing engine on line. This is why. If > there is a "cleaner" way to do this with a published API, please show > me. Also, attached is what I am doing in 2.0/2.2 -- it works great. [..] My suggestion would be to look at the software RAID and LVM stuff - I've not used them so I'm afraid I can't give you any pointers. Ideally you'd be able to modify them to support Netware-style logical volumes, but I suspect that's not on the cards (I've not looked at the details). -- "So how do you feel, having given up on coffee?" "A bit slow, but you have to expect that on a Monday." "It's Thursday."
