A Month with Apple's Fusion Drive
by Anand Lal Shimpi on January 18, 2013 9:30 AM EST- Posted in
- Storage
- Mac
- SSDs
- Apple
- SSD Caching
- Fusion Drive
Fusion Drive: Under the Hood
I took the 27-inch iMac out of the box and immediately went to work on Fusion Drive testing. I started filling the drive with a 128KB sequential write pass (queue depth of 1). Using iStat Menus 4 to actively monitor the state of both drives I noticed that only the SSD was receiving this initial write pass. The SSD was being written to at 322MB/s with no activity on the HDD.
After 117GB of writes the HDD took over, at speeds of roughly 133 - 175MB/s to begin with.
The initial test just confirmed that Fusion Drive is indeed spanning the capacity of both drives. The first 117GB ended up on the SSD and the remaining 1TB of writes went directly to the HDD. It also gave me the first indication of priority: Fusion Drive will try to write to the SSD first, assuming there's sufficient free space (more on this later).
Next up, I wanted to test random IO as this is ultimately where SSDs trump hard drives in performance and typically where SSD caching or hybrid hard drives fall short. I first tried the worst case scenario, a random write test that would span all logical block addresses. Given that the total capacity of the Fusion Drive is 1.1TB, how this test was handled would tell me a lot about how Apple maps LBAs (Logical Block Addresses) between the two drives.
The results were interesting and not unexpected. Both the SSD and HDD saw write activity, with more IOs obviously hitting the hard drive (which consumes a larger percentage of all available LBAs). The average 4KB (QD16) random write performance was around 0.51MB/s, it was constrained by the hard drive portion of the Fusion Drive setup.
After stopping the random write task however, there was immediate moving of data between the HDD and SSD. Since the LBAs were chosen at random, it's possible that some (identical or just spatially similar) addresses were picked more than once and those blocks were immediately marked for promotion to the SSD. This was my first experience with the Fusion Drive actively moving data between drives.
A full span random write test is a bit unfair for a consumer SSD, much less a hybrid SSD/HDD setup with roughly an 1:8 ratio of LBAs. To get an idea of how good Fusion Drive is at dealing with random IO I constrained the random write test to the first 8GB of LBAs.
The resulting performance was quite different. For the first pass, average performance was roughly 7 - 9MB/s, with most of the IO hitting the SSD and a smaller portion hitting the hard drive. After the 3 minute test, I waited while the Fusion Drive moved data around, then repeated it. For the second run, total performance jumped up to 21.9MB/s with more of the IO being moved to the SSD although the hard drive was still seeing writes.
In the shot to the left, most random writes are hitting the SSD but some are still going to the HDD, after some moving of data and remapping of LBAs nearly all random writes go to the SSD and performance is much higher
On the third attempt, nearly all random writes went to the SSD with performance peaking at 98MB/s and dropping to a minimum of 35MB/s as the SSD got more fragmented. This told me that Apple seems to dynamically map LBAs to the SSD based on frequency of access, a very pro-active approach to ensuring high performance. Ultimately this is a big difference between standard SSD caches and what Fusion Drive appears to be doing. Most SSD caches seem to work based on frequency of read access, whereas Fusion Drive appears to (at least partially) take into account what LBAs are frequently targeted for writes and mapping those to the SSD.
Note that subsequent random write tests produced very different results. As I filled up the Fusion Drive with more data and applications (~80% full of real data and applications), I never saw random write performance reach these levels again. After each run I'd see short periods where data would move around, but random IO hit the Fusion Drive in around an 7:1 ratio of HDD to SSD accesses. Given the capacity difference between the drives, this ratio makes a lot of sense. If you have a workload that is composed of a lot of random writes that span all available space, Fusion Drive isn't for you. Given that most such workloads are confined to the enterprise space, that shouldn't really be a concern here.
127 Comments
View All Comments
kamsar - Friday, January 18, 2013 - link
Reliability-wise isn't Fusion Drive basically RAID 0? If it's doing block level migrations and one drive dies there's nothing left.Sure hope you've got time machine on... ;)
pgp - Friday, January 18, 2013 - link
Yes, technically I think it's more similar to a JBOD configuration, but the reliability should be the same...IMHO Fusion Drive is good for noobs, but I'd rather choose which files should be stored in the flash drive and which ones in the mechanical drive, know about the free space in each disk, so I'd prefer a 128GB SSD and, separately, a 1TB hard disk to a 1.1TB Fusion Drive.
TrackSmart - Friday, January 18, 2013 - link
I think drive configurations like this are really needed. Maybe not for you and I, but for 99.5% of people. Even people who aren't really "noobs".As an example, I purchased a 120GB SSD for a family member who is reasonably good with computers. It breathed new life into a 3 year old computer and was really noticed and appreciated. One year later, the whole thing was a disaster! There are documents, music, videos, etc all over the place. Usually 2 or 3 copies of the same files on both the SSD and the hard drive. Both nearly full. It took several hours to fix the mess.
Bottom line: Most people can't, aren't willing, or aren't well-organized enough to keep files segregated between drives. Even people who you probably think would be able to handle it by virtue of being reasonably computer literate.
kmmatney - Friday, January 18, 2013 - link
I agree. I'm currently all SSD in my work laptop, but going the manual hybrid route in my home computer. Although I'm pretty organized, it is a pain to mov stuff around manually between the drives. For 2 of my kids computers, I just went with Seagate Momentus XT drives, and they've been great. Not as good as SSD, but a fraction of the cost.ToniCipriani - Friday, January 18, 2013 - link
Multiple copies could be easily avoided, actually.On my RAID-0 SSD + 1TB hard drive configuration, I installed Windows 7 in a way that all the profile folders (Users and ProgramData) existed on the hard drive by default, and created NTFS junctions on the SSD to redirect any old software. I never even needed to open the C Drive anymore, and all files and desktop settings reside on the hard drive automatically.
For older machines XP should support junctions as well.
Now filling up the drive, that's a different story. And let me guess, the browser got filled up with toolbars too?
Zink - Friday, January 18, 2013 - link
Fusion drive is even easier to use than that though and it speeds up all of your programs and files as well as it can with the SSD size given. With a setup like that there are always going to be things on the HDD that get used regularly and they will never see a boost from the SSD. There is the upside of better reliability but outside that boosting 120GB or 240GB of the most accessed files seems even better than permanent segregation.dananski - Saturday, January 19, 2013 - link
I have manual HD/SSD combinations in my desktop and laptop, have done the same for three PCs I've built for family and have similar setup for nearly every workstation at work. It seems that some users are naturally much better than others at handling their file storage, but I think it's invaluable for people to get good at organising the data systematically and consciously rather than to leave it up to an algorithm that might not have the same priorities.I don't like the sounds of every file being written to my SSD then moved to the HDD - I'd get through write cycles for no good reason whenever copying a file to that hybrid drive, and if my HDD doesn't have redundancy I'd feel safer with my important docs on the SSD, even if they're not deemed worthy of the speed boost.
seapeople - Sunday, January 20, 2013 - link
Couldn't you just put the "Pictures", "Music", and "Videos" libraries on the hard drive and keep the documents and everything else on the solid state drive? Seems to me like that would work for 99% of people and not require any user thought... So you have a video, you save it in the "Videos" location, etc, and these files would see very little difference being on the HDD vs SSD.Wolfpup - Friday, January 18, 2013 - link
Yeah, me too. Like my shows from my Tivo are obviously GIGAAAANTIC and don't NEED to have fast access to them. Ditto (even more so) for any music or iTunes stuff. It's not like it's THAT hard to figure out what to put where, but yeah, the average person unfortunately would probably be clueless about it.KitsuneKnight - Friday, January 18, 2013 - link
It's not so hard if you can get away with just moving your music/videos/images to the HDD. It's much harder if the data you work with is absolutely massive, though.One artist I know has a SSD as their boot drive, and 3 HDDs. The PSDs they work with are absolutely massive, and they produce a huge number of them. Working with them on the SSD is far better than the HDDs, but even loading them on that is a bit on the slow side (as opposed to the multi-minute loads from an HDD). But, they have far too many to fit on the SSD.
So they have the PSDs spread over the 4 drives, filling most of them up, having to manually shuffle them around. Something like Fusion Drive would work far better, as it would be doing exactly what she's doing, just without the manual effort to constantly move old files off the SSD (resulting in multiple hierarchies). The older PSDs would be migrated to the HDDs automatically. And if she starts working on an old set again, they could be promoted back to the SSD... with no user effort.
And isn't that the point of computers? To make us do less work? It seems a lot of people want to do the jobs of a computer for them. While I'd prefer Fusion Drive to let you pin/hint files to certain drives, I'd say in most cases a 2 drive set up doesn't actually provide real world benefit over an intelligent (which I'm assuming Fusion Drive is) tiering system, even for most power users.