Re: block_dev.c not backward compatible with 2.2.15 APIs

From: Steve Dodd (steved@loth.demon.co.uk)
Date: Mon Apr 03 2000 - 07:44:20 EST


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."

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Apr 07 2000 - 21:00:09 EST