Some day a brilliant geneticist will discover a gene present in all masculine people that makes us want to do things bigger than before. That very gene drives us to the verge of insanity for goals that may not ever actually make our lives better. I think it also has something to do with why most redneck deaths begin with the words “Hey man, check this out!”

Still, in my quest to satisfy this genetic craving (oh yes, it’s all the genes fault believe me!) I’ve undertaken the challenge… picked up the gauntlet… to build a fast affordable 1.5 TB (terabyte) RAID array. Since I work with graphics and am a file whore, I will actually put this to use although I expect it to carry me for about 6-8 years. Christening it was a particular challenge. Many names were recommended by friends because afterall, such a machine deserves a title worthy of a king. Well after much thought I came to my conclusion. Since this system represented almost limitless capabilities for storing knowledge and history, I had to respectfully name it after one of my favorite literary characters: Albus Dumbledore.

So back to the technology: In this quest I’ve learned a few things. One is that my trusty an faithful linux can actually let me down! (I’ll explain.) Another is that it takes a long time to initialize a 1.5TB RAID. Are you as shocked as I was? Indeed:

Personalities : [raid5] md0 : active raid5 sdg1[7] sdf1[5] sde1[4] sdd1[3] sdc1[2] sdb1[1] sda1[0]
1465175424 blocks level 5, 64k chunk, algorithm 2 [7/6] [UUUUUU_]
[=>……………….] recovery = 5.1% (12510368/244195904) finish=353.9min speed=10906K/sec
unused devices:

So while we patiently wait; the hardware for those *-philes:

  • 550W Power Supply
  • New full tower chassis (with some case mods to support the hardware better and a number of spliced power connectors since a standard power supply only comes with so many)
  • 7 new Western Digital 250GB SATAII drives
  • 6 SATA power converters (since the PS only had one)
  • 1 very old Maxtor 14.4GB hard drive for a boot devices
  • 2 Promise SATA300-TX4 PCI adapters (a bear under linux at first, but we’ll tackle this) which lucky for me come with 4 SATA cables each
  • A trusty (for the previous owner) Tyan Tiger-133 Dual-PIII 800 Motherboard, offered to the cause by said previous owner and long-time buddy for an amazingly low price of $50 (with 768MB of RAM!)

Now first thing I have to say is that I am quite annoyed with the Linux difficulties I ran into but I understand how they happened. The short is that somewhere along the line (after 2.6.11) support was dropped for this Tyan motherboard. (Inadvertently by a bright penny of a devevloper I’m sure.) I’ll discuss the issus below. So as it is, I have to stick with 2.6.11 for now. This limits my distribution options because while I could do Gentoo and downgrade the kernel, I just don’t want to take the time to jump through the hoops. So the result? Fedora Core 4. Hey, after these many years (my first distro was Slackware on 1.0.27) a distro is a distro is a distro.

So what’s the problem with the Tyan you ask? Well basically it doesn’t detect the PCI bus. I am not kidding, lspci outputs nothing. No PCI devices are detected. This will occur with any kernel between 2.6.15 and 2.6.18.

[jbly@albus jbly]$ lspci
[jbly@albus jbly]$

Now, if you were to run 2.6.12 you would actually get PCI bus enumeration. However your network card won’t work. Believe me, strange as it may soundd I tried two different network cards, multiple cables, switch ports and ultimately concluded it was something in the voodoo of the kernel/driver. Still, 2.6.11 works beautifully.

So, now that we have that issue tackled here comes what I expected to be the real challenge: the promise controllers. Linux support is said to be minimal but I think that is novice users talking. Compiling a kernel is not that hard for me (as I said, I just hate how long it takes) so I downloaded the source tar ball from Promise. It came through with shining results. That is, with the exception of a momentarily cryptic error message:

ulsata2: Unknown symbol scsi_remove_host
ulsata2: Unknown symbol scsi_unregister
ulsata2: Unknown symbol scsi_register
ulsata2: Unknown symbol scsi_scan_host
ulsata2: Unknown symbol scsi_add_host

Ahh poor foolish me who compiled SCSI support as a module. “modprobe scsi_mod” and I was back on track. dmesg filled with a line of disks and I was off to create my 7 type fd partitions. In truth I gloss over that but it took some serious brain power to think through the situation and this is ultimately the whole reason I post this! I pray perhaps I can save one other the peril that is configuring this driver. Oh and btw, if you compile it on kernels later than 2.6.13, you should go into pdc-ulstata2.c and remove the line about scsi_set_device() because it’s no longer needed apparently.

And the final number? 1,442,184,636 1K blocks.

Would anyone argue that the most lovely thing about this is that it has actually gone over df’s ability to do pretty formatting? I believe that’s a success! So raise your glasses.. here’s to the next 6-8 years!

(Well, at least when it finishes bringing up the parity disk… 11.2% now)