How can I verify that a DIY Fusion Drive is working as it should?

I installed an SSD in my 2011 Mac Mini to run alongside the stock 500GB HDD. After carefully reading through a number of tutorials, I used Terminal to merge them into a single "Fusion Drive". I cloned my data back over, and all seems to be running perfectly. I'm seeing a very nice bump in speed in starting up and launching apps, and other disk-intensive activities.

In browsing through various articles and forum posts on the topic, I see some people claiming success doing this with various Mac models, but others claiming that home-brewed Fusion Drives may not actually be migrating data correctly between the SSD and HDD. In particular, this OWC tutorial claims that this ONLY works with a 2012 Mac Mini because "these are the only machines that currently have a version of Disk Utility that can create a Fusion volume". In the comments, the authors further state that

According to our techs, when using any version of Disk Utility other than the one that came with the 2012 Mac mini, it will appear as though you have a Fusion Drive, but it will not behave as such. You would be essentially creating a standard Core Storage volume rather than Fusion.

My question is: is there a way, without buying specialized dignostic software, to verify whether or not the essential "fusion" of data migration is occurring between HDD and SSD?


Solution 1:

You can use the command-line iostat tool to monitor disk activity on a per-drive basis.

Runnning iostat disk1 disk2 1 will give you an output of disk activity for disk1 and disk2 every second. You'll want to change the disk identifiers to match those of your HDD and SSD.

By running this command while you write a bunch of data to your drive (the dd command can be useful for this), you can watch which drives the writes are hitting. Once you fill up your SSD, it should start writing to the HDD, and once the writes are done, you should see some activity transferring ~4 GB off the SSD to the HDD.

You can also test whether data is promoted off the HDD by reading some data off the HDD (again, dd is useful for this). Depending on how much use your Fusion drive has already had, you may need to repeatedly read the same data in order to get it promoted, but once it happens, you should see some transfer activity, once you're done all your reading.

For some more detailed descriptions of how and what to look for on a DIY Fusion drive, check out the latest posts on this Tumblr.

Solution 2:

The above information is outdated. Up until Mountain Lion 10.8.2 you could only get a do-it-yourself Fusion Drive on a Mac Mini 2012 just like the OP said. On other machines you would just create a Core Storage Volume. The disks would be see as one, but Mountain Lion would just fill up the SSD first and then the HDD. It would not copy files to the SSD based on frequent use, which is the great selling point of a Fusion Drive, because you get near SSD storage for the most juste files, not just the oldest files.

Apparently since Mountain Lion version 10.8.3 the Fusion Drive works on all Macs with a Core Storage Volume based on a faster en slower drive. See this updated tutorial for 10.8.3 and above: http://blog.macsales.com/17624-os-x-10-8-3-provides-fusion-drive-setup-option-for-non-fusion-drive-equipped-macs I haven't been able to confirm it myself, so I really hope they are right. I've already created the Core Storage Volume, but the disk is not full enough to tell if Fusion works for my setup (iMac 2010).

Solution 3:

One difference I've found - and not solved - is that the recovery partition, for some reason, seems to not work properly.

And Internet recovery - at least for older machines - seems to be based on Lion with CoreStorage versions that do not understand Fusion Drives.

Make sure you test your recovery partition. If it doesn't work, and if you don't have a flash recovery disk, you may wind up screwed.

Solution 4:

Based on jollyjinx's articles, I made this script which I used to help me test that my DIY Fusion setup is working correctly: https://gist.github.com/11522980

Basically, you have to fill the SSD with garbage files until they flow onto the HDD, then repeatedly access files from the HDD while watching disk activity. Eventually the HDD activity will stop and SSD activity will continue (or start), meaning the files have been effectively transferred.

Also, I’m using Mavericks and the two Fused drives are both external drives.