Section 4.2. Hardware Design Criteria

4.2. Hardware Design Criteria

With the functional requirements determined, the next step was to establish design criteria for the SOHO server hardware. Here are the relative priorities we assigned for our SOHO server. Your priorities may of course differ.





Noise level


Processor performance

Video performance

Disk capacity/performance

Here's the breakdown:


Price is moderately important for this system. We don't want to spend money needlessly, but we will spend what it takes to meet our other criteria.


Reliability is the single most important consideration.


Size is unimportant. Our SOHO server will reside in Barbara's office, which has more than enough room for a full tower or even a double tower system.

Noise level

Noise level is unimportant for a server that sits in a server room, but in a residential or small-business environment it can be critical. Because the SOHO server will be installed in Barbara's office, it's important to minimize noise level. We'll choose quiet components whenever possible.


Expandability is moderately important. Our server will initially have four hard drives and an optical drive installed, but we may want to expand the storage subsystem later. Similarly, although we'll use the integrated S-ATA and network interfaces initially, we may eventually install additional disk adapters, network interfaces, and so on.

Processor performance

Processor performance is relatively unimportant, at least initially. Our SOHO server will run Linux for file and print services, which place little demand on the CPU. However, we expect the server eventually to run at least some server-based applications, perhaps X11 apps that display on workstations or server-based applications such as mailman or squirrelmail. The incremental cost of installing a moderately fast dual-core processor and sufficient memory to support those expected software upgrades is small enough that we'll do it now and have done with it.

Video performance

Video performance is of literally zero importance, because we'll run our SOHO server headless. That is, we'll temporarily install a monitor while we install and configure Linux, but we'll subsequently manage the server from a desktop system elsewhere on the network. We'll either use a motherboard with integrated video, or install a video card just long enough to get Linux installed and working.

Disk capacity/performance

Disk capacity and performance are very important. Our SOHO server has only one or two simultaneous users, so standard 7,200 RPM S-ATA hard drives provide more than adequate performance. Capacity is the more important consideration for our server. We want at least 2 TB of hard disk space initially, and we'd like to be able to expand that to 4 TB or more without making major changes to the case or the existing drive subsystem. That means we'll need to use relatively few high-capacity hard drives instead of many lower-capacity drives.

4.2.1. RAID for SOHO Servers

Although we elected not to use RAID on our SOHO server, that doesn't mean RAID isn't right for your SOHO server. RAID is an acronym for Redundant Array of Inexpensive Disks. A RAID stores data on two or more physical hard drives, thereby reducing the risk of losing data when a drive fails. Some types of RAID also increase read and/or write performance relative to a single drive.


We can't say it often enough. RAID does not substitute for backing up. RAID protects against data loss as a result of a drive failure, and may increase performance. But RAID does not and cannot protect against data loss or corruption caused by viruses; accidental or malicious deletions; or catastrophic events such as a fire, flood, or theft of your server.

Five levels of RAID are defined, RAID 1 through RAID 5. RAID levels are optimized to have different strengths, including level of redundancy, optimum file size, random versus sequential read performance, and random versus sequential write performance. RAID 1 and RAID 5 are commonly used in PC servers. RAID 3 is used rarely. RAID 2 and RAID 4 are almost never used. The RAID levels typically used on SOHO servers are:


RAID 1 uses two drives that contain exactly the same data. Every time the system writes to the array, it writes identical data to each drive. If one drive fails, the data can be read from the surviving drive. Because data must be written twice, RAID 1 writes are a bit slower than writes to a single drive. Because data can be read from either drive in a RAID 1, reads are somewhat faster. RAID 1 is also called mirroring, if both drives share one controller, or duplexing, if each drive has its own controller.

RAID 1 provides very high redundancy, but is the least efficient of the RAID levels in terms of hard drive usage. For example, with two 500 GB hard drives in a RAID 1 array, only 500 GB of total disk space is visible to the system. RAID 1 may be implemented with a physical RAID 1 controller or in software by the operating system.


RAID 5 uses three or more physical hard drives. The RAID 5 controller divides data that is to be written to the array into blocks and calculates parity blocks for the data. Data blocks and parity blocks are interleaved on each physical drive, so each of the three or more drives in the array contains both data blocks and parity blocks. If any one drive in the RAID 5 fails, the data blocks contained on the failed drive can be re-created from the parity data stored on the surviving drives.

