Apple Fusion Drive—wait, what? How does this work?

New feature sounds less like hybrid drive caching and more like auto-tiering.

We got a slide this morning, but does anyone understand the Apple Fusion Drive yet?

Apple's new iMac announcement today included an interesting bit of information on an upcoming technology Apple calls "Fusion Drive." According to Phil Schiller this morning, the technology takes a relatively small solid state disk and a relatively large spinning hard disk drive, then "fuses" them together into a single drive.

Speculation in the Ars forums started immediately, with most wondering if "Fusion Drive" works the same as current hybrid disk drives. Those incorporate some amount of NAND flash inside a traditional hard disk drive as an extended cache. Others speculated the Apple technology resembles something like Intel's Smart Response Technology, which uses a dedicated SSD (of up to 64GB in size) as a transparent cache for a larger hard disk drive.

Technical details are scarce, but based on Schiller's descriptions, the answer to both of those questions appears to be "no." Apple's Fusion Drive does not appear to function like an SSD-backed disk cache, but rather seems more like a file-level implementation of a feature that has existed for some time in big enterprise disk arrays: automatic tiering.

Most big disk arrays have different types of storage—some slow spinning disk, some faster spinning disk, and some solid state storage—and some have the ability to monitor what data is being accessed the most and can automatically move that data to a faster tier of disk as needed. These features typically operate at the block level, below the files, and can be done on large or small chunks of data, depending on what's hot and what's not. Auto-tiering also includes the ability to take data that is no longer in demand, or no longer "hot" and demote it down off of fast disk and onto slower stuff. In this way, a file that doesn't get accessed very often might be stored on slow SATA disks, but if a hundred people need to open it repeatedly over a short period of time, it will get pulled up and kept on SSD until it's not needed anymore.

Based on Schiller's explanation, Fusion Drive sounds similar. In a caching solution, like Intel's, files live on the hard disk drive and are temporarily mirrored to the SSD cache as needed. In an enterprise auto-tiering situation, and with Fusion Drive, the data is actually moved from one tier to another, rather than only being temporarily cached there.

Schiller noted that out of the box, a Fusion Drive-equipped Mac will have its core operating system components and preinstalled applications placed on the SSD side of the house, while documents and applications live on the slower spinning disk. As you open files and documents and install applications, the operating system makes note of what you're doing and how often you do it, and the things you use most often are promoted up onto the SSD. This is done transparently, and you see the SSD and hard drives as a single volume.

This is almost certainly done using Apple's Core Storage logical volume manager, introduced in OS X 10.7. As a volume manager, Core Storage has the chops to weld the two separate drives together into a single entity and handle the relocation of files between one tier and the other. I say "files" because it's almost certain that the implementation here is file-level instead of block-level, since a single user doesn't need the granularity that a block-level tiering solution would provide—as users, we tend to care about files and applications. OS X needs only a method of keeping track of how many times and how often a file or application is used and then can automatically have that file slipped onto fast SSD or slow disk when it crosses an upper or lower threshold. The tracking might be implemented through Core Storage attributes or through an external on-disk database like Spotlight and document revisions.

Apple is currently mum, though with the announcement still less than a few hours old, we're sure more information will begin to trickle out shortly. It seems certain, though, that this is not a caching implementation like Intel's but rather actual movement of files between physical disks by the Core Storage volume manager.

Promoted Comments

First off, I am 100% certain this is HFS+ sitting on top of CoreStorage based on comments made to me by by certain former coworkers who are still at Apple.

