Thoughts on OS X Lion SSD TRIM Support

There has been a plethora of noise surrounding the upcoming version of OS X, Lion. So much so that I logged into my developer account, downloaded the 10.7 Lion developer preview and installed it on my other drive (a dying SSD I refuse to use for anything critical).

Mac OS X 10.7 Lion Install

Site Note: In case you missed the announcement in my WordPress to Jekyll post, this blog now has a new section called Bits, where I publish shorter pieces more frequently. Bits have their own RSS feed and email list.

After 30 minutes of tinkering around with Lion I didn't really think too much of it aside from some very nice eye candy sprinkled throughout. I like how 10.7 makes no distinction between regular and server versions so you can install the server stuff if you wish. One neat feature of Lion is iPad file sharing (WebDAV). Depending on what emerges on Apple's March 2nd event (rumored iPad 2 launch), this could be one reason why Apple decided to bundle Lion Server into Lion; more consumers can have this seemingly powerful iPad-friendly feature.

Mac OS X lion launchpad
Lion LaunchPad. iOS convergence much?

TRIM!

But I digress, this post is about SSDs. Lion will support SSD TRIM. As someone who has owned three SSDs since 2008 (back when 80GB cost 700), the first of which died after 9 months, the second of which started corrupting things at 15 months and a third that has considerable performance degradation, I can tell you that this is HUGE! Mac OS X has been lacking TRIM support for a while now. Backtracking a bit, what is TRIM?
a TRIM command allows an operating system to inform a solid-state drive (SSD) which blocks of data are no longer considered in use and can be wiped internally. [...]

the typical way in which operating systems handle operations like deletes and formats resulted in unanticipated progressive performance degradation of write operations on SSDs. TRIM enables the SSD to handle garbage collection overhead, that would otherwise significantly slow down future write operations to the involved blocks, in advance.
Vertex 3 SandForce SSD
OCZ Vertex 3 SSD. I'm waiting for its big brother, the Vertex 3 Pro with a SandForce SF-2500 controller, to come out next month. 550 MB/s... unfortunately I won't see all the benefits in my SATA 3 Gb/s MBP.

In short, TRIM support is a great thing for SSD owners and will keep SSD performance degradation to a minimum and ensure maximum possible life. Now is an especially good time to give SSDs a chance if you haven't taken the plunge yet — very smart SSD controllers are emerging that are phenomenal at keeping performance degradation at bay. TRIM affords OS-level garbage collection and helps with wear leveling and fragmentation; otherwise SSDs must blindly assume that blocks written to at least once are still in use by the OS. TRIM tells the SSD what data should be ignored by GC and is in use by the filesystem. This combination also helps reduce write amplification (increased number of flash writes incurred from needing to erase blocks before writing new data), a factor in random write speeds.

If you want to get a new SSD before Lion ships, 1) wait until next month when all the "next gen" controller SSDs come out and 2) keep at least 20% of your storage space free so that wear leveling works better. Then update to Lion the day it comes out to get TRIM.

System Info, SSD - Mac OS X Lion Server
Lion System Info - Listing X25-M with unsupported TRIM

The big question is what SSDs Lion's TRIM command will support. Early reports state TRIM support only works for Apple-shipped SSDs and not third-party SSDs like my Intel X25-M. I would assume this TRIM support will expand to include all SSDs once Lion escapes later this summer.

Speed Demon

Here's what I'm wishing for:
  • Lion to launch with TRIM support for all SSDs
  • Lion to support TRIM in the software RAID controller
  • Apple to update the MacBook Pro line with SATA Rev 3 (6 Gb/s).

Why's that? If my three wishes come true, I will upgrade my 2 year old MBP to a newer one, rip out all drives, put in two Vertex 3 Pros (or whichever SSD is top dog then), assemble in RAID 0 as I've done prior and enjoy 1.1GB/s read and 1.0GB/s write bliss.

Hey, I can dream can't I?

Then again, I guess it would be possible to build a crazy external SSD RAID array, attach to a MacBook Pro via Thunderbolt and have a script (probably just something as easy as a regular Carbon Copy Cloner task) to synchronize changes back to a local drive whenever going mobile (cloning from SSD to SSD is crazy fast).

Alas

Until then, I will limp along with my dying, TRIM-less 80GB X25-M and use a 2.5-inch 500GB Seagate Momentus XT that I ordered as an internal backup/media/clone drive until SF-2500 SSDs and Lion TRIM come out. I'm not one to like spinning disks but the Momentus XT is actually pretty slick: 32MB cache, 4GB SLC NAND memory, 7200RPM disk. It's a solid-state hybrid. Expect a bit about it when it arrives and I install it.
Mac OS X Lion Mission Control
Mission Control. Notice how a Space can be occupied by a full-screen app (Safari).

Thoughts on Lion, SSDs/TRIM?