RAID 5 is optimized for the type of disk usage common in an office environmentmany random reads and fewer random writes of relatively small files. RAID 5 reads are faster than those from a single drive, because RAID 5 has three spindles spinning and delivering data simultaneously. RAID 5 writes are typically a bit faster than single-drive writes. RAID 5 uses hard drive space more efficiently than RAID 1.

In effect, although RAID 5 uses distributed parity, a RAID 5 array can be thought of as dedicating one of its physical drives to parity data. For example, with three 500 GB drives in a RAID 5 array, 1,000 GBthe capacity of two of the three drivesis visible to the system. With RAID 5 and four 500 GB drives, 1,500 GBthe capacity of three of the four drivesis visible to the system. RAID 5 may be implemented with a physical RAID 5 controller or in software by the operating system. Few motherboards have embedded RAID 5 support.


RAID 3 uses three or more physical hard drives. One drive is dedicated to storing parity data, with user data distributed among the other drives in the array. RAID 3 is the least common RAID level used for PC servers, because its characteristics are not optimal for the disk usage patterns typical of small office LANs. RAID 3 is optimized for sequential reads of very large files, and so is used primarily for applications such as streaming video.

Then there is the so-called RAID 0, which isn't really RAID at all because it provides no redundancy:


RAID 0, also called striping, uses two physical hard drives. Data written to the array is divided into blocks, which are written in an alternating fashion to each drive. For example, if you write a 256 KB file to a RAID 0 that uses 64 KB blocks, the first 64 KB block may be written to the first drive in the RAID 0. The second 64 KB block is written to the second drive, the third 64 KB block to the first drive, and the final 64 KB block to the second drive. The file itself exists only as fragments distributed across both physical drives, so if either drive fails all data on the array is lost. That means data stored on a RAID 0 is more at risk than data stored on a single drive, so in that sense a RAID 0 can actually be thought of as less redundant than the zero redundancy of a single drive. RAID 0 is used because it provides the fastest possible disk performance. Reads and writes are very fast, because they can use the combined bandwidth of two drives. RAID 0 is a poor choice for desktops and workstations, which typically do not load the disk subsystem heavily enough to make RAID 0 worth using. Heavily loaded servers, however, can benefit from RAID 0 (although few servers use bare RAID 0 because of the risk to the data stored on a RAID 0 array).

Finally, there is stacked RAID, which is an "array of arrays" rather than an array of disks. Stacked RAID can be thought of as an array that replaces individual physical disks with subarrays. The advantage of stacked RAID is that it combines the advantages of two RAID levels. The disadvantage is that it requires a lot of physical hard drives.

Stacked RAID

The most common stacked RAID used in PC servers is referred to as RAID 0+1, RAID 1+0, or RAID 10. A RAID 0+1 uses four physical drives arranged as two RAID 1 arrays of two drives each. Each RAID 1 array would normally appear to the system as a single drive, but RAID 0+1 takes things a step further by creating a RAID 0 array from the two RAID 1 arrays. For example, a RAID 0+1 with four 500 GB drives comprises two RAID 1 arrays, each with two 500 GB drives. Each RAID 1 is visible to the system as a single 500 GB drive. Those two RAID 1 arrays are then combined into one RAID 0 array, which is visible to the system as a single 1,000 GB RAID 0. Because the system "sees" a RAID 0, performance is very high. Because the RAID 0 components are actually RAID 1 arrays, the data is very well protected. If any single drive in the RAID 0+1 array fails, the array continues to function, although redundancy is lost until the drive is replaced and the array rebuilt.


RAID can be implemented purely in hardware, by adding an expansion card that contains a dedicated RAID controller, processor, and cache memory. Hardware RAID, if properly implemented, offers the highest performance and reliability and places the fewest demands on the main system processor, but is also the most costly alternative. True hardware RAID adapters cost several hundred dollars and up, and are generally supplied with drivers for major operating systems including Windows and Linux.

