by Aleksey Meyev
07/29/2008 | 01:31 PM
What do people do when they run short of the performance, capacity or reliability of even the best hard disk drive? They turn to RAID technology. People who need increased reliability go for RAID1. Users who have lower speed and reliability requirements but demand high storage capacity and low cost of storage prefer RAID5 or RAID6 (the latter is a variant of RAID5 but with two checksums per each stripe). RAID0 is for speed. Both speed and reliability can be ensured by using RAID10 or, less frequently, RAID50 and RAID60, which are two-layered combinations of the basic arrays. It is all quite simple and you can easily select a suitable RAID type for any application, from workstations and entry-level servers to high-performance servers with lots of HDDs inside.
One more thing to keep in mind is that the cost of building a RAID is the cost of the HDDs plus the cost of the RAID controller. If you make a complex array out of a lot of disks, you need an appropriate, i.e. expensive, controller. The price factor is not so important if you are building a data storage system on the enterprise level, but it is a serious factor for those who are going to use their RAID in a workstation or in a simple server at a small firm.
There are three ways to lower the cost of the array:
It is all clear about item one: there is a minimum number of disks you need to build each type of RAID. You are not absolutely free to choose the amount of disks, though. After all, this determines such parameters as the capacity and speed of the array (the speed parameter changes especially greatly in the case of RAID0).
There is not much freedom about item two of the list: the quality of HDDs affects the speed and capacity of the array, too.
So, we’ve got to item three. Why can one controller be cheaper than another? It may have a slower processor, a smaller amount of cache memory (or no such memory at all whereas top-performance controllers come with as much as 512 megabytes of it), and fewer HDD connectors (this simplifies the PCB wiring and lowers the requirements to the peak bandwidth of the controller’s internals).
If you’ve got no special requirements about your RAID and you don’t expect the disk load of your server to increase greatly in near future, you can reduce the cost of the array significantly by preferring a simpler RAID controller.
You may be wondering why I am telling you such simple truths. Well, it’s just I am about to offer you a comparative review of a few different RAID controllers from Adaptec. Let’s find out what applications each of them suits best.
I will start out with what seems to be the simplest controller in this review, AAR-1430SA.
The AAR-1430SA is in fact an AAR-1420SA with PCI Express x4 instead of 64-bit PCI-X/133MHz. The two models have the same specs: four SATA ports (with NCQ and a data-transfer rate of 3Gbps) and support for RAID arrays of levels 0, 1, 10 and JBOD. The controller doesn’t support RAID5 and thus doesn’t need a processor for checksum calculations. The PCB is very simple as the result. A Marvell 88SX7042-BDU1 chip is responsible for the HDDs. There is no buffer memory on board.
It’s good the AAR-1430SA has the new PCI Express interface. It is not even because of the higher bandwidth (the difference is small: 10Gbps against 8.5Gbps of the 64-bit/133MHz PCI-X interface) which is excessive for four SATA drives anyway but because of the popularity of the interface on mainboards and their price. The PCI-X interface is usually implemented on server mainboards whereas the AAR-1430SA controller is positioned into the workstation segment. PCI Express is far more popular in this segment. In fact, it is hard to find a mainboard without PCI Express.
The controller comes with scanty accessories: a brief manual, two discs with documentation and drivers, four 1-meter long SATA cables, and a low-profile bracket. Running a little ahead, I can tell you that every other controller in this review comes with the same accessories. The only difference is the number of the cables that corresponds to the number of the controller’s ports. Take note that the controllers are all low-profile and an appropriate mounting bracket is included with each. It may be a trifle, but it’s very annoying when you don’t find such a trifle in the product box.
So, you will see if these two very similar models are any different in terms of performance. I will also add the more advanced and expensive ASR-44300 model. Like the junior AAR-14XX models, it doesn’t have buffer memory and does not support RAID5 but, unlike them, it can work with HDDs equipped with the SAS interface (Serial Attached SCSI) and has one internal SFF-8484 x4 connector. The ASR-44300 is installed into a 64-bit/133MHz PCI-X slot.
By the way, about Adaptec’s product nomenclature: save for a few exceptions, the first numeral denotes a RAID controller family (the higher the number, the more advanced and expensive device this one is), the second numeral denotes the amount of HDDs supported, and the rest is the model number within the family. There are actually a number of various models available from this brand, so I won’t enumerate all of them here. Instead, I can give you two links to comparative tables at the manufacturer’s website:
Table One – Entry-Level Controllers (click here)
Table Two – High-Performance Controllers (click here)
The AAR-2820SA is a more serious device and it even looks such. You can see a XOR processor and onboard memory on it.
I will test a version of this controller with 256 megabytes of buffer memory but there exists a 128MB version, too. Oddly enough, the manufacturer doesn’t mention anywhere at his website what type and how much of memory this RAID controller uses. The marking on the chips is barely readable. Judging by the 128MB model, there are four DDR modules with a frequency within 200-333MHz.
The controller’s interface is 64-bit/133MHz PCI-X. It supports up to eight hard disk drives with SATA interfaces (NCQ and 3Gbps data-transfer rate). The controller is based on the Adaptec AIC-8210 chip and supports a wider selection of RAID types: 0, 1, 10, JBOD, 5, and 50. As opposed to the previous models, this one supports a battery for the buffer memory and all the capabilities offered by the Adaptec Advanced Data Protection Suite, namely:
The ASR-3405 is the junior controller with RAID5 support from Adaptec’s new series featuring the Unified Serial architecture.
Although a junior model in the series, the ASR-3405 is quite advanced in its characteristics. It has a PCI Express x4 interface, SAS and SATA (NCQ + 3Gbps) interfaces for the HDDs, an Intel 80333 processor clocked at 500MHz, 128 megabytes of DDR2 SDRAM, and an internal mini-SAS SFF-8087 connector. It allows to install a battery to power the cache memory chips and supports the following RAID types: 0, 1, 5, 6, 10, 50, and 60. So, it has everything you may want from a RAID controller. You’ll see soon how this new controller compares with the others in terms of performance.
The following benchmarks were used:
I used the latest BIOS and drivers for the controllers, downloading them from the manufacturer’s website.
The controllers were installed either into a PCI Express x8 slot or into a 64-bit/66MHz PCI-X.
The Western Digital WD740GD (Raptor 2) hard disks were installed into the standard boxes of the SC5200 system case.
I tested the controllers with four HDDs in the following modes:
The controllers were set at the Performance mode for maximum performance during the tests. This mode allows deferred writing and look-ahead reading for both the controller (in its own buffer memory if available) and the disks. The Performance mode should not be used without a cache battery because there is a high risk of losing data in case of a power failure.
In the Database pattern the disk array is processing a stream of requests to read and write 8KB random-address data blocks. The ratio of read to write requests is changing from 0% to 100% throughout the test while the request queue size varies from 1 to 256.
You can click the following links to see tabled results:
I will discuss the results for queue depths of 1, 16 and 256 grouped by the array type.
One data thread and the simplest array type. There is nothing to optimize and nothing to get worse. As a result, the controllers all deliver similar performance. You can note a couple of interesting facts, though. First, the modern PCI-E 4x models are in the lead when there is a high percentage of writes. Second, the AAR-1420SA and AAR-2820SA are slower than the others irrespective of load.
It is more interesting with the RAID10. The simplest controller, AAR-1430SA, copes best with this combination of array type and load. It is only at high percentages of writes that it is overtaken by the ASR-3405, probably because the latter has a cache buffer and can perform deferred writing in the cache. The AAR-2820SA is about as fast as the ASR-4305 at high percentages of reads but slows down at writing (perhaps it has problems caching random write requests: the AAR-2820SA has a weaker processor than the ASR-3405 and the computing load in this mode may have a negative effect on the controller’s performance). The ASR-44300 is the slowest in this group, having a sudden performance slump in the most complex load range where there is about the same amount of reads and writes.
The RAID5-supporting controllers both show original algorithms. As you know, the ideal graph is nearly flat with a smooth slope in the right part.
Now I will check the controllers out under heavier load at a queue depth of 16 commands.
The two PCI-E 4x controllers are again the best with the RAID0, behaving in an absolutely normal way. The ASR-44300 is good too, but its results are somewhat lower at high percentages of writes. The ASR-1420SA is an unpleasant surprise as it is far slower than its mate.
The AAR-2820SA is a surprise, too. It is 100 IOps slower than the leaders at any ratio of reads to writes. Its processor and buffer memory must be doing something wrong indeed.
It is all very confusing about the RAID10. The ASR-3405 and AAR-1430SA are on top again, the latter being better at pure reading while the former, at every other load type. The ASR-44300 delivers superb performance at pure reading but slows down at writing. It is only at high percentages of writes that it accelerates a little. The AAR-2820SA is slower than the leaders by about 100 IOps again.
The ASR-3405 shows a nearly ideal picture of RAID5 performance at a queue depth of 16. The AAR-2820SA is not that good as it is slower and has a jagged graph which indicates some flaws in the controller’s firmware.
The RAID0 results get very odd when the queue is increased to 256 requests. The only controllers to cope with this load successfully are the AAR-1430SA and ASR-44300 (the latter slows down somewhat at high percentages of writes). The ASR-3405 is surprisingly poor if compared with the previous results. The AAR-2820SA is the worst controller again, delivering rather low performance.
The ASR-4305 has problems reordering read requests to the RAID10 just like it had with the RAID0. As a result, it is inferior to the simpler AAR-1430SA which gains the lead. The ASR-44300 is slower than the leader, too. Just as at a queue depth of 16, the ASR-44300 slows down at loads with 10 to 60% percent of writes. The AAR-2820SA is very slow again.
The RAID5 graphs are almost the same as at the shorter queue except that the performance of the controllers is somewhat higher now.
IOMeter is sending a stream of read and write requests with a request queue depth of 4. The size of the requested data block is changed each minute, so that we could see the dependence of the array’s sequential read/write speed on the size of the data block. This test is indicative of the highest speed the array can achieve.
You can click the following links to see tabled results:
Two controllers have peculiar graphs while the other three deliver predictable performance with the RAID0. The ASR-3405 has a slump on 32 and 64KB data blocks. The AAR-2820SA draws a very uneven graph.
It’s even funnier with the RAID10. The AAR1430SA and ASR44300 show smooth graphs but their maximum speeds are incomparable to what we would have from a single HDD. They seem to be reading data from one disk only, without considering that they have four disks and can read from two disks simultaneously (thanks to RAID0), let alone from two disks in each mirror.
The ASR-3405 and AAR-2820SA show a different behavior. They read from two disks but their speed depends greatly on the size of the data chink. The graph becomes jagged starting with 16KB chunks.
The same controllers are quite all right with the RAID5. They are as fast as you could expect at large data blocks, their speed corresponding to simultaneous reading from three disks. There are some problems on 32KB data blocks. The AAR-2820SA is also slow on 16KB data blocks. Take note that the newer ASR-3405 is faster on small data blocks thanks to its more advanced processor.
Now let’s check out sequential writing.
It is in fact the same as at sequential reading. The ASR-4305 has problems on 32 and 64KB data blocks again. The performance slump on 256KB blocks is more conspicuous now. The AAR-2820SA behaves in a similar way, but has problems with 8KB and 16KB blocks, too. These controllers’ RAID5 support is accompanied with problems in their firmware.
It’s better with the RAID10: the AAR-1430SA recognizes the opportunity to write to two disks at once, improving performance. The ASR-3405 shows a similar behavior but has problems with 32KB data chunks. The AAR-2820SA has a slump on 8 to 32KB data chunks whereas the ASR-44300 pretends it can only work with only one disk at any moment, just like at reading.
The ASR-3405 is slower when writing to a RAID5 than reading from it. It is due to the need to calculate and write a checksum for each data block. The AAR-2820SA is even slower. Its processor must be too weak.
The multithreaded tests simulate a situation when there are one to four clients accessing the virtual disk at the same time – the clients’ address zones do not overlap. I will discuss diagrams for a request queue of 1 as the most illustrative ones – the speed doesn’t depend much on the number of applications at a request queue of 2 and longer.
The full results can be seen by the following links:
The ASR-3405 is the best controller for multithreaded reading. It is superior irrespective of the array type which means that the others have problems with reading from the RAID0 under synthetic load. It will be interesting to compare this with the results of the real-life FC-Test. The speeds of the ASR-44300 and AAR-1430SA are fantastically low. Hopefully, it is just the controllers’ dislike of the synthetic load.
The reading of two threads produces odd results. The ASR-3405 still boasts the highest speed, but only with the RAID5. With this array the controller’s speed declined only twofold whereas with the (theoretically) fastest RAID0 its speed declined fourfold! Interestingly, the AAR-2820SA+RAID5 combination is not affected much by the addition of the second thread. The other arrays types do not lose much speed on this controller, either. So, we have an odd situation: the RAID5 arrays are faster than the RAID0!
As for the results of the ASR-44300 and AAR-1430SA with the RAID10 array, they are overall good. Although these controllers are still the slowest, the numbers are not depressing anymore.
The ASR-3405 loses its ground when another thread is added. Its results are among the worst in comparison with the same arrays on the other controllers. The AAR-2820SA is the leader now. It delivers similar speeds with every array type, surpassing all of its opponents.
The ASR-3405 is slower than the others irrespective of the array type now. The AAR-1420SA has got worse with the RAID0, being as fast with the RAID0 as the opponents with the RAID10. The AAR-2820SA is in the lead still.
Let’s check out writing now.
It’s the same as at reading when the controllers worked with one thread: the ASR-3405 is the leader. The ASR-44300 и AAR-1430SA are very slow with the RAID10.
Adding a second thread leads to quite different results than at reading. First, the controllers don’t slow down much. Second, the RAID0 is the fastest array type with each controller, just as the theory tells us (but the RAID5 manages to outperform the RAID10). The ASR-44300 and AAR-1430SA have become faster with the RAID10, but not much.
The RAID5 arrays lose their ground at writing three threads and become slower than any RAID0. It would be a perfectly theoretic situation if the RAID10 were not slower than the RAID5. Interestingly, the AAR-2820SA doesn’t show fantastic speeds as it did at multithreaded reading while the ASR-3405 is not slow, being somewhere in the middle with the RAID0 and among the leaders with the other array types.
When the number of thread is increased to four, the AAR-1420SA slows down with the RAID0 while the ASR-3405 is superior to its opponents irrespective of the array type.
The controllers are tested under loads typical of servers and workstations. The server tests are the most interesting to us, being the most typical application for a RAID controller. Workstations may also have a high disk load, though.
The names of the patterns are self-explanatory. The Workstation pattern is used with the full capacity of the drive only. The request queue is limited to 32 requests in the Workstation pattern.
The results are presented as performance ratings. For the File-Server and Web-Server patterns the performance rating is the average speed of the drive under every load. For the Workstation pattern we use the following formula:
Rating (Workstation) = Total I/O (queue=1)/1 + Total I/O (queue=2)/2 + Total I/O (queue=4)/4 + Total I/O (queue=8)/8 + Total I/O (queue=16)/16.
The RAID controllers fall into two groups depending on their behavior in the File-Server patterns. The first group includes the ASR-44300 and AAR-1430SA which are increasing performance as the load is growing up. The other controllers only accelerate until a queue depth of 16 requests. This reminds me of the Database results where there was no performance growth at random reading. Take note that the ASR-3405 is the best controller at small queue depths as it is ahead of the controllers from the first group there.
We have similar results with the RAID10, the controllers splitting up in two groups again. This time the ASR-3405 enjoys a bigger lead at small queue depths and keeps in the lead for longer, until a queue depth of about 150 requests.
The ASR-3405 wins this test as it delivers higher performance without any slumps.
The ASR-44300 and AAR-1430SA controllers working with the RAID10 array have the highest performance ratings due to the performance growth depending on load. The ASR-3405 is in the lead with the other array types. The AAR-2820SA and AAR-1420SA are very slow. So, we can see that Adaptec’s new controllers are really faster than older ones.
In the Web-Server pattern the controllers again form two groups with the same behavior when they work with the RAID0 array. This time the AAR-1420SA has moved from the second group into the group that increases performance at long queue depths. Moreover, this controller proves to be the best at long queue depths whereas the more expensive ASR-44300 wins at small depths only. The AAR-2820SA has low results again.
We’ve got the same two groups with the RAID10, too. The ASR-44300 is unrivalled in this test because the pattern contains read requests only.
There are no changes with the RAID5: the ASR-3405 is far better than its opponent.
The overall rating depends but slightly on the array type: the ASR-44300, AAR-1430SA and AAR1420SA are in the lead with very similar ratings. They are followed by the ASR-3405. The AAR-2820SA takes last places, being considerably slower than the others.
The ASR-3405 proves to the best controller for the RAID0 in the Workstation pattern thanks to the small queue depth and the high percent of writes to be performed. The leader is followed by the ASR-44300 and AAR-1430SA. The AAR-1420SA is slower, and the AAR-2820SA is just hopeless.
The RAID10 graphs are interesting. The AAR-1430SA and ASR-3405 share first place, the former being somewhat better at long queue depths while the latter, at small depths. The ASR-44300 is suddenly slow, although not as slow as the AAR-2820SA.
The ASR-3405 wins the RAID5 test again.
If your workstation needs performance and storage capacity, you can take any controller save for the AAR-2820A, which is too slow with every array type. They are all equal with the RAID0. If you need increased data reliability, you may choose to build a RAID10 on the AAR-1430SA or ASR-3405. If speed is unimportant but you need reliability and capacity, you can use the ASR-3405 to build your RAID10.
For this test two 32GB partitions are created on the virtual disk of the RAID array and formatted in NTFS and then in FAT32. After that a file-set is created of the hard disk. It is then read from the disk, copied within the same partition and then copied into another partition. The time taken to perform these operations is measured and the speed of the array is calculated. The Windows and Programs file-sets consist of a large number of small files whereas the other three patterns (ISO, MP3, and Install) include a few large files each.
This test produces too much data, so I will only discuss the results of the Install, ISO and Programs patterns which illustrate the most characteristic use of the arrays.
The ASR-3405 is the best at creating files on the RAID0. It enjoys a considerable lead irrespective of the file-set. The AAR-2820SA is the loser overall although it is only when processing large ISO files that it is much slower than the other controllers. By the way, the four-disk RAID0 arrays are surprisingly slow on every controller. I had expected them to be about two times as fast as that. It is strange for the RAID0 arrays to be about as fast as the RAID5 which should be slower. Running a little ahead, you will see the same thing in every of the four subtests.
The ASR-3405 is unrivalled when working with the RAID5.
The ASR-3405 is also the best when creating files on the RAID10 array. It is somewhat inferior to the ASR-443000 on large files but the latter is slower on small files. The AAR-1430SA is the slowest of all, but it is also far cheaper than the others.
It’s somewhat different at reading, reminding me of the Database results at long request queue depths. The ASR-3405 is against the best controller for working with the RAID0 but the AAR-1430SA catches up with the leader in the Programs pattern and overtakes it in the Install pattern. The AAR-2820SA is the worst controller again, but it is only on large files that the gap is really considerable.
There is no change with the RAID5 array: the new ASR-3405 is faster than its opponent.
The RAID10 results are similar to the RAID0 ones, but the leaders are more obvious: the ASR-3405 wins on large files whereas the AAR-1430SA, on small files.
The AAR-2820SA has a surprisingly good speed of copying within the same partition – it is close to the leading ASR-4305 with every array type and even overtakes it on large ISO files. The ASR-44300 and AAR-1420SA are the slowest in this test in comparison with the other controllers.
The AAR-2820SA is again good at copying, this time from one partition to another. The ASR-3405 wins again, irrespective of the array type, while the losers are different. The ASR-44300 is no good in this test with the RAID10. The ASR-1420SA is slow with the RAID0.
You can view the diagrams with the FAT32 results by the following link: FC-Test FAT32 results.
Now I will try to sum everything up. Talking about inexpensive RAID controllers in general, they can be an optimal choice if you can’t buy a more expensive model due to financial constraints or because you just don’t need such a model. There is one important note about Adaptec’s controllers, though. They are not good for RAID0 if you need a high speed of sequential reading/writing rather than a high number of operations per second.
As for the specific models, the ASR-3405 is the best controller in today’s tests. This new-series model is generally far faster than its predecessors. Moreover, it is based on the PCI-E 4x rather than PCI-X interface and supports SAS drives. This controller is good with RAID5. Although not without problems such as the lack of performance scalability at long queue depths, low speed at multithreaded load and at random-read reading from RAID0, it is overall worth its price.
The AAR-1430SA, a very inexpensive controller with a PCI-E 4x interface, may suit people who have a limited budget but want to increase disk performance in terms of read operations per second by means of RAID0 or increase data reliability by using RAID10. This controller is almost everywhere better than the AAR-1420SA, the developer’s previous model with a PCI-X interface.
The AAR-2820SA and ASR-44300 are generally slower than the ASR-3405, being only good in one or two tests. Particularly, the former was good at multithreaded reading and at copying files while the latter was good at random reading from RAID10.
And a piece of general advice: if high disk performance is indeed important for you, you should not save on the RAID controller. In any case, make sure it is going to do well under your type of load.