12.2. Hardware Requirements
One of the advantages of thin client computing is that it minimizes the hardware requirements, at least for the computers at which users actually sit. The server hardware, though, must be heavy duty, at least if it's to support more than a few users. Thus, you must evaluate your hardware requirements very differently for the two sides of the thin client/server coin. You must also consider the hardware that connects these two sides of the coin, because a deficiency in your network infrastructure will severely degrade a thin client network.
12.2.1. Server Requirements
The trickiest part of determining your thin client network's hardware needs is in deciding what sort of hardware to use on the server. This task is made extremely difficult by the fact that it varies so much depending on the type of work done at your site. Different programs make different demands on memory and CPU time, and these demands scale differently to multiuser loads.
The scaling question is an important one. For instance, suppose you've determined, through experimentation, that a desktop system needs a 2-GHz Pentium 4 CPU, 512 MB of RAM, and a 60-GB hard disk to operate comfortably for a typical user. An obvious, but probably wrong, extrapolation would be that a 10-user server would need a 20-GHz Pentium 4 CPU, 5 GB of RAM, and a 600-GB hard disk10 times the single desktop system's values. (Of course, some of these specifications, such as a 20-GHz Pentium 4 CPU, can't be met!) Most desktop computer CPUs are idle most of the time; processing user keystrokes and mouse clicks as they use a word processor, web browser, or most other user applications takes little CPU time. Likewise, a great deal of RAM is consumed by the OS kernel and other overhead items that's not duplicated in a multiuser environment. In addition, shared libraries can greatly reduce the memory footprint of adding new users when they all run more or less the same programs. Similar comments apply to disk space. Depending on the applications used, a 10-user system might need only a 3-GHz CPU, 1 GB of RAM, and 120 GB of disk space to provide performance comparable to a 2-GHz CPU/512-MB RAM/60-GB disk single-user desktop system, or it might need something more powerful.
Beyond a certain point (typically about two or three dozen users), scaling a single server becomes impractical. Thus, if you need to serve several dozen to thousands of users, you should look into multiserver configurations. In this configuration, load balancing can become an important issue, but this topic is beyond the scope of this book.
In early 2005, desktop users can still usually work quite well with single-CPU Intel Architecture 32 (IA-32) systems. In any but the smallest thin client configurations, though, your server should have more CPU power, and is likely to benefit from a shift to a multi-CPU or 64-bit system. Of these two features, multiple CPUs are likely to be more important than 64-bit CPUs. The latter are most likely to be necessary if the total memory exceeds 4 GB; unless they use special tricks, IA-32 systems are limited to 4 GB of RAM. Although 64-bit multi-CPU systems tend to be expensive, each one can serve quite a few users, which greatly reduces the per-user cost.
The login server systems for thin clients also need fast and robust disk subsystems. In the past, this has usually meant RAID arrays based on SCSI drives, and indeed SCSI RAID systems are still a good, if expensive, choice for this role. Recently, though, SATA RAID hardware has become common, and such systems often at least approach the performance of SCSI RAID systems, although they tend to produce higher CPU loads, so SCSI still beats out SATA.
Of course, the login server needs the best available network hardware. Most systems sold today include gigabit Ethernet. To do any good, though, the gigabit Ethernet or other high-speed network connector must either be matched with equivalent hardware on the clients or fed via a switch or router that can combine slower client feeds into a faster link to the server.
12.2.2. Client Requirements
The requirements of the thin client depend to some extent on your site's needs. For instance, you might need extra-large displays, clients that can handle multiple protocols, or clients with their own built-in web browsers. Much of the appeal of thin client computing, though, is that the thin clients themselves are commodities; you can reuse old PCs as thin clients, buy dedicated thin client hardware, or both. You can replace one thin client with another one (even a very different one) with little impact on its user's ability to work.
If you intend to recycle old PCs as thin clients, the basic needs are fairly minimal: the computer must be functional and have some form of network connection. In theory, even an RS-232 serial port for using the Point-to-Point Protocol (PPP) will do, but in practice, Ethernet or some other network protocol is needed. The computer must have a working monitor, keyboard, and mouse. If you intend to run Linux on the system, it must have an 80386 or better CPU and sufficient RAM for your distribution. In practice, a fast 80486 or slow Pentium-class CPU and 16 MB or even 32 MB of RAM is likely to be desirable. Older computers are unlikely to have speedy video hardware by today's standards, but most should suffice for simple GUI programs. The biggest problem with old video hardware is the amount of RAM they hold, which influences the maximum display sizes (in pixels) and color depths they support, as summarized in Table 12-1. You can use older Macintoshes or other computers with CPUs other than those in the IA-32 line, but some of the Linux distributions that work best as thin clients are designed exclusively for IA-32, so your configuration task is likely to be harder with these computers.
Both dedicated thin clients and those built from old computers may require some hardware replacements, such as upgraded monitors, video cards, and mice. Mice are particularly worthwhile upgrades because many GUI Linux programs assume the user has a three-button mouse. They can work with two-button mice using a chord (pressing both buttons simultaneously) as a stand-in for the middle (third) button, but this is a bit awkward.
If you intend to purchase dedicated thin clients, you should study their specifications very closely. Many thin clients are intended for use solely with Windows, using RDP or ICA. Such clients won't work with Linux servers; for that, the thin client should support either X or VNC. If the client will be used with both Linux and Windows servers, be sure it supports all the necessary protocols.
To operate as fully diskless systems, many thin clients must have network cards with ROMs that support booting from the network. Such configurations also require you to configure a system to respond to the boot requests and deliver appropriate files to the thin client. (This topic is described in more detail later, in Section 12.3.) If you're trying to recycle older PCs, you may therefore need to use a local boot disk (a floppy disk, CD-ROM drive, or even a hard disk) or replace network cards that don't enable you to boot from the network.
12.2.3. Network Hardware Requirements
Because thin client computing requires transferring large amounts of data, you must pay careful attention to your network infrastructure. An outdated network will likely perform so poorly as to make a thin client configuration impractical, even if everything else is done right.
Generally speaking, on a network of up to a dozen or so users, you must have a 100-Mbps local network that uses switches. Up to a few dozen, a similar configuration will work, but you should upgrade the server's network card to support gigabit Ethernet and use a switch that can handle the gigabit/100-Mbps interface.
If your network hosts more than a few dozen users, you may need to upgrade it further or segment it in some way. (Such a network will also probably require multiple servers.)
No matter the details of your network hardware, you should attend to its reliability and monitor its performance. Flaky old network cables, overheated switches, and other problems can cause degraded performance or complete loss of connectivity. If you're considering switching an existing network to a thin client model, you might need to look into replacing some or all of your network infrastructure to deal with the increased demand. On the other hand, a fairly recent network may be up to the requirements just fine. You'll have to evaluate your network hardware yourself.