Understanding Apple's Fusion Drive
by Anand Lal Shimpi on October 24, 2012 1:36 AM ESTDuring its iPad mini launch event today Apple updated many members of its Mac lineup. The 13-inch MacBook Pro, iMac and Mac mini all got updated today. For the iMac and Mac mini, Apple introduced a new feature that I honestly expected it to debut much earlier: Fusion Drive.
The idea is simple. Apple offers either solid state or mechanical HDD storage in its iMac and Mac mini. End users have to choose between performance or capacity/cost-per-GB. With Fusion Drive, Apple is attempting to offer the best of both worlds.
The new iMac and Mac mini can be outfitted with a Fusion Drive option that couples 128GB of NAND flash with either a 1TB or 3TB hard drive. The Fusion part comes in courtesy of Apple's software that takes the two independent drives and presents them to the user as a single volume. Originally I thought this might be SSD caching but after poking around the new iMacs and talking to Apple I have a better understanding of what's going on.
For starters, the 128GB of NAND is simply an SSD on a custom form factor PCB with the same connector that's used in the new MacBook Air and rMBP models. I would expect this SSD to use the same Toshiba or Samsung controllers we've seen in other Macs. The iMac I played with had a Samsung based SSD inside.
Total volume size is the sum of both parts. In the case of the 128GB + 1TB option, the total available storage is ~1.1TB. The same is true for the 128GB + 3TB option (~3.1TB total storage).
By default the OS and all preloaded applications are physically stored on the 128GB of NAND flash. But what happens when you go to write to the array?
With Fusion Drive enabled, Apple creates a 4GB write buffer on the NAND itself. Any writes that come in to the array hit this 4GB buffer first, which acts as sort of a write cache. Any additional writes cause the buffer to spill over to the hard disk. The idea here is that hopefully 4GB will be enough to accommodate any small file random writes which could otherwise significantly bog down performance. Having those writes buffer in NAND helps deliver SSD-like performance for light use workloads.
That 4GB write buffer is the only cache-like component to Apple's Fusion Drive. Everything else works as an OS directed pinning algorithm instead of an SSD cache. In other words, Mountain Lion will physically move frequently used files, data and entire applications to the 128GB of NAND Flash storage and move less frequently used items to the hard disk. The moves aren't committed until the copy is complete (meaning if you pull the plug on your machine while Fusion Drive is moving files around you shouldn't lose any data). After the copy is complete, the original is deleted and free space recovered.
After a few accesses Fusion Drive should be able to figure out if it needs to pull something new into NAND. The 128GB size is near ideal for most light client workloads, although I do suspect heavier users might be better served by something closer to 200GB.
There is no user interface for Fusion Drive management within OS X. Once the volume is created it cannot be broken through a standard OS X tool (although clever users should be able to find a way around that). I'm not sure what a Fusion Drive will look like under Boot Camp, it's entirely possible that Apple will put a Boot Camp partition on the HDD alone. OS X doesn't hide the fact that there are two physical drives in your system from you. A System Report generated on a Fusion Drive enabled Mac will show both drives connected via SATA.
The concept is interesting, at least for mainstream users. Power users will still get better performance (and reliability benefits) of going purely with solid state storage. Users who don't want to deal with managing data and applications across two different volumes are still the target for Fusion Drive (in other words, the ultra mainstream customer).
With a 128GB NAND component Fusion Drive could work reasonable well. We'll have to wait and see what happens when we get our hands on an iMac next month.
87 Comments
View All Comments
MrSpadge - Wednesday, October 24, 2012 - link
Same here. Except that NVelos solution is just as simple (personally used that one as well).lowlymarine - Wednesday, October 24, 2012 - link
Don't you think it's a tad bit early to declare Smart Response to have failed, seeing as it's only been available on notebooks and most desktops since the IVB launch earlier this year? In fact, I've seen a lot of cheaper Ultrabooks using SRT.Klimax - Thursday, October 25, 2012 - link
I don't think he is aware of that. It looks like he's talking about old technology (at least Core 2 or older)Paulman - Wednesday, October 24, 2012 - link
Wow, thanks for posting this, Anand! I guess you're right - it's not SSD caching per se (other than the 4GB write cache). With a 128GB SSD array and the OS directing what files to move/exchange from the rotational HDD onto the SSD portion, this looks like it could be an elegant solution.Given the option, would us regular desktop users want to move to an intelligently-managed hybrid Hard Drive solution? I run Windows Vista on a 128GB OCZ Vertex 3 with a 1 TB drive as my other applications (and media) storage drive.
However, all of my games were originally installed on my rotational HD by default. If I want Starcraft 2, for example, to be loaded off my SSD, I have to copy over the main game directory and use a directory junction (Windows' version of a UNIX-style symbolic link to a directory) to point to the new SSD directory in order to "fool" Windows into thinking it's still on my rotational drive. And strangely enough, this process BREAKS when it's time to patch or update my game.
If I had a smart algorithm deciding what files were commonly accessed and pulled those files onto my SSD for me, that would be very effective, I feel.
Can Intel's "Smart Response Technology" already do this? Is Apple's Fusion Drive significantly different? Are there any significant downsides to these methods versus manually maintaining an SSD volume and a rotational HD volume, given that you throw at least a 64GB or 128GB SSD into the setup?
Impulses - Wednesday, October 24, 2012 - link
Meh, I don't see what benefit it has for enthusiasts... Junction points aren't much of a hassle, I like being in control, and SSD prices are plummeting anyway. I was gonna buy a second 128GB drive soon, to store more games on flash, but I might just jump on a 256GB given the deals I've seen (and with BF looming).For mainstream users it's definitely an optimal solution tho.
dcollins - Wednesday, October 24, 2012 - link
I am an enthusiast (work in IT, built computers for a decade) and I'm with Paulman. Sure, I can keep it mostly organized, but I have better things to do and I'm willing to sacrifice a little bit of performance for convenience. I'd rather be getting some work done than messing around with my files.Freakie - Wednesday, October 24, 2012 - link
Why don't you just reinstall SC2 on your SSD? o_O Seems kind of silly to have to go through that process again and again when you could do just one things and have it work.And Intel's SRT is the exact same thing, except it leaves a copy for parity on the drive be default (I believe you can turn that off). Where Intel's SRT differs is it's cache size. Instead of 4GB, you have a max of 64GB which is used to not only cache writes, but to cache frequently used files as well. So instead of having 95% storage and 5% cache, the cache is flexible and configurable up to 64GB. If you have a bigger SSD than 64GB then you just use the rest for storage as you deem fit.
So in your case, you could say, use 10GB for Intel's SRT write-cacheing and your remaining usable space for installing Windows/SC2/Web browser/ect. Or if you want something automated, then make your cache the full 64GB and it will work just like Apple's Fusion and the remaining 60GB you can use to install Windows and any other programs/files you don't want getting bumped off the cache due to inactivity.
Bownce - Tuesday, October 30, 2012 - link
Because his DRM hacks would break?JTravers - Wednesday, October 24, 2012 - link
What would be great is if you could use Fusion Drive on an SSD/HD combo you installed yourself. I have an SSD as my main drive and a HDD as the secondary in the optibay of my Macbook Pro. I would love to have Mountain Lion combine them into one logical unit and manage it for me.I'm hoping there is an easy way to enable the feature through terminal commands or that someone makes a 3rd party app to do it (see: Trim Enabler).
solipsism - Wednesday, October 24, 2012 - link
Yeah, I'm hoping someone finds out what OS X SW is handing this and ports it to other Macs as I also have such a setup.I have made my entire HDD my user folder using the Advanced Settings options in Sys Prefs so my SSD can be my boot and app drive. I don't even use half of my 80GB X25.