The Great RAID-5 Home Project - Part 2
Back in this post I told you how I had been snookered by Fred Langa into thinking that it was a piece of cake to put together my own home terabyte server. Of course, what Fred failed to mention was that he didn’t put together a real useful server - he just built a big box of disks.
My feeling is that a useful home server needs to implement either RAID-1 or RAID-5 to give you a nominal level of protection, and there is where all the trouble comes in. After suffering through a couple balky freeware platforms, I decided to take advantage of my student MSDN account to pick up a free copy of Windows Server 2003, which offers software RAID-5 support. I then stuffed my four cheap Maxtor 300 GB drives into a generic case, and started configuring my system.
I immediately ran into a couple of nasty problems:
- These 7200 RPM Maxtor drives run hot. I initially stacked them in the bottom 3.5” drive bays, where they were ventilated by a single fan. Because they were so tightly packed the single fan couldn’t keep them from overheating - big time.
- Software RAID is incredibly slow if your drives are sharing IDE ports. If I put all four drives on my two motherboard IDE ports, buildind the array was looking like a 24 hour job - and resynching after a crash could take just as long. And by crash, I include something as non-dramatic as an indavertent loss of power or a software botch-up
In this post I’ll show you how I solved both of those problems, and am now running pretty well with a 800+ GB RAID-5 array.
Take four high-RPM drives stacked on top of each other, add a cheap 40G drive to hold the O/S, throw in five standard IDE ribbon cables, and you have recipe for heat. My case came with a fan up front, and I added two to the rear, in addition to the power supply fan, but the drives were still ready to glow in the dark. I needed to take a few steps to resolve this.
Step one is pretty straightforward - round cables. Removing those big flat IDE cables and replacing them with round cables really helps the airflow a lot. I picked up these 18” single drive rounded cables at CompUSA for $4.99 per. By using the single drive cables I avoided having an unused second drive connector flapping in the wind. You can find equivalent cables pretty easily for a similar price.
As you can see in the shot below, the cables are still taking up a fair amount of space, but believe me, there is a lot more room for airflow.
Figure 1 - Rounded IDE Cables
The final step in heat management was to do a much better job of ventilating the drives. For another $10 per drive I bought these StarTech drive bay coolers. Each unit has three little fans that blow a steady stream of air over a single drive. They mount in your 5.25” drive bays (although not particularly well) and as luck would have it my case has four large drive bays.
Of course, this means I have to pull my CD-ROM drive, so I now use a USB unit when it is required. But this is a server, not a desktop system, so this isn’t as much an inconvenience as you might think.
There’s an additional bonus to be had from moving the drives to the upper bays. Not only do I have room temperature air blowing around them on all four sides, I also have them spaced out a lot better than when they were in the bottom bays in the case.
After a bit of a struggle to get the four cooling units in place, I end up with a case that looks like the one shown below. It’s a different look, but as I found out, it works!
Figure 2 - Drive Coolers In All 4 Bays
These are some pretty big adjustments, but when done, I was really pleased with the results. My drives now stay very close to ambient temperature, and although I have 12 fans up front on the drive bays, they are relatively quiet. I consider the heat problem to be solved - with one caveat.
Because of the exceptional cooling requirements of this system, it should be considered to be a bit of a tinderbox. That means I need to monitor it carefully. If a fan goes out or a drive starts heating up, I need to know about it ASAP. Fortunately, I can use the SMART reporting capability built into IDE drives to accomplish this using off-the-shelf software. More about this later.
As I mentioned earlier, I found that I need each of my four RAID drives to have an independent IDE port - no sharing - for performance reasons. Seems like an easy enough problem, right? CompUSA, Fry’s, and every other source imaginable sells Ultra 133 PCI cards that you can add to your system and provide extra IDE ports.
Unfortunately, it’s not that easy. It seems that literally every single manufacturer of IDE cards out there is using one RAID chipset or another, and when you install the drivers for their card in the system, they present as SCSI devices. Normally, this wouldn’t be a problem, but if you want to use the SMART monitoring feature of IDE cards, you are out of luck. I tested CompUSA’s private label card, SIIG’s 133 card, Belkin’s card, and Adaptec’s, and every one had the same feature.
Even more importantly, I don’t think that Windows can power down these SCSI drives when idle, which for a home server is really a shame. These drives are going to be idle most of the day, the extra heat and drag on their lifetime from failure to support power-save modes is a serious bummer.
This is not the kind of thing that shows up in a data sheet, but a fellow named Christian Franke on the smartmontools mailing list sent me this tidbit:
There is a method to detect at least the class of the card’s driver. Download and unpack the latest driver from the vendors homepage and examine the *.inf file. If the [Version] section contains “Class=SCSIAdapter”, it is unlikely that the drivers supports ATA SMART. If “Class=HDC”, then SMART should be supported.
That helped save a little time, in a negative way, by proving in advance that every card out there is using a SCSI interface.
Interestingly, the manufacturer for Belkin’s chipset provides a BIOS that supports a pure IDE interface, but I couldn’t get it to work with Belkin’s card - it’s possible that a generic version of a card using that chipset might do the job, but I couldn’t find one.
Oddly enough, help popped up from a very strange source. In my parts closet, I happened to have a SIIG 100 IDE RAID controller that I popped into my system as a last resort. Lo and behold, if you use the SIIG UltraATA 100 PCI with no installed drivers, it works on your system as a standard IDE controller, and provides the SMART monitoring capability and power-savings control that I crave.
Leaving Fry’s short $29.95, I plugged in my second card, and I was in business. I’m giving up a little speed for the sake of monitoring, but my RAID-5 server doesn’t need to be a performance king. If it can server up movies and music at a reasonable speed while providing safe backup, I’m happy. And the SIIG card does the job.
This card won’t be around forever though, and it makes me wonder about the future of SMART monitoring. More and more motherboard manufacturers are moving these same RAID controller chips onto their main boards, and there may come a day when you just can’t find a controller that supports SMART monitoring.
The Monitoring Software
There are plenty of choices for monitoring software, both free and commercial. A popular piece of freeware is SpeedFan, which will not only monitor your hard drives, but can monitor your fan speeds and motherboard temperatures.
Figure 3 - SpeedFan
SpeedFan is nice, and supports a wide array of motherboards and hardware. It is pretty versatile about the way it can flag you when things go wrong as well. One thing I didn’t like about SpeedFan is its inability to properly report SMART statistics, such as hours of use. Instead of telling me that my drive has 300 hours of use, it gives me the value 00000050BE, which is not so helpful.
A commercial tool that is relatively inexpensive called HDDLife is a little friendlier and a little easier to configure. While it doesn’t give me all the SMART monitoring information that I can see with SpeedFan, it does show me the important facts in a nice fashion.
Figure 4 - HddLife
As you can see, it gives me the drive temperature and lifetime hours of use in an easy to see manner, and combines the other SMART statistics into an overall health indicatory. HddLife also has some very nice reporting options, which include sending email when the temperature threshold or other figure (including drive space) is exceeded. And when things get bad, it can put my PC into hibernation mode or standby, hopefully preventing additional damage.
When I first started putting this server together as a RAID-5 server, my son Joey mockingly asked:
Are your Alanis Morisette MP3’s important enough to warrant a RAID system?
It’s an easy answer - yes. Take the Fred Langa big box of disks that I could have made with my four Maxtor drives. The only thing I give up to turn it into a RAID-5 system is 25% of my space - that’s what is required for parity data in RAID-5. In exchange, I am protected against single disk failure.
If I leave things set up like Fred did, I would have to mess around with partitioning my storage among four different drives, and any failure on any drive would be deadly. Or, I could turn the four drives into one volume using JBOD , in which case one drive failure would wipe out four drives of data. Seems like an easy choice to me.
My server is working well now, and I’m happy with its performance. I have one goal left for this server, which is to configure it so that it goes into standby when idle, and wakes up upon incoming activity on the LAN. I need to see if I can make that work in a household running a mix of Apple, Linux, and Windows machines. If and when I succeed, that will be published in Part 3.