This describes how to build a server computer. It discusses hardware and software considerations. The target audience is individuals and small and medium sized businesses. If you are a large business, just ask IBM or other serious vendor to specify, configure and maintain your servers.
There are many types of servers with different requirements. What they generally have in common is:
These requirements are different from typical computers and the server hardware and software is usually different from typical computers.
It is desirable that the server not use lots of power. If the server uses lots of power, it will likely require lots of cooling. Cooling costs are higher than the servers electrical costs. If there are many servers in a room, minimizing power use is even more important. Reliability goes down when temperature goes up too high. There are a variety of ways of reducing power usage. There is no need for a fancy graphics card in a server. If the graphics card has a fan, it is time for a different graphics card. I recommend high efficiency power supplies, as they generate less heat. Look for 80+ label, which means the power supply is at least 80% efficient. I like Seasonic power supplies. I will discuss power usage later.
All things made by man will fail in time. The goal is to minimize downtime in a cost effective fashion. If you need 99.999% uptime that means 5 1/4 minutes of downtime a year. This takes serious system engineering, and it is time to call IBM. Look for lots of hot-swap (changeable without powering down) hardware including power supplies, hard drives, fans, PCI cards, and UPS batteries.
If you don't need quite as much reliability, your hardware costs will go down quite a bit. The most unreliable hardware are generally fans, hard drives, and power supplies. Be sure that the ones you use are as reliable as possible. I like Panasonic panaflow fans, as they are quite reliable (as well as quiet). For hard drives, there are some recent papers available which discuss hard drive reliability. (Look for papers by google and by CERN). Historically, SCSI has been more reliable than IDE drives, as well as much more expensive. SAS drives are likely as reliable as SCSI. I wouldn't buy a drive unless it is available with a 5 year warranty.
Memory is a special case. It is quite unlikely to have a permanent error,
however it is quite likely to have non-permanent errors. known as transient
errors. IBM has done lots of research and estimate that with 1 gigabyte of
memory there will be a transient error every week. These are caused by alpha
particles in the memory packaging, cosmic rays, and other stuff. The way to
deal with these transient errors is ECC (error correcting code) memory, which
has extra memory used to detect and correct memory errors. The common ECC
memory will detect all 2 bit errors in 64 bits of memory and correct all 1 bit
errors. There are higher levels of ECC available. See IBM's chipkill
technology for details. If you have a memory error in a part of memory that
isn't being used, it will cause no trouble. If you have a memory error in a
part of memory that will be written before it is read, it will cause no
trouble. Otherwise, the memory error will effect in some way the processing of
the computer, in a bad way. Serious server motherboards will log memory
errors, such as the Intel PR-440FX.
Cheaper motherboards such as the Asus CUR-DLS
and PC-DL will support ECC memory, but won't
log memory errors. There are some CPU 'chipsets' that do not support ECC
memory at all. Motherboards made with these chipsets will not support ECC
memory. I recommend using only motherboards that support ECC memory, and using
only ECC memory for all servers. See the following links for details:
Google DRAM Errors in the Wild: A Large_Scale Field Study
ECC SDRAM Primer
IBM Chipkill White Paper
EETimes on IBM Chipkill Soft Errors in Electronic Memory
There are several parts to security. If the server isn't physically secure, then it isn't secure at all. If the server is running software that isn't secure, then the server isn't secure. If the server's operating system isn't secure, then the server isn't secure. If the server isn't secure, then it is at best useless, and quite possibility a liability. Bad people will try to access the server and will try to break into the server, corrupt the server, steal data from the server, and use the server for their own ends. All of this is really bad for you. If the server is only used internally such as a media file server, then security is important, but not mission critical. If the server is used externally (that is accessible to the Internet), then security is mission critical. There are a variety of ways to help make the system secure. I recommend a hardware firewall between the external world and all internal computers. If the server has to be accessible to the outside world, allow just those ports that the server needs to get through the firewall, and to go just to the server that needs those ports. Hardware firewalls are so inexpensive there is no reason to not have one. I recommend a software firewall on all servers that allow access to only the ports that the server needs (this applies to internal as well as external servers).
For the operating system and server software, I recommend choosing reliable software. This does not include any product made by Microsoft. There are far too many vulnerabilities with Microsoft's operating systems as well as server programs such as Microsoft Internet Information Server (web server) and Microsoft Exchange Server (mail server). I am also unimpressed with Sun's recent unreliabilities with Solaris OS and applications. I think OpenBSD is likely the most secure general purpose server OS, although the other BSDs and Linux can be configured to be reasonably secure.
Easy maintenance is important for both the server's hardware and software. The hardware should be easily accessible, well known brands that are generally available, and easy to service. For example, on some Dell workstations that I have seen, the power supply folds out of the computer for easy access to the rest of the system. For an older IBM desktop it took quite a bit of disassembly to access the memory or the second hard drive. If you are unsure about a brand's reputation, you can get recommendations on the Internet. For example, I have had very good support from Adaptec with their SCSI controllers. When mine failed, they cross-shipped me a replacement. I have also had good support for Gateway servers.
For software, it should be easy to install, update, roll back, and check on the status.
I decided to build a media server. There are somewhat different requirements compared to most other servers. You need audio and video outputs. Being quiet is very important. Reliability is less important.
I started off with an E-Machines AMD-2000 based system, because it was free. I added a dedicated video card since I wanted S-Video output for my TV set. It worked pretty well, but had some limitations. One significant limitation was the form factor. It was a mini-tower which didn't fit inside my video rack. I ended up buying an Antec NSK-2400 media computer case. It is a very well designed case, though a bit expensive. I used a wireless NIC card, as I had cleverly not put an Ethernet drop near the TV.
The next limitation was the E-Machines motherboard. It had a fault where it would reboot when the system was shut down. I had a powerstrip that I would turn off when I turned the computer off. Not very convenient. Also it was a bit finicky with power supplies. It wouldn't work with any Antec high efficiency power supplies. I tested it with the two Antec SU-380 power supplies and two Antec EarthWatts 380 power supplies. The existing power supplies I had were a bit noisy, which isn't ideal for a media server.
I ended up buying a new motherboard and processor, the ECS P4M900T-M motherboard and an Intel E-4500 Core 2 Duo processor. I needed a motherboard that had a micro-atx form factor, and I decided that I wanted pci-e video. The board was inexpensive, but worked ok. I did have some blue screens of death that was caused by poorly seated memory, but once I fixed that, it worked fine. I used the same wireless NIC card, and an ASUS 7200 pci-e video card that has component video output. I hoped that the component video output would be significantly better than S-Video, but I was only a little better (sharper colors mainly). Another advantage of the new motherboard was the processor runs much cooler and quieter than the old AMD-2000 processor, and can be made to run even cooler. I was able to use an efficient, quiet Antec power supply. The new media computer is much quieter than the original one, and is faster (not that that is needed).
If you have comments or suggestions, Email me at firstname.lastname@example.org
Created with gnu emacs and template-toolkit, not some sissy HTML editor.
both have significant security issues.