SSD Experiments

Intro

We're looking at SSDs for a few reasons

  1. They can provide roughly 2-2.5x the read bandwidth (and sometimes nearly that much for writes, too) of disks.
  2. 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.
  3. 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

ProductFirmware Bug Discussion

Samsung 470 Series

64GB, 128GB

Samsung S3C29MAX01

AXM09B1Q

AXM09B1Q   (5/5/2011)

Samsung 32nm(?) K9HDGD8U5M

MZ-5PA064, MZ-5PA128

64GB, 128GB

Crucial M4

64GB, 128GB

Marvell 88SS9174

0002

0002   (6/20/2011)

Intel/Micron 25nm 29F128G08CFAAB

CT064M4SSD2, CT128M4SSD2

64GB128GBFirmware

Mushkin Calisto Deluxe

60GB, 120GB

Sandforce SF1200

3.6.1

3.6.1   (4/28/2011)

Intel/Micron 34nm 29F64G08CAMDB

MKNSSDCL60GB-DX, MKNSSDCL120GB-DX

60GB120GB

(*) 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)