SSD Experiments
Intro
We're looking at SSDs for a few reasons
- They can provide roughly 2-2.5x the read bandwidth (and sometimes nearly that much for writes, too) of disks.
- They have much lower write latency (RAMCloud may be attractive without battery backups/Agigatech stuff/etc, if we use synchronous flash writes to get durability.
- We don't need huge capacity, so the cost is reasonable (~$1.6/GB)
Controllers
There appear to be half a dozen different manufacturers of SSD controllers (Marvell, Intel, JMicron, Samsung, Indilinx, Toshiba, Sandforce).
Troublingly, some controllers or associated firmwares appear to be considerably less reliable than others (judging from consumer reviews on, e.g., NewEgg.com). E.g. the Indilinx and JMicron ones seem especially suspect. Sandforce-based drives also look a little sketchy depending on the vendor (perhaps they're making stupid firmware modifications?). Even Intel appears to ship buggy firmware!
Controller Manufacturer |
SSDs |
---|---|
Marvell 88SS9174 |
Intel 510 series, Plextor M2, Crucial M4 |
Intel |
All Intel SSDs aside from the 510 series |
Samsung |
Apparently Samsung drives, only |
Toshiba |
Only consumer drive appears to be Kingston SNVP325 series (though also used by OEMS, e.g. Apple) |
Indilinx |
Tons of random consumer drives (e.g. OCZ) |
JMicron |
Tons of random consumer drives (e.g. Kingston, OCZ) |
Sandforce |
Lots of random consumer drives |
Drives We're Evaluating
We looked at 4 drives with chips from Marvell, Intel, Samsung, and Toshiba:
SSD |
Sizes |
Controller (purported) |
Tested Firmware |
Latest Firmware |
Flash Chips (*) |
Part Numbers |
Link |
---|---|---|---|---|---|---|---|
Intel 320 Series |
80GB, 120GB |
Intel PC29AS21BA0 |
0302 |
?? |
Intel/Micron 25nm 29F16B08CCME1 |
SSDSA2CW080G3B5, SSDSA2CW120G3B5 |
|
Samsung 470 Series |
64GB, 128GB |
Samsung S3C29MAX01 |
AXM09B1Q |
AXM09B1Q (5/5/2011) |
Samsung 32nm(?) K9HDGD8U5M |
MZ-5PA064, MZ-5PA128 |
|
Crucial M4 |
64GB, 128GB |
Marvell 88SS9174 |
0002 |
0002 (6/20/2011) |
Intel/Micron 25nm 29F128G08CFAAB |
CT064M4SSD2, CT128M4SSD2 |
|
Mushkin Calisto Deluxe |
60GB, 120GB |
Sandforce SF1200 |
3.6.1 |
3.6.1 (4/28/2011) |
Intel/Micron 34nm 29F64G08CAMDB |
MKNSSDCL60GB-DX, MKNSSDCL120GB-DX |
(*) Guess based on various hardware review site tear-downs.
Read Performance: Random 8MB reads
This experiment targets recovery -- how quickly can we read 8MB segments from the disk?
The result is boring -- all disks can average between 260 and 270 MB/s (which is apparently about all we can expect of our 3Gbps SATA ports).
-TODO- 8MB latency may be interesting. If we have lots of nodes, we may only read a few segments. Hopefully that offers just as good bandwidth as reading a lot of them.
Write Performance: Random 8MB writes to some fraction of the disk
This experiment writes 8MB segments randomly to the first x% of the disk, for varying values of x. The total data written in each test is twice the drive's reported capacity.
The idea is to test how well write performance holds up under increased space utilisation. For example, if we write 120GB to the first 20% of the disk's logical blocks (randomly overwriting), how does the drive fare? We'd hope that when utilisation isn't too high, the drive's FTL would be able to efficiently erase recently overwritten LBAs and keep up with the write load.
Before each run, the disks were trimmed using hdparm. Perhaps a secure erase would have been better, but most drives appeared to regain full write performance this way. Notably, the Mushkin one did not (the 100% test was first, followed by 20,40,60%...).
Samsung 470 Series (Samsung Controller) |
|
---|---|
|
|
Crucial M4 (Marvell Controller) |
|
---|---|
|
|
Intel 320 Series (Intel Controller) |
|
---|---|
|
|
Mushkin Callisto Deluxe (Sandforce Controller) |
|
---|---|
|
|