One of the services that many public libraries provide is computer access, both for local applications and access to Internet services. The Wendell Free Library provides these services with thin1 Linux workstations. These workstations provide a web browser (Firefox), for access to web sites of all sorts and also provide a number of local applications, including an office suite (OpenOffice), plus several other applications, including a movie player (MPlayer), an image editing program (GIMP), and a large collection of games.
Using thin clients reduces energy costs, creates a uniform environment that only needs to be updated in one place, on the server, and quieter operation. This article describes the setup and configuration of these thin clients at the Wendell Free Library and covers the step-by-step process of setting up the server and the client machines and includes the process from installing the base system on the server to configuring the PXE boot process to user authentication and management.
2 Server Operating System Software
2.1 Daemon Programs Needed
3 Server File System Layout
3.1 NFS Exports
Like the UBuntu-based LTSP thin clients, these thin clients are diskless. The main difference is the LTSP systems run little more than the X server process, with all of the client processes running on the server system. These thicker clients are full-fledged Linux workstations running the end-user programs directly on the client machines. These machines mount all of the basic Linux file systems as NFS file systems served by the server. This distributes both the CPU cycle resources and the memory resources amongst the client machines, rather than concentrating these resource demands on the server itself. The LTSP system has proved to be less than satisfactory, given the usage patterns, which includes heavy use of Flash-based games by the patrons. By using this style of thin client, there is both more memory as well as more CPU cycles (using faster, dedicated processors) providing more directly available compute resources for patron use.
The client machines are little refurbished 2.4GHz P4 boxes we got from Geeks.com for about $50 each. They came with 256meg of memory and we add a 1gig DIMM to each.
The server is a Dell server with a Core2Duo processor, 2gig of RAM and 4 80gig SATA disks. We are using software RAID.
The server is running CentOS2. This is a stable and long-term production grade operating system. With multi-media software installed from third-party repositories, the client machines have installed access to the end-user software3 the patrons will make use of. CentOS is otherwise a stable and solid system with long term support, with ongoing upstream releases of essential bug and security updates.
The server machine needs to provide a number of services for the client machines. These services include:
- NFS (Network File System) services. This service provides the file systems used by the client machines.
- DNS (Domain Name Service) services. This service maps between machine host names and IP addresses.
- DHCP (Dynamic Host Configuration Protocol) services. This service provides both the mapping from client machine hardware addresses and their IP addresses and also provides the core information needed for the client machines to get their kernel images and boot themselves up properly.
- TFTP (Trivial File Transfer Protocol) services. This service provides the transfer methodology to actually deliver the kernel and initial ramdisk images to the client machines.
- CUPS (Common UNIX Print Service). This service provides access to the shared printers that are available for patron use.
- SMTP (Simple Mail Transfer Protocol). This service allows for local communication4
- LDAP (Lightweight Directory Access Protocol) services. This service is used for user authentication.
The server has a number of separate file systems, as shown in this table:
This is the server’s root file system. It is not NFS exported.
This is the server’s boot file system. It is not NFS exported.
This is client root file system. It is NFS exported, read-only. The client machines actually has a ramdisk mounted at their root file system, with symlinks to this file system. The /var directory on this file system is copied to the root ramdisk mounted on the client machines.
This is the /usr file system for both the server and the clients. It is mounted read-only on the client machines.
This is the /var file system for the server. Some of this file system is also mounted on the clients.
This is the file system containing the user home directories. It is NFS exported to the clients, which in turn mount it read-write.
The /nfsroot file system is basically a mirror of the server’s root (/) and /var file systems, with some important changes. The /var file system is simplified. Primarily due to that many services running on the server instead of the clients. The settings in the /nfsroot’s etc sub-directory are different, both because many services won’t be running and because of the need to do things like mount selected NFS file systems earlier in the boot process than would normally be the case for a workstation with a local disk. This is covered in depth in Section ??.
Several of the server’s file systems are NFS exported to the client machines. This includes the client machines’ root file system (read-only), the /usr file system (read-only), and the /var/lib/rpm directory (read-only). In addition, the /var/spool/mail5 directory and the /home directories are exported (read-write).
Next week will cover booting the diskless clients and talk about the initial RAMDISK and the NFS Mounted file systems.
*Copyright (C) 2009 Robert Heller.
1 Thin clients are diskless computers, which get their operating system and application software from a file server on the local area network (LAN).
2 CentOS Release 5.3 at the time this article has been written.
3 Such as Adobe Acrobat Reader, MPlayer, and the Shockwave Flash plugin.
4 At present, the patrons don’t make direct use of this service. It is mostly provided to allow for automated messaging between the client machines and the server machine.
5 See below for Sendmail’s mail delivery settings.