Chipset Serial ATA RAID Performance Exposed
TheRaindog writes "Serial ATA RAID has become a common check-box feature for new motherboards, but The Tech Report's chipset Serial ATA and RAID comparison reveals that the performance of Intel, NVIDIA, SiS, and VIA's SATA RAID implementations can be anything but common. There are distinct and sometimes alarming performance differences between each chipset's Serial ATA and RAID implementations. It's also interesting to see performance scale from single-drive configurations to multi-disk arrays, which don't offer as much of a performance gain in day-to-day applications as one might expect."
I recently put together a rig with a K8V SE Deluxe. The chipset includes two SATA RAID chipsets: the standard VIA one and a Promise one. I've been absolutely floored by the Promise's performance (easily the fastest desktop RAID I've ever tested) and I don't see it anywhere in this review.
:) ), it's worth it. Nearly double the speed.
For those hankering for another opinion, setting up the SATA RAID was a breeze. It was literally set it up and forget about it. The servers at work were much more difficult to set up. If you have the extra money for a spare drive (mine is two WD 10,000 RPM HDs
It's not as big of a boost as you might think, because not infrequently you'll be reading enough data to require two consecutive stripes to be read (anything that crosses a typically 64k boundary).
Then you can be penalized for seeking your heads independently, because you need to pay your seek time separately for the second 64k of a given read.
RAID 0 is strictly about performance improvement. There is no redundancy at all. You can also combine 0 with 1 or 5 to receive performance increases as well as redundancy. Of course being the Guru/Newbie basher that you are you knew that already.
Don't forget that those RAID controllers are just toys for the kiddies. Industrial grade RAID controllers have on board processor and memory, and they do optimize the read access for RAID 1 arrays. Though they don't halve seek time on two disk arrays, they still provide noticeable speedup for reading.
Yes, and that it means it is stored in 2 locations. So when you want to look up 2 different parts of the game data, you can delegate each task to a separate drive, instead of one drive doing the read for both.
Actually RAID-0 is for a striped array of disks. So you can link 2 or more hard drives together, using both simultaneously. I believe RAID-5 (but don't quote me on this) is for doing the same, but with redundant drives in the event of failure.
Yes, I realize that the name is somewhat misleading, but just because RAID was originally intended for redundancy does not mean that it does not have performance enhancing modes. I happen to have a RAID-0 array on my home PC.
storage review did a writeup a while ago comparing RAID 0 performace to that of a single drive. more often that not you're better off getting a single, faster drive if you're looking for desktop performance.
I normally don't respond to ACs, but this one is just incorrect.
Yes, RAID {1|5|10} are generally used for their redundancy purposes, but RAID 0 is used because it offers improved I/O performance. It is certainly not used for redundancy because - guess what - it doesn't offer any on its own*. Go read this before you provide more misinformation.
* it can be used in combination with other levels - e.g. RAID 0+1 - to provide performance and redundancy.
I want to drag this out as long as possible. Bring me my protractor.
How does RAID 1 help loading times? RAID 1 is all about mirroring.
In essence, that's correct. However, because the same data is written to two (or more) disks, chunks of a single file can be read from multiple disks at once, much like with RAID 0. So while write times are the same as for a single disk, read speeds are higher.
Site & blog: http://www.mayaposch.com
That's what I'm waiting for... A nice hardware RAID controller on a 4x or more PCI-E slot would rock! And should be available on your typical consumer board pretty soon... No more wishing PCI-X wasn't just on expensive server boards... Check these out: http://www.areca.com.tw/products/html/pciE-sata.ht m
*drool*
That is not really true. There may be a very negligible increase in speed but data is not set up on RAID 1 as it is on RAID 0 specifically for performace increase. RAID 0 stripes data across the two disks while RAID 1 strictly makes an identical copy. If you want both you need to do RAID 0+1 which requires more than two disks.
How does RAID 1 help loading times? RAID 1 is all about mirroring.
Mirroring generally improves performance, which most users and most inexperienced engineers don't realize. Because you have the exact same data on at least two different spindles, you can transfer data with twice the concurrency, and at times approaching twice as fast. When reading a large file, for instance, if each disk can transfer, say, 10 MB/second and the file is 20 MB in size, the file can be loaded in one second with mirroring and two seconds without.
In addition, concurrency allows you to load two different files simultaneously on different disks. Not only do you get faster transfer times, you don't suffer from disk head seeks back and forth as you read the files. This can actually improve "load time" by much more than twice.
Since most filesystem operations are reads, the concurrency gained by mirroring usually helps immensely. However, writes do not suffer significantly either. When you write to a file on a mirrored filesystem, it obviously must be written out to both sides of the mirror. But, it doesn't take twice as long, as one might immediately think. Data can be written simultaneously to both drives, at a cost which is only marginally slower than writing to a single disk (assuming they are attached to different disk controllers/buses, as best practices dictate).
All-around, mirroring is very good for performance.
Hello.. did anyone bother to mention the difference between a basic RAID chipset, a RAID card, and a RAID card with XOR engine?
My somewhat bitter and basic description:
RAID Chipset - cheap RAID controller chip and the sacrifice is that it uses system processor power to work the RAID calculations.
RAID card - a little more expensive, however, has a basic RAID controller chip which offloads some of the processor requirement.
RAID card with XOR engine - a full blown chip that controls and processes the RAID calculations. More expensive but with the best performance without sacrificing CPU processing.
(1st sig) If this were a snappy sig, you'd be reading it right now. (2nd sig) I'm a karma whore. >Insert FUD here
In most cases, RAID is slower than single-disk access, and always will be.
This couldn't be less true. RAID 0 is *all* about performance. Its only other benefit is increasing the size of a virtual disk to N*disk size. RAID 1 is mainly about redundancy, of course, but the reason people use RAID 1 over RAID 5 is almost solely performance. It's safe to say that, in most cases, RAID 0/1 yield better performance than single-disk access. That's why people use them.
Just because you read Slashdot doesn't mean you have any idea what you're talking about!
As you've so well illustrated.
I could care less about a few percentage points difference in real world speed, but being able to up the reliability would be useful.
Specifically,
- What is the hit in doing RAID 5, and how does it scale with load and CPU usage?
- How does the number of drives affect things?
- Software/Hardware - what's the real difference and if you're going the NAS route, does it matter?
- Which saturates first in NAS, network, processing or hard disk performance? Do you need 1000BaseT, or just how well does 100BaseT do in the real world?
- If you really want better performance, how do you go about getting it? Which cache size has the biggest effect?
I'm sure that the graphs were easy to make, after the data was gathered, but putting a little more thought into the study would have yielded results that were more useful.To sum it up, don't both with RAID if you are looking for performance - buy more memory instead.
Oh man. You are just awful. Spanning is when you combine two drives to make one huge drive. When you write to the drive it writes to only one drive at a time. When you stripe it alternates between drives increasing read and write times. Spanning can be done without the help of a controller. In Windows you can just go to Disk Management. Striping requires RAID 0 and a controller.
No, these are all embedded SouthBridge devices, nothing from SI is on test.
1. the surface disk are different from ide and in scsi. the scsi drives are much reflective than the ide drives. though i am not sure if this affects reliability.
2. the size of the platter (diameter) is much smaller in scsi than in ide. probably this will help them achieve a higher rpm than the ide counterparts.
3. the head movement is much sturdier in scsi (probably attributed to more better magnets.) i find it much difficult to move the heads in scsi than in ide.
4. there are more chips underneath the scsi drive than in ide. however, this does not tell much. but in fc drives, there are 2 dsp chips, one that handle internal drive functions like motor and head, while the other handle io host requests making them much faster!
5. scsi drives have higher mtbf. though this may not be much the only guage for quality but scsi drives are much better in quality.
Live your life each day as if it was your last.
Shamelessly presenting a link to define the RAID levels.
Seriously though, the proper RAID level all depends on how much money your willing to spend for the speed and/or performance you require. Consideration for the types of operations (mixed read/write, read-only, or write-only) and reliability (can you afford to lose the filesystem or do you need fault protection) along with your budget usually determine the RAID level for a given system. Also throw in that you can use hardware and software RAID and the choice becomes even more difficult.
Personally, I tend to mirror the OS and application filesystems and use RAID5 for data, but these are systems we deploy and need a high degree of reliability and performance (pretty even mix of read/write data transactions).
Raid 5 is a combination of the 2 in some ways, but it requires 3 hard disks.
This is the minimum configuration, but RAID5 really just requires a disk to maintain parity. You lose capacity for the sake of reliability (example: 5 disk setup could use 4 for data while the other disk maintains parity). Optionally you could add "spare" pool disk(s) to provide failover to automatically take the place of the failed disk until it is replaced (to ensure availability - wouldn't want a two disk failure, rare but possible).
If a read request goes out to drive 3 and waits for rotational latency, the channel is not blocked. Another request for a read on drive 1 can be executed and satisfied while still waiting on drive 3.
IDE performs blocking I/O, so everything would have to wait until drive 3's read was complete. I don't know if this also applies to SATA.
Raid 0 = striped disks for improved performance. No redundancy. In fact, increasing your chances of losing data because if one goes down, no chance of data recovery. (total storage = total of disks)
Raid 1 = Mirrored disks, writing same data to all disks so if one fails you simply replace it and no loss of data. (Total storage = 1/2 of disks)
Raid 5 = Redundant striped disks. One of the disks is used to store a XOR bit, so that basically any one of the disks can go down and once it is replaced the RAID system will rebuild the data on to that disk. (Total storage = total storage of (all disks minus one))
In RAID 1 and RAID 5, which is used in business servers, you really need hotswappable drives so any drives going kaka will not impact the server in any way, just replace the hard drive under warranty without even rebooting the server and the RAID system will rebuild the drive.
RAID 5 is most effective in a business situation, offering a good compromise of speed, capacity and redundancy.
Mirroring generally improves performance, which most users and most inexperienced engineers don't realize. Because you have the exact same data on at least two different spindles, you can transfer data with twice the concurrency, and at times approaching twice as fast. When reading a large file, for instance, if each disk can transfer, say, 10 MB/second and the file is 20 MB in size, the file can be loaded in one second with mirroring and two seconds without.
Unfortunately, this is only true for high-end RAID solutions - not the flimsy ATA-RAID that's built into PC chipsets.
All the low-end ATA RAID (everything in the article) reads exclusively from one mirror member. Some ATA-RAID chips allow you you pick which mirror member it reads from, but it's still reading from a single spindle.
I'd rather be a conservative nutjob than a liberal with no nuts and no job.
Linux supposedly supports many SATA RAID chipsets, though I have yet to get it to successfully mount an existing ntfs partition on a RAID 0 disk set with a Silicon Image 3114 chipset.
Fortunately my chipset does not require a seperate driver when running in RAID mode. My boyfriend's computer uses a Promise SATA chipset that requires a RAID BIOS switch and a completely different driver (Windows AND Linux) if you want to use it in signle-disk mode. I can't imagine the mess I'd have if I used that.
STOP MISUSING APOSTROPHES, YOU MORONS!!!
I found out a few months back some interesting things about the state of SATA RAID...most of the SATA chipset RAIDS are not hardware RAID controllers.
If you check Linux Mafia's web page on SATA controllers, you will find that very few of the SATA RAID controllers are actually hardware RAID. What their "Drivers" really are is proprietory software RAID pretending to be Hardware RAID. I think of all the SATA RAID controllers and chipsets being offered, there are only three that are really hardware RAID. And 3Ware's offering is the least expensive of the real hardware RAID.
ttyl
Farrell
CAN-CON 2019 - Ottawa's only book oriented Science Fiction Convention! October 18-20, Sheraton Hotel, Ottawa, Canada h
I gather you didn't actually read the article, where the relative ages of the chipsets were explicitly mentioned. The year-old ICH5R came out very well against the newer implementations.
Another reason that SCSI drives perform better in RAID arrays is that SCSI permits out-of-order I/O request execution.
It also has great command queuing as part of the out of ourder command execution. Serial ATA supports Native Command Queuing, providing these features plus First Party DMA and Interrupt Aggregation. Hardware support is relatively new. Seagate was the first to make a drive that supported it. My understanding is that the majority of Serial ATA drives out there essentially have parallel IDE controllers with a Serial ATA converter.
Here is a great article from Intel on NCQ: PDF HTML.
IDE performs blocking I/O, so everything would have to wait until drive 3's read was complete. I don't know if this also applies to SATA.
Interrupt Aggregation and First Party DMA were designed to limit the effects of this. SCSI still has an advantage with its offloading controller though. I also understand that the maximum queue depth for commands on the SATA is 32, while it is 256 for SCSI.
In most, if not all, cases, the RAID is really a software-RAID, that the hardware-driver implements.
Only 3Ware seems to offer real RAID-in-hardware these days (and some high-end Adaptec-cards).
Rainer
Windows 2000 - from the guys who brought us edlin
Mirroring is only slower than a single disk on writes if you have a bad hardware raid controller, or a software raid1 with a PCI-bus bottleneck.
I've been using a couple of 3Ware hardware RAID cards in my FreeBSD servers. More expensive than the onboard crap, but Very Nice. Full hardware RAID 0,1,10,5,50, remote control, hot swap, hot spare, email notification on failure, the works. ;-) Or you can install your OS while the RAID is building in the background.
Works with Linux & Windows as well, unfortunately not with MacOS X.
You can configure your RAID remotely while your server is running. (But always be careful with your boot disc
But for MacOS X (& linux) geeks, the XRaid RuleZ!
Now imagine that one of the drives dies. Using the remaining drives and the parity bit we can reconstruct the dead drive because we can derive its data from the fact that the new parity will not be identical across the board. In the case of even parity, any combination the sums to odd needs a 1 for the missing data, while any data that sums to even needs a 0 for the missing data.
The number of parity bits can actually be increased for even more redundancy by adding the bits in a hierarchical fashion, so that you can take down multiple drives at a time. I remember reading about a SUN array which used 39 different drives to represent 32 drives worth of data (32 data bits, with an accompanying 7 parity bits).
Be glad life is unfair, otherwise we'd deserve all this.
Read performance is better than a single drive in mirrored situations, in every RAID setup I've seen. In short, the controller should split up read requests to the drives so that reads are NOT read from a single drive, but spread between the drives, so as exactly to improve performance.
Write performance *should* be the same or very close to a single drive, provided both mirror drives are equal in performance, and the controller is able to dispatch the writes simultaneously. (This will depend on the head placement when the write is requested. Since both drives can be reading at different places, there may be some write degredation in comparison to the other drive.)
I suppose as the drives reach saturation request levels, writes could be further depressed, as there wouldn't be much idle time used to optimize write performance. This additional degredation in performance shouldn't be very significant in comparison to a single drive setup. I expect the read performance increase would more than offset the write performance decrease - clearly this all depends on the type of load/applications.
Cheers,
Greg
Being the person implementing Serial ATA for Linux...
Most "SATA RAID" is a bunch of marketing malarkey. It is provided by the BIOS and OS, not the hardware.
There are a few "true" hardware RAID controllers, such as 3ware or some of the more advanced Adaptec controllers.
In the middle is Promise, which produces controllers what I call "RAID offload" features -- not true RAID, but faster than non-RAID if you use Promise-specific features.
Finally, the third group of SATA controllers is vast majority -- no RAID support whatsoever, but they are being sold as RAID.
Any benchmark of SATA RAID simply benchmarks the OS- or vendor-provided software RAID driver.
It depends on how you're using it. If purchasing for a web server, one of my main concerns is not transfer rate, but seek time. If reading small bits of data at random, you're not going to notice even a 2 to 1 difference in transfer rate, but you will definitely notice a 2 to 1 difference in seek time. Though it's less of a concern nowadays, with memory being so cheap, such that with most apps everything fits nicely into cache memory.