This chapter explains the fundamentals of diskless operation. It contains the following sections:
Diskless software enables computers on a local area network (LAN) to operate using the disk space, operating system, and support software supplied by a remote host. The client (the computer using the resources) must be on the same physical network as the server (the computer supplying the resources). The client-server relationship is dependent upon network protocols to boot the client over the network link, and upon IRIX, IRIX utilities, and NFS services to sustain the client after it is booted.
Figure 1-1 illustrates the resources that a server and its clients contribute to diskless operation.
The PROM on a diskless client must include the Internet Bootstrap Protocol, bootp(1M), the network protocol that initiates remote booting. During the client's power-up sequence, bootp sends a request for a bootfile (the unix image) to the diskless server. The server downloads the client's boot file using the Trivial File Transfer Protocol, tftpd(1M). (The details of this process are explained in “Debugging the Boot Process” in Chapter 7.)
Client installations of IRIX and its utilities are maintained in dedicated directories on the server. With the exception of the kernel, which resides in client memory after it is downloaded, the client retrieves and executes operating system programs and utilities from the server on an as-needed basis. Swap space needed for program execution is also furnished by the server (see “Local Disk Resources” for exceptions).
With the exception of the unix boot file, all files needed by a diskless client, including the IRIX operating system and IRIX utilities, are provided by NFS's export and mount facilities. For this reason, a diskless server must be running NFS to export the necessary directories, and the NFS application must be available to each diskless client so that it can mount the exported directories. In addition to the required filesystems that it mounts from the server, a diskless client can also mount NFS filesystems and directories from other remote hosts.
A diskless client can be equipped with a local disk of its own. The local disk on such a client does not supply the minimal operating system, and the disk is not used for booting, as it is on conventional standalone systems. Rather, the client obtains booting and operating system resources from the server, and the local disk is reserved for specialized uses. Commonly, the disk is configured to provide local swap space or the /tmp directory for the client.
The software on a server that is dedicated to supporting its diskless clients is referred to as the diskless tree. Optimally, the diskless tree occupies an entire filesystem, but a diskless tree can also be configured as a portion of an existing filesystem.
All diskless trees are composed of three basic elements: share trees, client trees, and swap trees. The overall size and configuration of a diskless tree depends on the number of clients it supports and the number of IRIX versions it offers.
Figure 1-2 illustrates the diskless tree for a server supporting three diskless clients on a single version of IRIX.
The share tree contains the portion of the IRIX operating system that can be shared by a group of diskless clients. This includes IRIX kernel modules, hardware-specific files for each workstation model that the client supports, IRIX commands, and IRIX files that cannot be modified. The purpose of the share tree is to minimize the amount of disk space that the diskless implementation requires.
A diskless tree contains one share tree for each release of IRIX that it supports. The number of share trees that a server can support depends on the amount of disk space it contains and the usage patterns of its clients.
Figure 1-3 illustrates what happens to the diskless tree shown in Figure 1-2 when an additional IRIX release is added.
A client tree contains the IRIX kernel for an individual client, the specific hardware files that the client requires, and private files such as /etc/hosts, /etc/fstab, and /etc/sys_id. All other operating system files reside on the share tree. The diskless tree contains a client tree for each client that it supports.
The swap tree provides the disk space that an individual client needs for virtual memory operations. It contains a single file whose contents support the virtual memory function of that client. The diskless tree typically contains a swap tree for every client that it supports; however, if a client contains a disk, the local disk may supply its swap space.
A class is a group of workstations that contain identical CPU and graphics hardware. A class is generally (but not always) designated by a model name, such as the Indy or Indigo Elan.
A client class requires its own hardware-specific software modules. For this reason, a share tree must contain all the hardware-specific modules needed to support every class in its client base. By contrast, a client tree contains only those hardware-specific modules needed to support the individual client that is using it.