|
|
1.1 ! root 1: .\" Copyright (c) 1986 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted ! 5: .\" provided that the above copyright notice and this paragraph are ! 6: .\" duplicated in all such forms and that any documentation, ! 7: .\" advertising materials, and other materials related to such ! 8: .\" distribution and use acknowledge that the software was developed ! 9: .\" by the University of California, Berkeley. The name of the ! 10: .\" University may not be used to endorse or promote products derived ! 11: .\" from this software without specific prior written permission. ! 12: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 13: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 14: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 15: .\" ! 16: .\" @(#)2.t 6.2 (Berkeley) 3/7/89 ! 17: .\" ! 18: .ds RH Old file system ! 19: .NH ! 20: Old File System ! 21: .PP ! 22: In the file system developed at Bell Laboratories ! 23: (the ``traditional'' file system), ! 24: each disk drive is divided into one or more ! 25: partitions. Each of these disk partitions may contain ! 26: one file system. A file system never spans multiple ! 27: partitions.\(dg ! 28: .FS ! 29: \(dg By ``partition'' here we refer to the subdivision of ! 30: physical space on a disk drive. In the traditional file ! 31: system, as in the new file system, file systems are really ! 32: located in logical disk partitions that may overlap. This ! 33: overlapping is made available, for example, ! 34: to allow programs to copy entire disk drives containing multiple ! 35: file systems. ! 36: .FE ! 37: A file system is described by its super-block, ! 38: which contains the basic parameters of the file system. ! 39: These include the number of data blocks in the file system, ! 40: a count of the maximum number of files, ! 41: and a pointer to the \fIfree list\fP, a linked ! 42: list of all the free blocks in the file system. ! 43: .PP ! 44: Within the file system are files. ! 45: Certain files are distinguished as directories and contain ! 46: pointers to files that may themselves be directories. ! 47: Every file has a descriptor associated with it called an ! 48: .I "inode". ! 49: An inode contains information describing ownership of the file, ! 50: time stamps marking last modification and access times for the file, ! 51: and an array of indices that point to the data blocks for the file. ! 52: For the purposes of this section, we assume that the first 8 blocks ! 53: of the file are directly referenced by values stored ! 54: in an inode itself*. ! 55: .FS ! 56: * The actual number may vary from system to system, but is usually in ! 57: the range 5-13. ! 58: .FE ! 59: An inode may also contain references to indirect blocks ! 60: containing further data block indices. ! 61: In a file system with a 512 byte block size, a singly indirect ! 62: block contains 128 further block addresses, ! 63: a doubly indirect block contains 128 addresses of further singly indirect ! 64: blocks, ! 65: and a triply indirect block contains 128 addresses of further doubly indirect ! 66: blocks. ! 67: .PP ! 68: A 150 megabyte traditional UNIX file system consists ! 69: of 4 megabytes of inodes followed by 146 megabytes of data. ! 70: This organization segregates the inode information from the data; ! 71: thus accessing a file normally incurs a long seek from the ! 72: file's inode to its data. ! 73: Files in a single directory are not typically allocated ! 74: consecutive slots in the 4 megabytes of inodes, ! 75: causing many non-consecutive blocks of inodes ! 76: to be accessed when executing ! 77: operations on the inodes of several files in a directory. ! 78: .PP ! 79: The allocation of data blocks to files is also suboptimum. ! 80: The traditional ! 81: file system never transfers more than 512 bytes per disk transaction ! 82: and often finds that the next sequential data block is not on the same ! 83: cylinder, forcing seeks between 512 byte transfers. ! 84: The combination of the small block size, ! 85: limited read-ahead in the system, ! 86: and many seeks severely limits file system throughput. ! 87: .PP ! 88: The first work at Berkeley on the UNIX file system attempted to improve both ! 89: reliability and throughput. ! 90: The reliability was improved by staging modifications ! 91: to critical file system information so that they could ! 92: either be completed or repaired cleanly by a program ! 93: after a crash [Kowalski78]. ! 94: The file system performance was improved by a factor of more than two by ! 95: changing the basic block size from 512 to 1024 bytes. ! 96: The increase was because of two factors: ! 97: each disk transfer accessed twice as much data, ! 98: and most files could be described without need to access ! 99: indirect blocks since the direct blocks contained twice as much data. ! 100: The file system with these changes will henceforth be referred to as the ! 101: .I "old file system." ! 102: .PP ! 103: This performance improvement gave a strong indication that ! 104: increasing the block size was a good method for improving ! 105: throughput. ! 106: Although the throughput had doubled, ! 107: the old file system was still using only about ! 108: four percent of the disk bandwidth. ! 109: The main problem was that although the free list was initially ! 110: ordered for optimal access, ! 111: it quickly became scrambled as files were created and removed. ! 112: Eventually the free list became entirely random, ! 113: causing files to have their blocks allocated randomly over the disk. ! 114: This forced a seek before every block access. ! 115: Although old file systems provided transfer rates of up ! 116: to 175 kilobytes per second when they were first created, ! 117: this rate deteriorated to 30 kilobytes per second after a ! 118: few weeks of moderate use because of this ! 119: randomization of data block placement. ! 120: There was no way of restoring the performance of an old file system ! 121: except to dump, rebuild, and restore the file system. ! 122: Another possibility, as suggested by [Maruyama76], ! 123: would be to have a process that periodically ! 124: reorganized the data on the disk to restore locality. ! 125: .ds RH New file system ! 126: .sp 2 ! 127: .ne 1i
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.