Next Previous Contents

6. Description of a diskless workstation

A Diskless Workstation is a computer that doesn't need a hard disk, floppy or CDRom to boot from.

When the workstation is booted, it does the following:

  1. It gets it's ip address from a bootp or dhcp server
  2. It downloads the kernel from a tftp server
  3. It mounts it's root filesystem from an nfs server
  4. It loads the X-Server software into memory and begins executing it
  5. It contacts an XDM server and allows the user to log into it

In most cases, the bootp server, tftp server, nfs server and xdm server will all be the same machine, we will refer to that simply as the 'Server', and we will refer to the diskless workstation as the 'Workstation'.

Once the workstation is booted, and the user logs in, any application programs that they invoke will be running on the server, while the output is being displayed on the workstation. This is a fundamental feature of X-Windows. The workstation is only running the Linux kernel, XFree86, Init and possibly a print server daemon for printing to the local printer.

Because there is very little running on the workstation, you can get away with a fairly inexpensive, low-power machine. We found in our initial testing that an i486 with 16mb of ram was actually pretty good at being an X terminal.

We used the Etherboot package available from: The Etherboot Home Page. That takes care of the image that gets burned into the eprom, and it helps us prepare the kernel for downloading to a workstation.

There are several HOWTO's that explain how to setup a server for diskless booting of a single workstation, but they don't discuss the problems involved in serving many workstations from a single server. The problem is that when the workstation is running, it needs to write to some files on the server, so each workstation needs to mount it's own unique root filesystem. If you had 50 workstations, you would need 50 directory trees exported. This can be a real pain to try to manage.

We have developed a method of setting up the root filesystem hierarchy that can be shared among all of the workstations. The kernel mounts the filesystem in readonly mode, then mounts a ramdisk as it's /tmp filesystem. The size of the ramdisk is configurable, and it defaults to 1mb. While the kernel and XFree86 are running, they like to update a few files, so we have placed those files on the ramdisk, and created symbolic links to them in the proper place within the hierarchy.

Additionally, we have created a configuration file and a program that runs as part of the workstation bootup sequence. Each workstation can include different hardware. Things such as Network board, Video Card and the type of mouse can be configured either as a default, or individually for each workstation.

Because there aren't any application programs running on the workstation, we don't need a swap device, although it is possible to configure the kernel to swap to an NFS filesystem.

This method of booting a workstation is being used very successfully on a network with over 100 workstations all running from a single server running RedHat 6.0 on a 400mhz Pentium-II. Each workstation is a 166mhz Pentium machine with 32mb of ram. We could have used a smaller processor, but these days it is getting pretty tough to find the low-end cpus.

There is also an option that will allow applications to run directly on the workstation. We refer to this as Local Apps.


Next Previous Contents