The testbed we are going to use for this test session is based on a mainboard with Intel H67 chipset which offers two SATA 6 Gbps ports. We connect our SSDs to these particular ports.
Here is the full testbed configuration:
- Intel Core i5-2400 (Sandy Bridge, 4 cores, 3.1 GHz, EIST and Turbo Boost turned off);
- Foxconn H67S mainboard (BIOS A41F1P01);
- 2 x 2 GB DDR3-1333 SDRAM DIMM 9-9-9-24-1T;
- Crucial m4 256 GB system disk (CT256M4SSD2);
- Tested SSDs:
- Kingston HyperX 120 GB (SH100S3/120G, firmware version 332);
- Kingston HyperX 240 GB (SH100S3/240G, firmware version 332).
- Microsoft Windows 7 SP1 Ultimate x64 OS
- Intel Chipset Driver 18.104.22.1680
- Intel HD Graphics Driver 22.214.171.1241
- Intel Management Engine Driver 126.96.36.1995
- Intel Rapid Storage Technology 10.8.0.1003.
Building a RAID0 with SSDs
We are going to build our SSD-based RAID using a standard SATA RAID controller that is integrated into modern chipsets. Such controllers work well with single SSDs and suit the purpose of this test session just fine, especially as they are available on most mainboards and thus do not require extra investment on the user’s part.
Our testbed is based on an LGA1155 mainboard with H67 chipset whose SATA controller supports RAID. You only need to change the controller’s operation mode from AHCI to RAID in the mainboard’s BIOS. However, changing the BIOS option is likely to make your OS unbootable. You’ll be getting a blue screen of death as you try to boot your computer up because the RAID driver is off by default in Windows. There are two ways to solve the problem. One is to reinstall Windows after you've switched to RAID mode. The necessary driver will be enabled automatically during installation. The other way is to find the Start variable in the system registry (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Iastorv) and set its value at 0 before changing the SATA controller settings in your mainboard's BIOS. Then you just reinstall the Inter Rapid Storage Technology driver, being already in RAID mode.
With RAID mode turned on and the required drivers enabled, you can proceed to building your RAID. You use the Intel RST driver for that and are only required to specify the disks you want to combine and the RAID level. It's RAID0 for our test.
The rest of configuring is performed automatically but you can change the stripe size (128 KB by default) and enable the driver's write caching (if enabled, this can lead to data loss in case of a power failure).
We wouldn’t recommend you turning the write caching on, especially as the OS itself offers such functionality. As for the stripe size (it’s the size of the fragments data are broken into when stored on a RAID), it is not quite reasonable to rely on the driver's default of 128 kilobytes. A large stripe size makes sense for conventional hard disks which are much faster at reading or writing large blocks of sequentially placed data than at processing small data blocks because the latter operation involves too much repositioning of the read/write heads. SSDs, on their part, boast a very low access time, so choosing a small stripe size should ensure better performance with small files.
It must be noted that a single Kingston HyperX 120GB can process larger data blocks faster but there are other things to consider.
The Intel RST driver can intellectually process the data request queue, ensuring that the SSD-based RAID0 be fast even at a small stripe size. We’ve carried out a brief test of a RAID0 built out of two HyperX 120GB SSDs using different stripe sizes.
Data stripe size = 4 KB
Data sripe size = 8 KB
Data stripe size = 16 KB
Data stripe size = 32 KB
Data stripe size = 64 KB
Data stripe size = 128 KB
The results of AS SSD Benchmark suggest that the performance of the RAID0 doesn't vary greatly as the stripe size changes. On the other hand, this parameter really affects the speed of sequential operations as well as the processing of small data blocks at a long request queue. The RAID0 seems to deliver its best performance with 32KB data blocks, so the driver’s default doesn’t look optimal. We will use the stripe size of 32 kilobytes for our today’s tests and recommend you to use this setting, too, if you build a RAID0 out of SSDs with second-generation SandForce controllers.
There is one more important thing to be noted here. As soon as your RAID is built, it is identified by the OS as a single whole and you cannot access its constituents separately. This may be inconvenient. For example, you won't be able to update the firmware or view the S.M.A.R.T. information or perform a Secure Erase for the SSDs in your RAID. But the biggest problem is that the OS won't be able to use the TRIM command which is supposed to protect SSDs from performance degradation.