home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
-
-
- Chapter 3
- Volumes and Hard Disks
-
-
-
- The hard disk on a NetWare 386 server can be divided into
- volumes, partitions, and segments. This section discusses
- these divisions and the organization and format for
- NetWare 386 hard disks. It includes the following
- sections:
-
- ■ Volumes
- ■ Disk Partitions
- ■ Disk I/O
- ■ Disk Allocation Blocks
- ■ FATs and Turbo FATs
- ■ Total Storage Capacity
-
-
-
- Volumes
-
- A NetWare 386 server supports up to 32 NetWare volumes.
- A NetWare volume is a logical entity composed of at least
- one 1 or as many as 32 segments. Each segment can consume
- an entire hard disk or only a fraction of a hard disk,
- but it does not span hard disks. Since one NetWare 386
- volume could be as large as 32 hard disks, a server could
- be configured with one large volume (32 hard disks), each
- hard disk a segment in the volume.
-
- The size of a NetWare 386 volume can be increased simply
- by adding another hard disk to the server, setting up a
- NetWare partition on the disk, and creating a new volume
- segment, which is part of the existing volume. This can
- be done while the server is running and while the volume
- is mounted and being accessed. A volume name consists of
- one byte indicating the length of the name, followed by
- 1 to 15 characters for a possible total of 16 bytes.Disk Partitions
-
- Server hard disks are divided into units called
- partitions. A hard disk used to boot the machine would
- likely contain a DOS partition (the active partition) and
- a NetWare partition. The DOS partition allows the server
- to boot DOS before booting the NetWare operating system.
- Each of the other disks would likely contain only a
- NetWare partition.
-
- NetWare partitions are physically divided into a Hot Fix
- Redirection Area and usable space on the remainder of the
- partition. The NetWare partition contains four copies of
- a Volume Definition Table. These copies are located at
- sectors 32, 64, 96, and 128. This 512-byte table
- describes the rest of the partition, from sector 160 to
- the end. The rest of the partition consists of one to
- eight volume segments. Each segment can belong to a
- different volume.
-
- Disk I/O
-
- To provide disk I/O efficiency, NetWare 386 supports
- elevator seeking, a technique used to organize and
- process disk read/write requests. Each disk driver
- maintains two queues (call them "In" and "Out") in which
- disk read/write requests are stored. Only one queue is
- active at a time. The requests have been positioned in
- each queue based upon their position on the disk. For
- example, if the "In" queue were active, the disk head
- reads or writes jobs from that queue, and each successive
- read or write moves the head closer to the center of the
- disk.
-
- Meanwhile, incoming read/write requests also fill the
- "Out" queue. Then, as all requests from the "In" queue
- are finished, the "Out" queue becomes active. The disk
- head begins moving outward as it reads or writes requests
- from the "Out" queue. By organizing disk head reads in
- this manner, elevator seeking reduces disk head thrashing
- and improves head seek times.
-
- NetWare 386 v3.1 will further increase disk I/O
- efficienty by supporting disconnect devices such as the
- SCSI (Small Computer Systems Interface) Disconnect. On
- previous NetWare servers, a device driver would initiate
- an I/O process with a device and then wait. While the
- driver waited, the device prepared for I/O and then
- replied to the driver that it was ready to send or
- receive data.With disconnect, the driver still sends a message
- informing the device to prepare to receive or send data.
- And, after preparing to receive or send, the device must
- still send a message back to the driver to initiate disk
- I/O. With driver disconnect, however, the driver does not
- wait while the device prepares for I/O. Rather, the
- driver initiates a similar I/O process with other
- devices. Thus, driver disconnect, allows concurrent I/O
- on multiple channels.
-
- Because the server uses disk drivers to read and write
- to hard disks, a server can only perform a certain number
- of disk I/Os per second if a volume is contained entirely
- on one hard disk. However, if the volume is scattered
- over two, three, or four hard disks, the server can
- perform two, three, or four times as many I/Os to the
- volume per second. Also, when the server writes to a
- volume, it scatters data evenly across all the segments
- of a volume, ensuring that all hard disks fill up at
- roughly the same rate.
-
- There is a trade-off, however. Since many of a volume's
- files may be scattered over several volume segments (on
- several hard disks), the failure of one hard disk could
- damage many files. Because of this, all hard disks
- (especially those containing only part of a volume)
- should be mirrored.
-
- Disk Allocation Blocks
-
- Volumes store data in units called disk allocation blocks
- which come in five sizes: 4KB, 8KB, 16KB, 32KB, and
- 64KB. The size is configured when the volume is added to
- the server. Disk allocation block sizes can vary from
- volume to volume; however, one volume can have only one
- block size. A disk allocation block represents the
- smallest file size for that volume.
-
- For example, suppose the disk allocation block size for
- a volume is configured at 4KB. Whether a file is 1,247
- bytes or 3,982 bytes, the file requires one 4KB block of
- disk space. And, whether a file is 5,782 bytes or 7,891
- bytes, the file would require two 4KB blocks of disk
- space. Thus, to achieve optimum efficiency, you must
- consider the size of files or data bases that your
- applications access. Applications that access volumes on
- which large files or data bases are stored would
- certainly want to configure larger disk allocation blocks
- for that particular volume. At the same time, smaller
- disk allocation blocks might be more ideal for another
- volume.File Allocation Tables (FATs)
-
- Each volume contains a file called the File Allocation
- Table (FAT). The FAT is an index to one or more disk
- allocation blocks in which a file is located. The entire
- FAT is cached in server memory allowing the server to
- quickly access any disk allocation block of data in the
- volume. Because one file may be in any number of disk
- allocation blocks spread over the disk, the FAT links
- the file together.
-
- For example, file Y has a FAT index number stored in the
- Directory Entry for file Y. This FAT index number points
- to a FAT entry which contains two pointers:
-
- ■ A pointer to a disk allocation block occupied by a
- part of file Y
-
- ■ A pointer to a subsequent FAT entry
-
- The subsequent FAT entry also contains two pointers, one
- to another disk allocation block occupied by another part
- of file Y, and one to another FAT entry. And so on, until
- the last FAT entry points to an End of File (EOF). Since
- a large file can be located in a number of disk
- allocation blocks scattered over the disk, the FAT
- entries link themselves and the disk allocation blocks
- together in this way.
-
- In the illustration on the next page, the FAT index
- number stored in the Directory Entry for file Y tells
- NetWare that file Y begins at FAT entry number 6. FAT
- entry number 6 contains a pointer to a disk allocation
- block that contains the beginning of file Y. FAT entry
- number 6 also contains a pointer to the next FAT entry,
- entry number 4.
-
- Turbo-File Allocation Table (Turbo-FAT)
-
- When the FAT reaches its 64th entry, NetWare allows you
- to bypass scanning the FAT and access files more quickly
- using a Turbo-File Allocation Table (Turbo-FAT). A Turbo-
- FAT exists for each file large enough to require 64 or
- more FAT entries. For example, if you wanted to access
- information from the 11th disk allocation block, NetWare
- could go directly to file Y's Turbo-FAT and, without
- scanning, know that it needs to access the 4th entry in
- the Turbo-FAT.The Turbo FAT assembles into one table the index to every
- disk allocation block in which a portion of a particular
- file exists. If a file takes up more than 64 disk
- allocation blocks (scattered over the disk), NetWare can
- simply go to the Turbo-FAT where pointers to those disk
- allocation blocks are assembled. Thus NetWare does not
- need to scan every entry of the FAT searching for
- pointers to those disk allocation blocks.
-
- When the number of disk allocation blocks exceeds 1024,
- every other disk allocation block is entered into the
- Turbo-FAT rather than every block.
-
-
- Hard Disk
- Volume Containing FAT Turbo FAT Turbo FAT
- Files X & Y for X for Y
-
- FAT
- Entry #
- ┌───────┐ ┌────┬────┐ ┌────┐ ┌────┐
- 0 │ 1st X│ <───■0 │ │ 2│ │ 0│ │ 6│
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 1 │ │ <───■1 │ │ │ │ 2│ │ 4│
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 2 │ 2nd X│ <───■2 │ │ 5│ │ 5│ │ 9│
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 3 │ 4th X│ <───■3 │ │ 7│ │ 3│ │ 11│
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 4 │ 2nd Y│ <───■4 │ │ 9│ │ 7│ │ 12│
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 5 │ 3rd X│ <───■5 │ │ 3│ │ 8│ │ 13│
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 6 │ 1st Y│ <───■6 │ │ 4│ │ │ │ 15│
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 7 │ 5th X│ <───■7 │ │ 8│ │ │ │ │
- ├───────┤ ├────┴────┤ ├────┤ ├────┤
- 8 │ 6th X│ <───■8 │ eof (X)│ │ │ │ │
- ├───────┤ ├────┬────┤ ├────┤ ├────┤
- 9 │ 3rd Y│ <───■9 │ │ 11│ │ │ │ │
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 10 │ │ <──■10 │ │ │ │ │ │ │
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 11 │ 4th Y│ <──■11 │ │ 12│ │ │ │ │
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 12 │ 5th Y│ <──■12 │ │ 13│ │ │ │ │
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 13 │ 6th Y│ <──■13 │ │ 15│ │ │ │ │
- ├───────┤ ├────┼────┤ ├────┤ ├────┤
- 14 │ │ <──■14 │ │ │ │ │ │ │
- ├───────┤ ├────┴────┤ ├────┤ ├────┤
- 15 │ 7th Y│ <──■15 │ eof (Y)│ │ │ │ │
- │ │ │ │ │ │ │ │
-
-
- │ │ │ │ │ │ │ │
- └───────┘ └─────────┘ └────┘ └────┘ Total Storage Capacity
-
- Total disk storage on the NetWare 386 machine is
- determined by three factors:
-
- ■ Size of a FAT entry is 8 bytes
- ■ 386 CPU can address up to 4GB of RAM
- ■ Largest disk allocation block is 64KB
-
- Theoretically, a server can cache up to 536,870,912 FAT
- entries. This value is determined by dividing 4GB of
- total memory by 8 bytes per FAT entry. If each FAT entry
- indexes one 64KB disk allocation block, the server could
- access 32 terabytes (TB) of disk storage. Thirty-two
- terabytes is more than 35 trillion bytes of disk storage.
- To utilize all this disk storage capacity, a server would
- require more than 220,000 155-MB hard disks. (NetWare 386
- v3.0 actually supports up to 1024 hard disks, 32 volumes
- x 32 volume segments per volume.)