Second off, until I actually get one of these things in my hands I cannot tell you exactly what the behavior of it is, but it could be any number of the things people have supposed in this thread. If you disassemble the existing CoreStorage driver you will see a complete COW B+Tree implementation (based on the same paper <http://static.usenix.org/event/lsf07/tech/rodeh.pdf> as BtrFS). They use that in order to implement their LVM and do things like reshuffling around data on the disk between different representations. Additionally, it supports transactions and rollbacks. There are enough tools there to build all sorts of things from simple read caching to write through caching that is transactionally aware and would survive an SSD failure (only losing the data on the SSD that had not yet made it back to the HD at the time of the failure, but leaving the HD in a coherent state). Additionally it could extend the existing hotfile support to hint things to CoreStorage.

If I had to guess I would assume the current implementation is not super ambitious. While CoreStorage itself is quite complex and is clearly designed to support some impressive storage needs Apple has been quite deliberate and cautious about rolling out features based around it.

Anand says frequently-used files are moved to the SSD, and that there's a 4 GB write cache on the SSD as well.

Quote:

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.

We'll see soon, but I'll be very surprised if this isn't a plain old hybrid drive, just like I currently have in my iMac now. There's likely some extra code to more efficiently use the arrangement, but if this was truly new and exclusive hardware, they'd have bought a drive company and would be producing these drives themselves.

I am thinking about the audio application of this (from a DAW perspective). Your most commonly used samples and instruments on the fast disk, along with live recordings, but mix-downs and masters on the slower disk pending backup.

BREAKING NEWS: Apple does something that everyone else has been doing for years!

Did you even read the article? Yes, enterprise disk arrays have been doing it for years; but Apple is implementing it on a desktop PC. Nobody in the Windows world is doing this.

Evil_Merlin wrote:

Um, Seagate has had these for years. Momentus XT's anyone?

That's a block level caching solution. Very different implementation wise from what Apple is doing here. Apple can be much more intelligent about it because its implementation has access to file system metadata.

Awesome. I actually was hoping that hybrid SSDs operated this way back when I first learned about them (but of course, they didn't). After using some hybrid SSDs for a while, I think that Apple's "fusion drives" probably will give better performance. As of right now, I'd not bother too much with hybrid SSDs over standard HDDs with a high enough RPM. Hopefully this plays out.

We'll see soon, but I'll be very surprised if this isn't a plain old hybrid drive, just like I currently have in my iMac now. There's likely some extra code to more efficiently use the arrangement, but if this was truly new and exclusive hardware, they'd have bought a drive company and would be producing these drives themselves.

It's not really a new technology; it's a software caching layer on top of the file system. They don't need to own a drive maker to do it; in fact, the hardware they're using is very likely an off the shelf HDD and SDD with some custom silicon to manage it (maybe not even that; it could be 100% software.)

If you could override the SSD and force it to install things (like apps) directly to it, then that would be great. Problem with cache ssd's was you toss one into your comp, and sure, it caches stuff and speeds things up. But, (if I recall correctly) you get no say in what gets tossed over. Since Apple is pre-installing the OS & Apps onto the SSD, I'm guessing the end-user will also have the ability to "flag" certain installs as priority to automatically get installed to SSD instead of leaving it up to the disk manager to figure out.

That's a block level caching solution. Very different implementation wise from what Apple is doing here. Apple can be much more intelligent about it because its implementation has access to file system metadata.

Actually this sounds a lot like Intel's SRT - a feature that is amusingly enough supported on chipsets on every iMac after the one I'm typing this on. My only hope is the comment about how it was built in to Mountain Lion, so it may be possible to enable on this old thing.

BTW, Momentus XT is strictly a read cache - and a 4GB or 8GB one at that. This is 128 GB.

BREAKING NEWS: Apple does something that everyone else has been doing for years!

Did you even read the article? Yes, enterprise disk arrays have been doing it for years; but Apple is implementing it on a desktop PC. Nobody in the Windows world is doing this.

Bullshit. Windows Vista and 7 have had support for on board cache that would dump a large chunk of files and the OS into a 2-16GB cache that would speed things up. This has been done on Windows for YEARS. Look up hybrid drives.

BREAKING NEWS: Apple does something that everyone else has been doing for years!

Did you even read the article? Yes, enterprise disk arrays have been doing it for years; but Apple is implementing it on a desktop PC. Nobody in the Windows world is doing this.

Bullshit. Windows Vista and 7 have had support for on board cache that would dump a large chunk of files and the OS into a 2-16GB cache that would speed things up. This has been done on Windows for YEARS. Look up hybrid drives.

BREAKING NEWS: Apple does something that everyone else has been doing for years!

Did you even read the article? Yes, enterprise disk arrays have been doing it for years; but Apple is implementing it on a desktop PC. Nobody in the Windows world is doing this.

Bullshit. Windows Vista and 7 have had support for onboard cache that would dump a large chunk of files and the OS into a 2-4GB cache that would speed things up. This has been done on Windows for YEARS.

Yeah, except ReadyBoost never really quite worked that well and is implemented differently. It's just a caching layer on top of the filesystem as opposed to tiering (i.e. file changes are written to both the SSD and the HDD.) This is significant because it effectively speeds up read times but not write times. It's not the same implementation.

That's a block level caching solution. Very different implementation wise from what Apple is doing here. Apple can be much more intelligent about it because its implementation has access to file system metadata.

Uh, doing it block-level is more intelligent, not less, because it means you don't have to burn cache space on portions of files that are never normally read.

Yeah, except ReadyBoost never really quite worked that well and is implemented differently. It's just a caching layer on top of the filesystem as opposed to tiering (i.e. file changes are written to both the SSD and the HDD.) This is significant because it effectively speeds up read times but not write times. It's not the same implementation.

What are you talking about never really quite worked well? Use a hybrid disk, and with Readyboost and ReadyDrive the performance gains on boot are massive. This is VERY noticible with lower RAM systems.

That's a block level caching solution. Very different implementation wise from what Apple is doing here. Apple can be much more intelligent about it because its implementation has access to file system metadata.

Yes, but the Seagate drives you mentioned in your original post are a block level implementation and are only a read cache. The article actually explains this, if you had bothered to read it...

Note to Ars mods: this type of behavior where people argue without having read the article has gotten noticeably worse since the voting system was implemented. Don't know if they're related, but first post syndrome and all. Figured I should mention it.

If you could override the SSD and force it to install things (like apps) directly to it, then that would be great. Problem with cache ssd's was you toss one into your comp, and sure, it caches stuff and speeds things up. But, (if I recall correctly) you get no say in what gets tossed over. Since Apple is pre-installing the OS & Apps onto the SSD, I'm guessing the end-user will also have the ability to "flag" certain installs as priority to automatically get installed to SSD instead of leaving it up to the disk manager to figure out.

Yup, to many (power) users, something which doesn't let them have full access to the SSD to do with it what they want is pretty silly.

Sure, for more casual users (who probably won't notice that much anyway), an automatic system might be better, but I would much rather have a choice of what goes on my SSD and what goes on my mechanical drive, rather than the OS doing what it thinks will benefit me most.

Lee Hutchinson / Lee is the Senior Reviews Editor at Ars and is responsible for the product news and reviews section. He also knows stuff about enterprise storage, security, and manned space flight. Lee is based in Houston, TX.