torek@elf.ee.lbl.gov (Chris Torek) (04/29/91)
In articles <68020001@hpcupt1.cup.hp.com> and <67930001@hpcupt1.cup.hp.com> balon@hpcupt1.cup.hp.com (Tom Balon) posts the same message separately to two newsgroups: >How do different versions of unix deal with new ZBR (Zone Bit Recording) >style disk drives. Most of them ignore the ZBR entirely. >As I understand it, the unix file system uses the track size, >block/frag size, and information from the super block ( rotdly >for example ) in order to optimally allocate the next disk block. The BSD `Fast File System' does this. The old System V file system does not (it has a free list that rapidly gets scrambled, and essentially amounts to choosing a block at random). >This may not work well with ZBR. Actually, it works fine: >For example, say we have a disk with 1 to n zones. We build a [single] >8K/1K file system on the disk. In zone 1, the track size is 32K so we >have 4 8K blocks per track, in zone n, the track size is 24K so we have >only 3 8k blocks per track. Under these conditions, the old algorithm >breaks down. All this means is that the rotational placement tricks do not work well. Since most ZBR disks have caches in the controllers, this tends not to matter much. If the number of zones is small, you can use a gimmick: Make each partition cover a single zone, and use the number of sectors per track to make each file system on each partition. Many ZBR disks have too many zones to make this feasible (the Wren V, for instance, has something like 26 zones). It would not be too difficult to extend the BSD FFS algorithms to handle different zones---the rotational tables are read from the superblock and one could simply have one table per zone---but it would probably not be worthwhile. Those in search of a small thesis might try it anyway. :-) -- In-Real-Life: Chris Torek, Lawrence Berkeley Lab CSE/EE (+1 415 486 5427) Berkeley, CA Domain: torek@ee.lbl.gov
lm@slovax.Eng.Sun.COM (Larry McVoy) (04/29/91)
torek@elf.ee.lbl.gov (Chris Torek) writes: > Most of them ignore the ZBR entirely. > > >As I understand it, the unix file system uses the track size, > >block/frag size, and information from the super block ( rotdly > >for example ) in order to optimally allocate the next disk block. The only place that you care at all is with large sequential files. Small files fit in one block. Given that information, you can make zones be noise by allocating w/o any rot delay at all, detecting sequential I/O, and switching to large (50-100KB) transfers. If you do that, the zone issue disappears into the noise. The fact that you have no rot delay is not interesting for randoms and/or small files; all of those accesses look random to the disk. On place where rot delay could become interesting: an idea that I've beening toying with, is to notice when files are being read in a particular directory (cat *.c). If the files were all laid out w/ no rot delays, you could conceivably have a FS that read all of them in at once (can you say news? or /usr/include?). I wrote paper about sequential performance stuff, it's in the last Usenix. I also left it (w/o permission, so it may get blown away) in ucbarpa.berkeley.edu:/pub/mcvoy.clust.usenix.ps.Z because the guy from HP wanted a look. If someone knows of a better anon ftp spot, let me know (Sun doesn't provide one, bummer). --- Larry McVoy, Sun Microsystems (415) 336-7627 ...!sun!lm or lm@sun.com