views:

465

answers:

9

EMC is marketing Solid State Flash Drives and my project is thinking about moving that direction in the future. Does anyone have any experience with replacing traditional disk storage with flash drives? Besides price, have you experienced any downsides to the technology?

+1  A: 

No perceivable increase in speed from my experience.

There are plenty of pros and cons.

http://en.wikipedia.org/wiki/Flashdrive

WalloWizard
+1  A: 

I've used machines with solid state drives in place of conventional hard drives. There seems to be no real benefit. You would think they would be faster; they are not. You would think they'd consume less power, but that doesn't really seem to be the case either.

The major downside is that they have a finite number of available writes. Continually writing to the disk (as most operating systems do) will wear a SSD out much faster than it will a conventional drive.

DannySmurf
+1  A: 

Take a look at FusionIO's IODrive. It's hard to find cons (except for price, but i'm going to buy one for my personal computer. yes, i'm a gamer).

BTW, the price on the IO drive is $30/gb about. But it's performance is on par w/ 40 drive SAN arrays.

Darren Kopp
Have you used one yet or are you still in the research phase?
Jon Ericson
haven't used one yet because they don't have windows drivers yet i don't believe. q3 this year they are supposed to have them out tho. you can google fusion io drive and watch some videos on them though, they can do what they promise.
Darren Kopp
+1  A: 

We used to use them all the time (back when 128MB flash drive was huge) and the only downside was the price. Other than that, they were fantastic. We could upgrade firmware by simply swapping out the card.

Andy S
+2  A: 

I've used CF cards and USB thumb drives as boot media for embedded Linux systems.

They are great for embedded systems and anything which is light on access to storage.

Pros:

  • Small and lightweight
  • Cheap
  • Can take knocks and vibration
  • Don't get so hot as an HDD
  • These days they have very respectable capacity

Cons:

  • Much slower than an HDD as DannySmurf mentioned.
  • They do not like lots of write operations.
Adam Pierce
+1  A: 

I've been thinking about why a flash drive might be only marginally faster than disk. Memory ought to be faster than disk, but main memory is faster than flash memory. So if you read the same blocks from disk over and over, and the OS caches those blocks the first time around, subsequent reads will actually hit memory and not disk. Flash drives would also gain from disk caching, of course.

For our code, I suspect (without being able to test it) that flash drives might not be a speed/price gain. The algorithm uses massive lookup tables to avoid repeating expensive calculations, so we get a lot of IO waits. One of our SAs discovered that if we queue up three related jobs at once, they can often run in just over the time it takes to run just one job. The system disk cache cuts disk reads substantially if there is enough memory available.

Since these tables rarely change, the write count limitation is not a huge concern, but the price is. It sounds like there are applications that work well for this technology, but it isn't a silver bullet.

Jon Ericson
It's not just the write limitation, its that writes are very slow. You must erase a whole page before writing to a non-empty block.
BobbyShaftoe
+1  A: 

I wrote a review of the Patriot WARP with vista on my Lenovo W500. The performance was pretty bad.

http://peterkellner.net/2009/02/08/ssd-notebook-lenovo-patriot-warp-veryslow/

Peter Kellner
+3  A: 

A couple of people have called out the write limitations on flash. This isn't much of an issue for the better SSDs---especially for the high-end ones that folks like EMC are using.

Take a look, for example, at Intel's X25-E. It uses single-layer cell (SLC) flash, which can handle more writes than the cheaper, denser multi-layer cell (MLC) flash that is used in low end and consumer-grade SSDs. Typical SLC parts these days have a write endurance of 100,000 writes.

So if you get Intel's 64GB drive, and write to it at the maximum sustained bandwidth (170MB/s), it would take 64K * 100,000 / 170 seconds = 1.22 years to write enough data to the SSD to start running into the write limitations.

This is an over-simplification, of course. There are other factors that come into play. Most importantly:

  • SSDs over-provision flash, sometimes by as much as 25%. So the drive with 64GB of advertised capacity may have 80GB of flash inside. So it will take even longer to wear it out.
  • On average, one write to an SSD results in more than one write to internal flash, as the flash erase block size is larger than the typical I/O, and the SSD needs to move data between flash banks to ensure even wear. Over-provisioning flash (see above) and intelligent firmware minimizes this effect---you might have 1.1 flash writes for every write to the SSD. But this will still cause the SSD to wear out after a smaller number of writes than the above calculation suggests.
  • Most importantly, realistic workloads aren't going to come close to long-term, sustained write bandwidths of 170MB/s.

All in all, any SLC-based SSD on the market these days should be able to go several years before write endurance becomes an issue. As an indicator of this, you'll find that many of the better SSDs come with multi-year warranties.

Keith Smith
+1  A: 

Buyer beware! There are a lot of phony pen drives being sold on eBay (ones that report to the OS as being 16, 32 GB, etc., but can only hold 2GB or so before corrupting data). A lot of people are getting suckered because they don't test their memory (they assume it has 16GB because the operating system says it does). The only way to be sure your drive is genuine is to write nonrepeating (pseudo)random bytes to it, then read them back to make sure they are all correct.

SOSFakeFlash maintains an enormous list of confirmed fake flash sellers on eBay.

I don't know if heavy-duty SSDs (as opposed to pen drives and memory cards) are plagued with this problem, but I strongly advise that all memory buyers test their memory.

When I get time, I'll write a simple open-source disk tester for Linux implementing the random bytes approach.

Joey Adams