It is Friday afternoon and it is almost four o’clock. The birds are singing outside the window, the melted snow is pouring down the gutter and everyone walks around feeling the spring in the air. It is soon weekend and you have planned a romantic trip to a secret location with hotel and luxury together with the girl you fancy. Only a few minutes left and then something happens that was not supposed to happen…
It is Friday afternoon and it is almost four o’clock. The birds are singing outside the window, the melted snow is pouring down the gutter and everyone walks around feeling the spring in the air. It is soon weekend and you have planned a romantic trip to a secret location with hotel and luxury together with the girl you fancy. Only a few minutes left and then something happens that was not supposed to happen. At the order department the printers are malfunctioning and you hurry over to correct something you think is just a common user error. However, it is not, and at the same time you head for the server hall to check the server, calls from the financial department says they can not access the bookkeeping. Your sensations of spring and love swiftly fade away when you realize that the server harddrive has seized. On top of that these two functions you needed to replace were located on a server you have been planning to replace, but due to lack of time you had not and it did not even had double harddrives. You run to the locker where the backup copies are and as you frantically browse the tapes you see your cosy weekend getting beyond reach.
For a smaller enterprise it can be expensive to invest in servers with redundant systems in form of harddrives and power supplies, but you need to see it from a different angle. Sometimes the whole activity is based on the information stored on servers and if this information is no longer available the company can not be run. Money is lost every minute the machines stand still and if the information can not be re-created it is possible that the business goes down.
However, there are alternatives to the most expensive machines. Above all it is the harddrives that cost, even though a real server (if I should use that term) contains a lot more than just SCSI drives. It can be important functions for monitoring, double power supplies or more and other gear that make it a more reliable machine. And if you take a look at the price tag it is natural that it costs a lot of money. You can actually build a relatively safe server with simple means and that is what I am about to show you in this article.
The goal is not a high performance machine for databases or suchlike, but a standard server for storage, websites, email or printers with RAID1 and hot-swap.
When I chose components for the server, I took a look at the prices of course, but I still chose products from manufacturers whose products I trust and have used in the past. Since it’s supposed to be a server, you want it to be stable. The final choice was a mainboard from ASUS and a processor from Intel, which was a Pentium 4 at 3.0 GHz with a front side bus at 800 MHz and 1 MB cache. Memory is always needed in a server so I stuffed it with 1 GB to begin with.
Do It Yourself – Server with IDE-RAID1 and hot-swap
|
|
Operating system: | Windows Server 2003 |
Mainboard: | ASUS P4P800, I865PE |
Processor: | Intel Pentium 4 3,0 GHz (800 MHz, 1MB) |
Memory: | 1 GB DDR400 SDRAM |
Controller card: | Promise Fasttrack SX4000, 256 MB cache |
Network card : | 2 x 3COM Gigabit LAN |
harddrives: | 2 x Maxtor 200 GB, Ultra ATA/133 |
Optical storage: | Pioneer DVD+/-RW burner |
Cabinet: | Chieftech BX-series, black |
PSU: | 360 Watt |
Other: | 4 casefans, 80×80 mm |
The network card is already integrated on the mainboard and it’s a card from 3COM with gigabit speed. I needed another though, because I’m going to have webpage on the machine that I want to be able to access even though the machine stands inside the firewall. The next step will be to choose a controller card for the harddrives and since Promise has been with us and manufactured such products for quite some time I chose a Fasttrack SX4000 and mounted 256 MB memory on to it.
The harddrives became two Maxtor drives on 200 GB each, with the IDE-interface and ATA133. A case from Chieftech and some case fans made the list complete together with a DVD-burner for backups. Of course we also need some sort of battery backup and there are a lot of products that’s certainly worth their price to consider. I already have a large UPS though, which this machine will be connected to.
I will dig deeper into the functions and the pros and cons in the next section.
Time for the really fun part, namely assembling the computer and testing it for the first time. Before we grab the screwdriver and rip the plastic of the case I want to discuss some things, which you probably already have heard before. Computer components are more or less sensitive to static electricity (yes, the warning labels on the bags which the components arrive in have a purpose) and therefore you have to treat them with precaution. Protect yourself by working at a good and suitable workspace and use an ESD-bracelet (Electronic Security Device) or something similar. Screwing on the mainboard while sitting on a carpet while your mom is vacuuming isn’t a good idea in other words.
NordicHardware can not be held responsible for any damage that occurs on material or persons in conjunction with this article. If you’re not sure on what you’re doing, ask for help, and consider that you are doing it at your own risk. If you are handling a product irresponsibly it’s not sure the guarantee will cover you if it breaks. With that out of the way we will begin the building process without further ado.
The controller card is equipped with a slot that supports up to 256 MB memory (regular SDRAM) with a minimum of 64 MB requirement. This has to be bought separately and you have to be careful so that you buy a memory which is compatible with the controller card. There is a list on the manufacturer’s homepage listing all memories the card supports and I personally chose a memory from Kingston.
It’s common that a bit more advanced cards are equipped with cache, even if the maximum limit is a bit out of the ordinary here. Since memory is cheap today I naturally chose to mount 256 MB right away. How much memory you actually need depends on what you are going to use you server for. If you for example are going to run it as a web server where files are being read over and over again you will benefit in performance from having a lot of cache. Although you have to consider that more memory will tend to greater losses of data in case of a power failure if the server isn’t connected to a UPS. They’ve already taken care of this though and the memory operates in a so called “write-through”-mode which means that when data is written this is done parallel to both the computer’s memory and the “local” cache. If you want to you can change to “write-back”-mode to get a bit better performance, but with worse security. It’s only when data is written that there are risks for losses, not when data is read, which is what the server will be doing most of the time.
I chose not to touch this setting, since I mounted 256 MB and want to sleep well at night.
You can of course connect the harddrives directly to the controller card and place them inside the computer but if you want to be able to swap a broken drive when the server is running you should go for a hard drive-rack with hot-swap. Promise manufactures a rack called SuperSwap 1000 which goes excellent with the controller card and is available in both regular beige color and dark gray. Sadly there were no gray in stock but who has the patience?
The hard drive-rack gives you the possibility to remove a drive and insert a new one without having to turn off the computer. You can’t do this if you have the hard drive installed inside the case and connected to the power and flat cable in the regular way. At a misfortunate breakdown of a hard drive you swap it and then the controller card will rebuild your array automatically. We will talk about what types of RAID you should use and what an array is in the next chapter.
The hot-swap function is thus in the rack where the IDE-connection and power supply is on the inside and a special connection sits on the back. The connection consists out of two parts, one on the removable part of the rack and the other on the sturdy mounted frame.
If you connect a card or a hard drive to a computer while it’s on it will with most certainly turn itself off, reboot or it might even stop working all together. This is mainly because of the risk of short circuiting but also because the rush of power to the component’s discharged capacitors and components will damage the computers power supply. This can be solved with special circuits which controls the power when you slide a rack into the frame so that the component will get a gentle power up, so to speak. The circuits also protect the equipment against short circuiting when running.
On the back of the frame, thus the part which is about as big as a regular CD-, or DVD-player, is equipped with a regular IDE-connection and another connection for power. Here you connect the flat cables from the controller card and connect the power cables directly to the power supply or through the fork which came with the package (if you don’t have any free connections). On the right picture you can see how the connection that the rack goes into looks like.
The hard drives which are in a server and works continuously need good ventilation to live as long as possible. An overheated hard drive breaks down much quicker then a hard drive which is cool and therefore the frame is equipped with a fan that sucks air from the front and through the computer. Obviously a hard drive in a rack or box becomes warmer then a hard drive that is mounted inside the computer by itself, but you just have to weigh the pros and cons and decide what you want to use.
I was a bit surprised when I noticed that there was no regular cable internally but the IDE-connection could be turned in the way that you turn it 180 degrees making the connection face the other way. Then you slide the hard drive into the connection, connect the power cable and then rotate everything back to normal. When this is done you can fix the hard drive in the rack with four screws.
This way works better in my opinion then when you have to squeeze everything into the box and try not to make the cable twist in any weird way or making the hard drive end up to high so you can’t fasten it with the screws.
The next step is to prepare the mainboard for mounting in the case, which isn’t much work if you compare to older mainboards which you had to configure manually with jumpers and similar. Which mainboard you choose is of course up to you, but I like stability so I chose an Asus P4P800 with the I865PE-chipset. The board has everything you need integrated and Gigabit-LAN from 3COM. There is no integrated graphics, but that doesn’t matter since I was going to use a separate card so that the computer’s memory won’t have to be used for graphics as well. The integrated sound card is disabled in BIOS.
How much memory you want use naturally depends on what you are going to use the server for. I was thinking of starting with 1GB, since memory is relatively cheap considering the gain in performance when going from 512 MB to 1GB. If you are thinking of running a simpler database on the server, e.g. running SQL Server 2000 you have to consider that it eats up quite a lot of RAM, just as the web server with SharePoint Services. Now since this isn’t a configuration for performance don’t count on running any heavy databases on this server.
Except the harddrives everything else works better and more stable if it’s cool and therefore I will mount four extra fans which will take care of the ventilation. The fans are regular fans with a regular connection for power, not the type that fits on the mainboard. I try to avoid running fans from the mainboard since it’s more stable to connect them directly to the power supply, even if it means that I can’t monitor the rpm.
The mainboard is screwed into the case after having mounted the processor and memory and then tightly screw it on with all nine screws making it sit just as it is supposed to. The fans are mounted in the holders which are built-in in cases from Chieftech, two on the back and two on the front. Then you just have to connect the cables from the case to the mainboard and from the harddrives to the controller card and finally the power.
I like having it neat and tidy and except that the components live longer if the cables are neatly tied up instead of just lying there and hinder the air from going through the case. As you can see on the pictures above I have also mounted a DVD-burner for backups. It will also be suitable to use it for burning stuff which is stored on the machine since its primary use will be as a file server.
When you have done all this you can connect the cables on the back and turn it on. If everything goes as it is supposed to, the blue led will glow and everything will work. The leds on the hard drive rack will glow yellow, but that is also normal before it starts up, or before an array has been configured.
For starters I wanted to explain some about RAID and some of the most common configurations there are to choose between. RAID stands for Redundant Array of Independent Disks. The connection happens with the help of a controller card that can handle RAID, and the physical units are replaced by logical units which makes the operating system think it’s one big storage unit. The advantages about RAID depends on what type of RAID you choose and some configurations are suitable for some special work.
RAID0
The first type of RAID is RAID0 and it’s also called “striping”. In a RAID0-configuration the harddrives are linked together and you use the total storage on the disks, if they are identical. If the harddrives aren’t identical the smallest drive is used as a template and all the other harddrives only use as much storage as the smallest disk can handle. This could mean for example that if you link a harddrive with 100 GB of storage capacity with three harddrives at 200 GB you can only use 4×100, namely 400 GB. Performance-wise the load is divided between the disks and generally you get better performance with RAID0, and the best result with identical disks. This form of RAID had no security at all: if one of the harddrives break apart you lose the whole link and it must be remade when you’ve replaced the harddrive that stopped working. All the data you were storing in the RAID-unit is lost.
RAID1
The next type is logically called RAID0 and also “mirroring”. As the name indicates it’s about mirroring the harddrives where you primarily focus on operating security. Data is parallely written to both harddrives at the same time and if one of the harddrives would stop working the remaining harddrive is used. The broken disk is then replaced and then the controller card handles the rebuilding of the RAID-unit and after a while you have a mirrored drive once again. Even if the link is broken when a harddrive is broken, no data is lost and if you have an extra harddrive plugged in it automatically handles the data controlled by the broken disk. You can also use a so called hot-swap which means that you can exchange the broken harddrive during operation, without having to turn off the computer.
RAID0+1
This form is a combination of the first two where it takes at least four drives to create the RAID-unit. Just as you’ve already had figured out it’s about a link in RAID0 at the same time as you’re mirroring it all in RAID1 so that you keep both performance and security.
JBOD
JBOD stands for “Just a Bunch Of Disks” and it’s simply an amount of harddrives linked together using what you call “spanning”. It’ll still be one unit and data is written to the first drive until it’s full, then it continues on harddrive number two. Just as with RAID0 you lose all data if one of the drives break, but they can be of different sizes and you use all the available capacity.
RAID5
RAID5 is just as RAID0 a form of “striping” of data on three or more harddrives (depending on the controller card’s capacity) but with the difference that operating security is kept by the fact that all data is separately saved from the parity information on different physical harddrives. If you have three drives, all the space is used on two of them and if you have four harddrives, data is kept on three of them and so on. This form can also be combined with hot-swap for exchange of a harddrive during operation, though the rebuilding of the RAID-unit takes a lot more time than RAID1 for example, also that you can receive bad performance just then. This is a very popular form of RAID that is commonly used in servers that manage databases and such.
To access the controller card’s BIOS you press CTRL+F when you see that the information about the keys is available on the screen. Then you can see a main menu where you can see what harddrives there are, what form of RAID they’re on and also the ability to create or remove a RAID-array or configure the controller card. Begin by choosing the first alternative, “View drives assignments”, to see if the harddrives connected to the card are working properly.
In my case I have two drives connected and they’re working properly as you can see in the right picture.
The menu alternative that lets you define an array first shows all the existing arrays configured on the controller card. In my case there are naturally none, and then you have to continue by choosing one and pressing Enter.
The configuration itself is straight-forward where you first of all choose what type of RAID you want to create. Since I have two harddrives that I want to mirror i choose RAID1 and then go down to the list showing available harddrives, and allots my new array these two disks. When this is done I press CTRL+Y to save the configuration.
If you have a third disk connected to the controller card, you can let it stay there without choosing anything. If the system finds a harddrive in operation is sees the disk as a so called “hot spare” and is used if one of the other two in your RAID1-array stop working. It would be like you put in a new one, but instead it uses one that is already in the computer.
You will then be sent back to the menu where you define arrays and then it’ll display that you have an array configurated in the list. If this is not the case, you’ve forgotten to save in the previous step, which means that you have to do it again. Note that you have to mark the array as a “bootable” one if you want to boot from it, and then exit by pressing ESC.
The computer will be rebooted and you will once again see the messages on how to get into the controller card’s BIOS. You’re not supposed to do this again, but enter the computer’s BIOS to define in what order and what media the computer will boot from. As you can see in the picture the RAID-unit “FT SX4000” is shown and you choose this as the first unit.
Please note that if you haven’t installed an operating system on the computer you may have to choose another unit as the primary bootable unit, or choose the CD- or DVD-player as the secondary unit if you computer can’t boot using the RAID-unit.
The next step is to install an operating system and for you who’ve never handled RAID or SCSI before, you’re probably not familiar with the requirement to install drivers during the installation to make the installer find the harddrive(s).
I’ve chosen Windows Server 2003 as a testing installation since the article is describing a server. In just about the beginning of the installation an alternative will be shown that says if you have a driver for a unit that will be used by the installer, you have to press F6 to choose it. Do this when the screen displays the message and then put in the floppy disk with the drivers that comes with the product. Mark the choice that fits your operating system and continue the installation as usual.
When you now come to the part where you select the harddrive to use as the installation disk, you’ll see a harddrive in the window. The harddrive is actually the RAID-unit, but to Windows it’s one unit. I choose to create two partitions, one for the system with 10 GB and one for data on the rest of the free space. I don’t create it here but wait until the operating system is installed, because it’s faster to format it in Windows. Then you just have to complete the installation as usual.
Please note that you have to define and install the driver before the installation, even if you have Windows 2000 or Windows XP, since they’re not included in the operating system from the beginning. If you don’t do this you won’t see any harddrives available at all.
Now I’ve showed you what components you can choose and how to put your own server together, also how to start the installation of the operating system. What operating system you choose depends on what you’re going to use the computer for, the budget and what experience you have of them. Windows Server 2003 is not the cheapest alternative, and an alternative is some Linux distribution where Red Hat is simple to begin with if you haven’t used Linux before.
Personally I’m a spokesman for security, especially if you’re responsible for operation in a company. You sleep very well at night knowing that there is redundancy in the systems and it’s not falling apart along with important data. As I said in the introduction you can complement it to get it extra secure. Begin by connecting a UPS with a connection to the machine so that it turns off itself by control if there’s an interruption in the power lines for a longer time. If the computer is not properly shut down you can get corrupt data on the harddrives and if you’re really unlucky the hardware can break. Note that mirrored drives in RAID1 aren’t helpful against data corruption, it just means that you get corrupt data on two harddrives instead on just one.
Always have one or a few harddrives on the shelf if something would happen. If it’s such a bad situation that you can’t save the data during operation you can at least get back up again fast if you have fresh harddrives as backup. This makes me begin my chanting about backup and how important it is. Even if you have RAID1 in all the servers or mirrored in some other way, you’re never really secure. It could be because of data corruption as I mentioned earlier on, or something could be stolen, burnt down or destroyed in some other way. Preferably backup every night on something that has been changed and most preferably a full backup once a week. Keep the tapes or the media in a fire-safe locker, in other premises or in a bank safe. Note that it’s your company on those backups.
When you’ve managed to check the tips above you can install the services you want on your server. You probably want to share folders with files, maybe a printer or two and eventually running a little intranet. Note that you can’t run anything on this server that requires extreme harddrive performance, which wouldn’t work very well. If you are going to do it I recommend RAID0+1 or RAID5 instead. I think that you shouldn’t use RAID0 on a server with critical business information.
You can never get too much network performance and this server has two network cards with gigabit speed. There’s no bigger difference in price today and I think that you should at least use it between the servers today. You can use 100 Mbit to the clients, but linked to a switch with gigabit speed via a gigabit port. A smaller gigabit switch with eight or sixteen ports is not particularly expensive. Also think of connecting network equipment like switches and routers to a UPS so that the servers can keep communicating with each other even during power failure.