The SSD Anthology: Understanding SSDs and New Drives from OCZ
by Anand Lal Shimpi on March 18, 2009 12:00 AM EST- Posted in
- Storage
Free Space to the Rescue
There’s not much we can do about the scenario I just described; you can’t erase individual pages, that’s the reality of NAND-flash. There are some things we can do to make it better though.
The most frequently used approach is to under provision the drive. Let’s say we only shipped our drive with 20KB of space to the end user, but we actually had 24KB of flash on the drive. The remaining 4KB could be used by our controller; how, you say?
In the scenario from the last page we had to write 12KB of data to our drive, but we only had 8KB in free pages and a 4KB invalid page. In order to write the 12KB we had to perform a read-modify-write which took over twice as long as a 12KB write should take.
If we had an extra 4KB of space our 12KB write from earlier could’ve proceeded without a problem. Take a look at how it would’ve worked:
We’d write 8KB to the user-facing flash, and then the remaining 4KB would get written to the overflow flash. Our write speed would still be 12KB/s and everything would be right in the world.
Now if we deleted and tried to write 4KB of data however, we’d run into the same problem again. We’re simply delaying the inevitable by shipping our drive with an extra 4KB of space.
The more spare-area we ship with, the longer our performance will remain at its peak level. But again, you have to pay the piper at some point.
Intel ships its X25-M with 7.5 - 8% more area than is actually reported to the OS. The more expensive enterprise version ships with the same amount of flash, but even more spare area. Random writes all over the drive are more likely in a server environment so Intel keeps more of the flash on the X25-E as spare area. You’re able to do this yourself if you own an X25-M; simply perform a secure erase and immediately partition the drive smaller than its actual capacity. The controller will use the unpartitioned space as spare area.
250 Comments
View All Comments
OCedHrt - Wednesday, March 18, 2009 - link
Excellent article. One of the best I've seen.cliffa3 - Wednesday, March 18, 2009 - link
I can tell a ton of work went into that, and all the history/details are greatly appreciated. I've been checking every week or so throughout February to see if it had been posted, but well worth the wait. As great as SSDs are, I can understand you not wanting to be near one for a while (-: Thanks for all the hard work...especially from the consumer standpoint. And kudos to OCZ for stepping up the way they did...that's (unfortunately) unheard of. Glad to see your no-compromise / report the facts no matter what attitude winning for the consumer. I'm glad at least one manufacturer was able to see (eventually) your intent wasn't to create a commotion, but to just plainly say what needed to be said.sngbrdb - Wednesday, March 18, 2009 - link
An extremely (as always) informative article; comprehensive and no angle missed. Good stuff!From an enthusiast's perspective, OCZ gained 10 levels of trust as a result of Ryan Peterson's response and handling of the Vertex' firmware. Ryan accepted the harsh reality expressed to him from an outside reviewer, risked marketability to rely on Anand's expertise (Anand is *absolutely* correct that 230MB/s is worthless if it comes with stuttering write latency), and resolved the problem in record time.
This is the rare kind of responsiveness and attitude that translate directly into sales (I'm on my way to price the Vertex now).
tshen83 - Wednesday, March 18, 2009 - link
BUT, still based on Windows Vista.I am going to drill this into reviewer's head -> NTFS isn't designed for SSDs.
There are three problems for properly reviewing SSDs today:
FileSystem, RAID controller, and SSD controller.
Each of them can compensate for the SSDs, the question is which one SHOULD be responsible for optimizing random IOs.
It is very clear that Intel's SSDs have implemented all the nitty gritty stuff like copy on write onto the SSD controller itself. So the OS or FileSystem shouldn't be responsible for performance degradation, however the same cannot be said for other SSDs.
I am sure results would be difference if this were conducted on Solaris/OpenSolaris ZFS with Adaptec 5405(IOP348 based RAID card). Not to pump Solaris and ZFS, but it is the primary reason why IBM wants to buy SUN, because it is the only File System on the market that can properly operate SSDs and to do so without RAID controllers.
If Anand really wants to stick to windows still, I think benchmarking on Windows 7 Beta would be slightly better option that Vista. Windows had made a lot of optimizations for rotational based hard disks that it actually makes SSD perform worse.
The Vertex random write 4K IOPS benchmark doesn't look right at 2.6MB/sec, that is hardly 650 IOs. It should be much higher. It could be the ICH10R controller though.
hyc - Wednesday, March 18, 2009 - link
I'd expect IBM's JFS to be pretty efficient on an SSD as well. Anything that appends and avoids overwriting existing sectors will perform better here.Stepping back a bit, I still have a perfectly usable Dothan-based laptop with IDE. Any chance of getting an in-depth review on recent Transcend 128GB IDE SSDs? My new laptop is running fine with a G.Skill Titan 256GB SSD, but when I fire up the older laptop it's unbearable, even with that 7200rpm Hitachi 100GB drive inside.
By the way, I paid under $2/GB for the 256GB G.Skill Titan; for the work I do with it on Linux it performs fine most of the time. (Just make sure to maximize use of the FS cache.) I don't see the value proposition for the OCZ Vertex or Summit.
tshen83 - Wednesday, March 18, 2009 - link
The random write 4K benchmark isn't right for the Vertex and other SSDs because of the test procedure:"The write test was performed over an 8GB range on the drive, while the read test was performed across the whole drive."
It partially disables any write optimization algorithms on the Vertex. Intel wasn't affected as much.
Anand, your first article pumping X25-M literally screwed Samsung's SSD manufacturers big time: they lost hundreds of millions of dollars because of your blatant pumping. Yes the random write was a big problem, but so was testing it on a Windows OS with NTFS and integrated SATA controller like ICH9/10 with no ram cache and obviously lack of IO optimizations for SSDs.
Please redo the review with a proper OS, ie Windows 7 beta or OpenSolaris.
Proteusza - Thursday, March 19, 2009 - link
Yeah, who in their right mind uses Windows and integrated SATA controllers? Oh wait, nearly everyone.Since its pretty obvious that you either work for Samsung or one of their partners, I think its laughable that you think this cost them hundreds of millions in sales. How big is the SSD market exactly, and how many potential buyers visit this site? Not enough to cause such an impact if you ask me.
And the fact remains - had you guys done what OCZ did, and optimized for real world use even if it cost you e-peen in the way of benchmarks, you would have been fine. Its only because you thought you could cheat and swindle consumers that you guys got a bad rep from Anand. Run an honest business, and your customers will thank you. I know that, if I ever considered an SSD, I would either buy Intel or an OCZ Vertex, nothing else. You know why? because they do what they say on the tin. You complain that the X25-M got a glowing review? Make a product as good as it and then Anand will sing your praises, but dont be upset when he tells it like it is.
tshen83 - Thursday, March 19, 2009 - link
Nearly everyone uses Windows and integrated SATA controllers. It still does not negate the fact that neither were optimized for SSD random IO patterns.No, I don't work for Samsung or its partners. It didn't cost them hundreds of millions in sales, but it did cost them hundreds of millions in inventory markdowns. Just look at the free falling of price of JMicron and original Samsung based SSDs in the past few months, and multiply by the inventory, that's the loss I was mentioning.
I am not saying that Intel X25-M is a bad drive. It is good. but there is no reason to use crippled OS File Systems and crippled SATA controller to show off the X25-M's internal copy on write features. When windows 7 comes out of beta(soon), it will be the OS the majority of people will use, and I am just looking forward 6 months when SSD adoption rate will improve more. As to Solaris ZFS, you don't need it if you aren't mentally capable of understanding its elegance.(Most people won't and it is ok)
strikeback03 - Thursday, March 19, 2009 - link
If they had also tested with Solaris/ZFS and reported that the drives worked well there, but 99.x% of users can't take advantage of that, would you have been happier? They may work perfectly well in that scenario, but it is meaningless to most users. Working properly in Vista and OSX is currently a requirement for selling to general consumers. Windows 7 was not even available in beta at the time of the last test, I would expect they will test with it once it launches but for now with the OS/FS they are likely to use most of the available SSDs fail.Also, your economic analysis assumes they would have been able to sell all their inventory at the inflated prices they wanted to. Whether or not they received a negative review from sites like Anandtech, word would have gotten out from early adopters that they had problems. Also, they would have moved fewer units at those prices.
tshen83 - Thursday, March 19, 2009 - link
I could really careless if they did review SSD ZFS. I am using it right now and it kicks ass. Next Version of OSX will have ZFS so I guess Apple agrees that ZFS is the way to go here.Vista is one of the crappiest OS Microsoft put out in recent memory, maybe besides the Windows ME release. Just look at Vista adoption rates, and you will see why.
You still don't understand my argument. My argument was that either File System, or RAID controller or SSD controller must implement copy on write.(basically if you have to erase a block to write to it, you are screwed) ZFS implements that in the file system. Adaptec 5 series or any Intel IOP RAID cards also help SSD performance greatly. If you don't use those two, then the SSD controller must implement it(X25-M is in this category.) You only need one of the three to properly handle SSDs to get greatly improved performance. Anandtech's review obviously skips file system optimization by picking Vista, and RAID controller optimization by picking ICH10R. What is left is the poor SSD controller that needs to virtualize the logical space, thus making the review entirely biased toward the X25-M for a good reason.
It is sad that this is supposedly a review for the Vertex units that OCZ sent to Anand, but it seems to me that it just turned out to be another article defending the X25-M. I know X25-M is a good SSD, but it does not explain why Anand should cripple the OS, Controller so much to do it and then test the SSDs with strange IO queue depth of 3 and during the random write IOPS test, tried to cap the write space to a 8GB confinement. Those settings greatly exaggerate X25-M's internal implementation advantages.
My economic analysis was based on SSD spot price published on dramexchange.com. Since the release of X25-M's review by Anandtech, all Samsung/JMicron MLC drives(Core, Core v2, Supertalent, etc) have been reduced to spot price of 2 dollars per GB to clear the inventories from the typical 4-5 dollars per GB that they used to command. The inventory markdown can be as high as 200+ dollar per drive and then you multiply that by the inventory that major vendors had, giving you hundreds of millions of dollars of aggregate damage sustained by the group of Samsung/JMicron partners.