IDE RAID Examined
Bender writes "The Tech Report has an interesting article comparing IDE RAID controllers from four of the top manufacturers. The article serves as more than just a straight product comparison, because the author has included tests for different RAID levels and different numbers of drives, plus a comprehensive series of benchmarks intended to isolate the performance quirks of each RAID controller card at each RAID level. The results raise questions about whether IDE RAID can really take the place of a more expensive SCSI storage subsystem in workstation or small-scale server environments. Worthwhile reading for the curious sysadmin." I personally would love to hear any ide-raid stories that slashdotters might have.
At the company I work for, IDE RAID has become somewhat standard because we're basically cheap... At least it's standard on the servers that are fast enough to support it. The rest use dd to copy partitions between backup drives. My boss calls it "RAID point five" We lovingly refer to it as the ghetto network.
I ran an IDE RAID, one of the first, a few years ago. It was a 3ware RAID-1 controller. I thought it would be useful because I had gotten sick of losing data on a drive failure. I didn't have the money (or patience :) for a good backup solution and Linux RAID hadn't matured.
... never have I seen 2 drives go down simultaneously. Nor have I seen a controller malfunction in a way that damaged the drives (though I've heard of it from other people).
Everything was fine for awhile. After a few months I lost a drive, replaced a drive and it remirrored fine. Same thing happened a year or so later.
Then one day my controller fried. Nothing else in the system went down, but some kind of surge hit the 2 drives from the RAID controller. The controller still worked but neither drive was accessible, either as RAID drives or as single drives. Tried numerous tricks, eventually gave up.
I've run SCSI RAID in boxes I admin at work
All in all, I decided it wasn't worth it. I am currently doing Linux mirroring in combination with journaling filesystems on one box, and Windows mirroring on another.
It is more productive to voice thoughtful opinions (reply) than to judge (moderate) others.
For performance reasons, I haven't seen a single vendor that actually expects you to put two drives on a single interface, and infact, I've found that the 3ware Escalade controllers just won't let you. When they advertise that it can two drives, it usually means it has two dedicated interfaces, therefore have the potential for completely saturated a single port all by itself (which is hard to do with ATA/100 and ATA/133 drives that cannot even burst that high -- get good drives! big caches too!)
Pete
You would think that after 130 graphs comparing the controllers he could come up with a stronger conclusion than "I cant really decide which one is the best"
"The defense of freedom requires the advance of freedom" - George W Bush
their big old file server had 5 hard drives in it, but was only using 1 in windows! Being the smart boy that he is, he dutifully shuts down the machine, removes one of the drives, puts it on the broken machine, formats and loads windows on it.
So how did he decide which of the 5 drives he was going to pull ?
There is also the reliability factor. SCSI drives tend to be more robust.
Brevity is the soul of wit
-- Polonius
My experiences with IDE RAID have been pretty darn good. Benchmarking my Desktar 60GXP drives in Windows 2000 last year showed that I was getting read speeds in striping mode (between two drives) at faster rates than the fastest seagate Cheetah SCSI drives. Times have probably changed now though.
I started with a KT7A-RAID mobo. The important thing is that you get the cluster sizes just right for your particular partition. I used Norton Ghost to image my drive and try all sorts of different variables. In the end I had very satisfying results. Since I switched to Linux, I stopped using RAID-0 (yes, it is supported with this device!). I found that ReiserFS and the multi-drive Linux filesystem on these drives seemed to be just about as fast without having to hassle with soft-RAID controllers. It is probably due to my system RAM though. I couldn't seem to get Windows 2000 to make the most of 1024 MB without using that swapfile. Linux seems to avoid the swap altogether and uses static RAM instead. It is very nice having the extra IDE channels though. Without them, I probably wouldn't have 4 HDs hooked up right now.
I bought that about a while ago when the maxtor 160GB 5400RPM drives started to ship.
:) Reminds me when I plugued my first gigabyte drive in my amiga and saw big numbers :)
:).
I had to build a datacenter and storage price was the main issue. I had to have something cheap, yet hold a LOAD of data. Problem is personally I hate maxtor drives, I always found the more or less reliable (but drive experiences varies from a person to another so..). Anyways at that time maxtor were the only one offering 160GB drives, at a decent price/meg, and although 5400RPM is quite slow for access time, the main issue was cost so I could take a hit on access speed as long as "streaming" speed was fast enough.
the Adaptec 2400A card was the best at the time, simple, cheap efficient, it had 3 bad sides for my application, no 48Bits LBA support (130GB+), no 64bits PCI version (I was using a K7 thunder, and that chipset will slow down the pci bus to the slowest card connected to to bus, and since I wanted all available bandwidth to be thrown to the 64bits gigabit card, I couldn't accept using 32bits), and finally, no more than 4 drives. I wanted to break the terrabyte limit, so let's say I would have used 2 of those cards, it wouldn't have been price-performance-wise since the 2 would have shared the bus and I would have lost 2 drives for raid-5 instead of one with a 8 drive setup. but the performance of the Adaptec 2400A was the best. Still looks like the best overall today, yet I dunno if they are supporting 48bits LBA?
Anyways the 3ware 7850 was an excellent choice. Although their tech support is more or less good (like most tech supports) especially for real bugs and not just standard drivers reinstallation issues, the response time and sales people were very nice and professionnal. I got surprising results from the array, where I thought it would run like molasse, I was getting over 50MB/sec sustained non-sequential reading if I recall correctly. And the tools are very good, rebuild time is about 3-4 hours with 8x160GB @ 400GB filled on the drives, there are email alert tools and web interface to the host machine to check diagnostics. Overall it's a nice system and I'm sure the 7500 series are even better.
Oh and on a "funny" note, windows shows 1.1TB available in the explorer window, not 1134GB
As for the maxtor drives, I didn't take any chances, I ordered 10 to get 2 spares, 2 blew off in less than a month, but didn't have any problems since then, I guess if you can afford the time, doing a 1 month burn-in test with non critical data isn't overkill. usually they SHOULD blow up one by one so you could rebuild the array
--- Metamoderating abusive downgraders since my 300th post.
Thats bullshit. Post some links to benches that back that up.
Two 80GB WD special edition drives in RAID 0 (7200RPM, 8mb cache) rarely burst over 90MB/s. They usually have a sustained transfer of ~50-65MB/s.
Additionally, your seek time is going to suck. I gaurantee its not going to be under 11ms. You cpu utilization during transfer will prolly be around 4% in the asolute best case senario and 11% on average. This is becuase, no matter what you think, all raid cards under ~140$ do the calculations for the transfers in software, not hardware. All you have is a controller card with special drivers. You wont come even close to beating the overall performance of a scsi 160 drive, or SCSI 160 RAID 0 setup.
Ummm, no.
Try getting sustained data transfer rates out of an IDE RAID under load. It won't happen. You'll stutter. *boom* goes your realtime process.
SCSI RAID, on the other hand, streams happily along with very little CPU load.
STOP . AMERICA . NOW
We've run several big RAID-5 setups on 3ware cards. When I say big I mean 1TB+ on each card. To do this we've used the 100GB+ drives available (120GB - 160GB) The biggest problem has been drive failures. Out of the 40 drives I think we've lost 6 in less than 1 year. In only 1 case have 2 drives gone bad at once (RAID-5, we're covered if 1 drive fails), but lost around 1TB of data. Luckily the data could be reproduced but took two weeks to regenerate.
It's WAY too easy to build massive arrays using these devices. How the hell are you supposed to back them up? You almost have to have 2, one live array and 1 hot spare array. If you think you're going to put 1TB on tape, forget about it. If you have the cash to buy tape technology with that capacity and the speed to be worthwhile, you should be buying SCSI disks and a SCSI RAID controller.
I don't quite understand where this Inexpensive crap came from. RAID was around long before IDE RAID controllers started showing up and of course SCSI RAID arrays almost always use very expesive disks. It's Redunant Array of Independent Disks, always has always will be.
It probably comes from the original reseach paper... A case for redundant arrays of inexpensive disks in the Proceedings of SIGMOD International Conference on Data Management, 1988. (Pages 109-116.) SCSI drives were an inexpensive option compared to other storage technologies that offered high performance and fail over safety.
Over time the acronym expansion was changed to become "redundant array of independent disks" as RAID become more popular (and affordable) for smaller systems.
Some references: here, here and here
I'm using IDE raid on my home desktop right now, but I'm using software raid as opposed to a hardware controller. I have two Seagate Barracuda ATA IV 40GB hard drives hooked up as masters to my primary and secondary motherboard IDE ports. I also have a DVD-ROM hooked up as secondary slave, and a Promise Ultra133TX2 controller with a CD-RW hooked up to its first port. Both hard drives are sectioned into a 3GB primary 1st partition and a 34GB (yes, the drives are only 40GB when you're in marketing land) 2nd primary partition. Windows 2000 is installed on the first drive's 3GB partition, and redhat linux 7.3 is installed on the second drive in the same place. Both OSs share the combined 68GB RAID 0 set, which is formatted with NTFS, made from the combined second partitions. The only problem is that linux can't write to the array because NTFS write support under linux is currently "DANGEROUS" according to the driver's author and I keep important data on there. (Yes, I know about the dangers of using RAID0 and I back up regularly.) It'd sure work a whole lot better if that driver were finished, though. (hint hint, Legato Systems, Inc.) ;)
:D After a quick format with NTFS (the partiton was too big to format with FAT32), I was in business.
/dev/md0
/dev/hda2 /dev/hdc2
/etc/raidtab, ran raid0run /dev/md0, and added a line to /etc/fstab. (I read online that WinNT 4.0's software raid driver uses 64K chunks.)
;) As a bonus, I also get to keep my standard partition table as well as compatibility with non-M$ disk editing/management/recovery tools.
Getting the two OSs' software raid drivers to play nicely together was an "adventure", mostly due to Win2K's insistance on turning the disks into "dynamic disks" before letting me use its built-in RAID functionality, meaning it wanted to wipe out my old partition table, replace it with a single partition taking up the entire disk, and create a new system of partition organization inside the dummy standard partition. After a lot of reading, I found out that Windows NT 4.0 supported "stripe sets" using standard partitions, and that Windows 2000, when installed over an old copy of NT4, would support the "legacy" software RAID drive. Windows 2000 would not, however, allow me to create new legacy stripe sets for compatibility with other OSs. Stupid Micro$oft. So all I had to do was fake Win2K into thinking it had been installed over an old copy of NT4 which had been using its stripe set functionality.
The first thing I had to do was create partitions. I opened up linux fdisk and allocated 3GB on each disk to my OSs, one for linux and one for windows, and created two partitions, each one taking up the rest of the space on its disk, and set their types to 87h (NT stripe set [thanks to whoever put the L command in linux fdisk!]). After installing Windows 2000 on the first disk's first partition, I needed to get my hands on a couple of tools that didn't come with windows 2000: Windows NT 4 Disk Administrator and MS's fault tolerant disk set disaster recovery tool, FTEDIT. After spending about 6 hours searching online, I finally found a download site for FTEDIT - MS's web site says you can get it free from them, but it provides no download link. NTDA was a bit easier. Since MS service packs replace OS files, and somewhere in NT4's history a bug or problem had been found in NTDA, that file was in the service pack 6a for NT4. Service packs check to see if you're using the correct OS _after_ they decompress themselves, and they're nice enough to display an error message telling you this ("Whoops. You just wasted a whole bunch of time downloading a huge file you didn't need. Sorry!") before they delete the decompression directory. Figuring that out took a while, but snagging the executable during decompression was easy.
I ran NTDA, which populated the "missing" DISKS key in the windows registry (Win2K stores disk information in a different place from NT4), and told FTEDIT that, yes, I really did already have a software RAID 0 set on those drives, and that windows NT had died on me and I had to restore it. After a reboot, "Drive D" appeared in my computer. 68GB and unformatted. YAY!
Getting linux to see the array was much easier. I added
raiddev
raid-level 0
nr-raid-disks 2
persistent-superblock 0
chunk-size 64
device
raid-disk 0
device
raid-disk 1
to
Btw, yes, I know linux has support for MS's dynamic disk scheme. I enjoy tweaking and doing new things, even if it means days spend reading about Windows.
"So," you're probably wondering, "why did Erpo spend all that time setting up a RAID0 set (presumably for extra performance) and then go and do a stupid thing like put a DVD-ROM drive on the same ata cable as one of the disks when he has an extra ata port on his add-in controller that he's not using?" Thanks for asking. It's because Promise's bios on the Ultra133TX2 card was broken. The company "Promised" me it would allow me to boot from CD, but in reality it only will let me do so when I want to boot from a windows installation CD. Not just any windows installation CD, either. It had to be Windows 2000 Professional or XP, which I refuse to use.
It wouldn't recognize my Windows 98 SE cd, or any of my linux distros. I didn't have a choice about the DVD drive if I wanted to install linux. Just now, months after I got the card and sent promise and email, they released a bios update that claims to fix the issue. If it works I'll be moving my optical drives around. Even with the DVD drive, the performance isn't too bad - about 80MB/sec at the beginning of the disk, and it slowly drops to 50MB/sec at the end.
Here are the hdparm results of the two machines I currently have that run Linux Software Raid.
/dev/md1 && hdparm -t /dev/md1 && hdparm -t /dev/md1 && hdparm -t /dev/md1 && hdparm -T /dev/md1 && hdparm -T /dev/md1 && hdparm -T /dev/md1
/dev/md1:
/dev/md1:
/dev/md1:
/dev/md1:
/dev/md1:
/dev/md1:
/dev/md1:
/]# hdparm -g /dev/md0 && hdparm -t /dev/md0 && hdparm -t /dev/md0 && hdparm -t /dev/md0 && hdparm -T /dev/md0 && hdparm -T /dev/md0 && hdparm -T /dev/md0
/dev/md0:
/dev/md0:
/dev/md0:
/dev/md0:
/dev/md0:
/dev/md0:
/dev/md0:
The first machine (brainstem) has SCSI Raid-5 with 18 GB drives. The second machine (heschl) has IDE Raid-5 with 120 GB drives. It's used to serve music and pictures (sorry, no pr0n - just digital camera pics) to my local network.
Machine 1 (SCSI)
-----------------
brainstem:~# hdparm -g
geometry = 58240/2/4, sectors = 141499392, start = 0
Timing buffered disk reads: 64 MB in 1.83 seconds = 34.97 MB/sec
Timing buffered disk reads: 64 MB in 1.83 seconds = 34.97 MB/sec
Timing buffered disk reads: 64 MB in 1.83 seconds = 34.97 MB/sec
Timing buffer-cache reads: 128 MB in 0.85 seconds =150.59 MB/sec
Timing buffer-cache reads: 128 MB in 0.86 seconds =148.84 MB/sec
Timing buffer-cache reads: 128 MB in 0.86 seconds =148.84 MB/sec
Machine 2 (IDE)
----------------
[root@heschl
geometry = 42304/2/4, sectors = 937765376, start = 0
Timing buffered disk reads: 64 MB in 3.14 seconds = 20.38 MB/sec
Timing buffered disk reads: 64 MB in 3.24 seconds = 19.75 MB/sec
Timing buffered disk reads: 64 MB in 3.19 seconds = 20.06 MB/sec
Timing buffer-cache reads: 128 MB in 1.09 seconds =117.43 MB/sec
Timing buffer-cache reads: 128 MB in 1.09 seconds =117.43 MB/sec
Timing buffer-cache reads: 128 MB in 1.10 seconds =116.36 MB/sec
Linux - Because Mommy taught me to Share.
Promise RAID is actually a software RAID. Don't let the fancy BIOS thiny fool ya. Here's a little story:
:) Those jokers are REALLY SLOW to recompile their kernel modules.
I had a Promise Ultra 100 controller in a system and loaded Linux on it. I tried to get the thing ot run RedHat 7.3. This was back when 7.3 was pretty new... like about 3 months old. I wanted to use the RAID controller since I had nothing else to do with it at the time and I knew Promise was supporting Linux.
Turns out they didn't have a driver for 7.3... just 7.2. I went around and around with them asking them to recompile the driver for me after I was mentioning the merits of oper sourcing drivers and such. Finally I gave up and bought some Maxtor PCI IDE controller out of the CompUSA bargain bin for like $10. It looked familiar...
I pulled the Promise card out and was about to put the Maxtor card in when I realized they were both the SAME DAMNED CARD! It was then I realized the RAID controller depended on software and not some fancy hardware thing. It was then I understood why Promise doesn't want to open source their driver!
Anyway, I put the bargain controller in and used a Linux software RAID. Short end to the story. I got my RAID and it worked. Better end, it was software and I could configure it using Webmin! That probably what you should do. Let the system see the two drives and then do the Linux software RAID... there is a redhat 7,3 driver out on the promise website... but I don't see a redhat 8.0
So yeah, you could probably spend your money on other things to get better performance, but that's entirely besides the point. What could you spend that money on to get better data reliability?
First off, they've failed to note that some of their contestants are in fact just IDE controllers, with the RAID functionality implemented in the software driver (WinRAID, like WinModems), whereas others are Hardware. I don't know all four products well, so I'm unsure on at least one of them as to which are which.
They tested CPU utilization, and seperately various speed tests, but never a comprehensive "loaded system" test. As expected they ranked the Adaptec (a true hardware RAID) lowest, while ranking the WinRAID's higher. This couldn't be further from the real truth. Sure, the idle P4 cpu does a great job of fast software RAID compared to the embedded RAID ASIC on Adaptec's card. However, if you had a heavily loaded server machine, where the processors were loaded down doing other things (say SSL-encrypting for an secure web server), the machine with the Adaptec would trounce the others, as the RAID processing speed will not decrease while your applications are using most of the CPU (or depending on the device driver's pre-emptability, it could be the other way around, that the CPU simply wouldn't be as available to your CPU-hungy SSL server as it's busy with the RAID).
11*43+456^2
I have a dual Xeon 2.4GHz 4U with dual 8 channel IDE controllers connected to 16 160GB IDE drives under Windows 2000 arranged as two separate logical drives.
I'm able to read sequentially from very large files (20GByte+ files) at a continuous rate of over 180Mbytes/sec.
The controllers are 64-bit, 33MHz PCI cards and the high speed sequential reads are exactly what my application demands. SCSI would have added nothing to the performance of the system except an additional 60% to the cost.
Find me a 2.5TByte dual Xeon 4GByte RAM 4U box with SCSI drives for well under $10K and I'll give SCSI another look.
Once serial ATA comes out I think you'll see even more IDE based RAID being used.
You apparently didn't read the article, and have no current experience with IDE RAID systems. Take at look at the sustained tranfer rates of the 3Ware system. They meet just about any SCSI controller you're likely to find when paired with good 7200RPM drives. The myth that SCSI is the only way to get reliable sustained transfers is just that -- a myth. SCSI's only advantage now is reduced cable clutter and having up to 15 drives on one controller, but who needs that many drives these days when 120GB drives are available for next to nothing?
In the end they will lay their freedom at our feet and say to us, Make us your slaves, but feed us. - Fyodor Dostoyevsky
Sort of reminds me of the place I work.
A week after I was hired the computer with the sales database died. I'm the computer guy, so I'm supposed to fix it. I was a bit surprised at what I found (keep in mind this information is supposed to be fairly important information to the company).
The computer had around 256 megs of ram. Was a database server (for sales info) that around 3-4 people were connected to at any given time. Was running WINDOWS 98 using striped IDE hard drives. Among other things that this machine was used for at any given time was graphic editing in Corel Draw (wonderfully stable too I might add), and crash prone MS Office... as well as every God awful freeware screen saver ever found, and many other useless stuff that most people didn't even know what they were supposed to do. Apparently the machine crashed at least 3 times a day, and no one thought there was anything wrong with this.
So one drive dies, and surprise the backup is done on a jazz drive that never worked right. Apparently the girl who used the computer never really read that error message regarding the Jazz drive every morning when she came in. So we had a wonderfully redundant backup with a different Jazz disk for each day of the week with nothing but garbage on all of them.
When I actually put all the pieces of the puzzle together, I just started laughing at how ridiculous the setup was.
> I don't quite understand where this Inexpensive crap came from.
RAID (Random Array of Inexpensive Disks) was as opposed to SLED
(Single Large Expensive Disk). (The term "Random" means the same
as in RAM -- i.e., that you can access any part (any drive, in this
case) at any time.)
> RAID was around long before IDE RAID controllers started showing
> up and of course SCSI RAID arrays almost always use very expesive
> disks.
"expensive" is relative. (Instead of thinking of SCSI as the only
other option besides RAID, try to remember that there were larger
and more expensive disks at one time.)
> It's Redunant Array of Independent Disks, always has always
> will be.
It's not necessarily "redundant" at all; some RAIDs are done just
for performance reasons, with no redundancy. (Personally, I am
more interested in the redundancy, however.)
Cut that out, or I will ship you to Norilsk in a box.
Winmodems do the calculations through software because they lack the chips on the card. That's a horrible comparison. These ATA RAID cards have everything built on the card. The Promise SX6000 even has an on board Intel i960RM RISC processor for XOR calculations.
CPU utilization of these ATA RAID cards is negligible, so if you really need that extra 2 or 3 percent, just get a faster CPU.
The main advantages that SCSI has for performance is the individual drive performance (15,000 RPM and 4.5ms access time as opposed to 8.5) and command queueing. The transfer rate isn't a big issue if you're transferring it over the network. You're still limited to your PCI bus speed and the network speed. Even on a gigabit backbone, that's roughly 65MB per second of thoroughput in real world performance. The performance is only a factor for local reads/writes and access time.
The cost of a 1TB RAID 5 IDE setup (6 200GB drives, Promise SX6000 card, removable enclosures for the drives, and 128MB cache) = $2,450
The cost for a 1TB RAID 5 SCSI setup (8 10,000 RPM 146GB Cheetahs and an Adaptec 2200s dual channel card plus the hot swappable enclosures (add at least $700 here) = At least $9,350
If price is no object, go with SCSI. If you're running an enterprise SQL or WWW server with thousands of users, the access time of the drives is a huge benefit, so go SCSI. If each server must have more than 1TB of fault tolerant storage space, go SCSI because it can house enough drives per card to accomplish this. For everything else, go IDE.
As an FYI, I'm running the described ATA RAID 5 setup with 120GB WD Caviars with 8MB buffer, a dual port 3com teaming NIC, 512MB RAM, and an Athlon XP processor as a highly utilized file server. Runs like a champ. No issues and the boss is incredibly happy with the price tag. $2,800 to build the whole server. It's rackmounted under our incredibly expensive Compaq Proliant ML530 which is just doing SQL. If a drive goes out, I'll get an email notification. I simply remove the dead drive, replace it, and rebuild. No rebooting needed.
-Lucas
Why hasn't the ArcoIDE solution caught on like wildfire? It provides mirrored disk capability with absolutely no visibility to even the motherboard, much less the OS. I've been running it for years and it's great. Mine is the PCI slot model that simply uses the slot to get power to the card. One IDE cable from the motherboard to the card, two cables to the two hard drives.
And there's all sorts of alarming options -- LED's on the card, LED's on a front panel bezel, audible screech, Form C contacts for you industry types ...
I don't get it.
One simple rule for its versus it's
So I was surprised reading the review to see the Adaptec and 3Ware neck and neck in the RAID 5 area. 3Ware's usually have no competition in RAID-5 since their firmware and HW rock.
Then I found out WHY they were so close:
The 3Ware cards are 64-bit cards while the Adaptec's are only 32-bit. 3Ware cards can hit 70MB/sec writing and over 150MBsec reading with 8HD's! If they ever get to 66MHz, I expect their performance to go even higher.
If you want to see better benchmarks that fit with reality, check out the XBit Labs Review
Top Most Bizarre/Disturbing Error Messages
Try random access. Then you'll see the difference. Sequential is optimized by just about every cache out there - you're NOT benchmarking the drives with sustained transfer! You're benchmarking the caches!
A witty [sig] proves nothing. --Voltaire