Software RAID requires only standard ATA or S-ATA interfaces, and uses software drivers to perform RAID functions. In general, software RAID is a bit slower and less reliable than hardware RAID and places more demands on the main system processor. Most modern operating systems, including Windows Server and Linux, support software RAIDusually RAID 0, RAID 1, and RAID 5and may also support RAID 0+1. We believe that well-implemented software RAID is more than sufficient for a typical SOHO Server.

Hybrid RAID combines hardware and software RAID. Hybrid RAID hardware does not contain the expensive dedicated RAID processor and cache memory. Inexpensive RAID adapters have limited or no onboard processing, and instead depend on the main system processor to do most or all of the work. With very few exceptions, motherboards that feature onboard RAID support, such as Intel models, use hybrid RAID, although it is sometimes incorrectly called hardware RAID. If you choose a hybrid RAID solution, make certain that drivers are available for your operating system.

RAID 1 Versus RAID 0+1

If your storage subsystem has four hard drives, there is no point to using RAID 1 rather than RAID 0+1, assuming that your motherboard or RAID adapter supports RAID 0+1. A RAID 1 uses two of the four drives for redundancy, as does the RAID 0+1, so you might just as well configure the drives as a RAID 0+1 and get the higher performance of RAID 0+1. Either RAID level protects your data equally well.

Until a few years ago RAID 0+1 was uncommon on small servers because it required SCSI drives and host adapters, and therefore cost thousands of dollars to implement. Nowadays, thanks to inexpensive S-ATA drives, the incremental cost of RAID 0+1 is very small. Instead of buying one $200 hard drive for your small server, you can buy four $100 hard drives and a $50 RAID adapter. You may not even need to buy the RAID adapter, because some motherboards include native RAID 0+1 support. Data protection doesn't come much cheaper than that.


Linux 2.4 kernels had support for hybrid RAID, but it was dropped in 2.6, so unless a distributor has specifically added it or the hybrid RAID card vendor supplies Linux-specific drivers/kernel patches, a 2.6-based distro won't support hybrid RAID.

I discovered this the hard way when converting my old dual Pentium III 450 box with a Promise IDE RAID controller from Win2K to Ubuntu Server.

And what if you choose not to use any form of RAID, as we did? We decided to install four 500 GB hard drives in our SOHO server, configured as a JBOD (Just a Bunch of Drives). All four drives function independently as ordinary drives, and we get the full 2 TB combined capacity of the four drives. Just because we chose not to use RAID doesn't mean you should do the same. With our four 500 GB drive configuration, you can choose any of the following disk configurations without making any hardware changes.


All four drives operate independently. The operating system "sees" 2 TB of disk capacity. Performance and data safety are determined by the performance and reliability of the individual drives. Note that, with four drives spinning, the failure of one drive is four times more likely to occur than when only one drive is spinning. If a drive fails, you lose whatever data was stored on that drive, but the data on other drives is not affected.


All four drives are assigned to the RAID 5. The operating system sees 1.5 TB of disk capacity. (The equivalent of one drive's capacity is used to store parity data, although that data is actually distributed across all four drives.) Read and write performance for small files is the same or slightly faster than with individual drives. Read and write performance for large files is slightly slower than with individual drives. RAID 5 offers moderate redundancy. Any one drive may fail without loss of data. If two drives fail simultaneously, all data on the array is lost.

RAID 0+1

All four drives are assigned to the RAID 0+1, as in effect a RAID 0 pair of RAID 1 mirrored drives. The operating system sees 1 TB of disk capacity. Read performance for any size file is noticeably faster than JBOD or RAID 5, particularly when the drives are heavily loaded. Write performance is slower. RAID 0+1 offers very high redundancy. Any two drives may fail without loss of data, as long as they are not both members of the same RAID 1. If both drives in a RAID 1 fail simultaneously, all data on the array is lost.

With the hardware configuration we detail later in this chapter, you can choose any of these disk configurations during setup. You don't even need to pop the lid or move any cables. But give some serious thought to which configuration to use. If you change your mind later, you can reconfigure the disk subsystem, but you'll need to back up all of your data and re-store it after you set up the new configuration.

Building the Perfect PC
Building the Perfect PC, Second Edition
ISBN: 0596526865
EAN: 2147483647
Year: 2006
Pages: 84

Similar book on Amazon © 2008-2017.
If you may any questions please contact us: