Sunday, February 10, 2013

Taking my 2011 Mac Mini to a new level of performance with DIY Fusion Drive

The Background

I purchased a Mac Mini Server configuration (quad-core i7, two 750GB 7200-rpm hard drives) in December 2011 to be used as the family media centre computer connected to the flat panel TV. But it didn't see much use as the family preferred the Apple TV with Netflix and other media streamed over the web. So I bought a 24" AOC IPS display and repurposed the Mini as my home office computer for web surfing duties and running a Windows 7 virtual machine on the very capable Parallels Desktop hypervisor. I soon realised that 8GB RAM wasn't enough to sustain an acceptable level of performance if I was to also run additional Mac applications (e.g. iPhoto, iTunes, Evernote) as well. It wasn't that expensive to upgrade to 16GB RAM, and in return, I got what felt like a newer more powerful computer! Fast-forward a year, the Mini was still fit-for-purpose, but I had taken to running Linux in another virtual machine and the hard drive storage seemed much fuller. I noticed the system was constantly thrashing the hard drive and I was spending more time watching the spinning wheel on the screen. I remembered the mention of Apple Fusion Drive during the Fall 2012 Apple product announcements. It seems like a decent idea and not unlike the storage-tiering concept that is common place in the enterprise storage systems I have implemented in my day job. I found a very good article on Anandtech about the inner workings and general experience with Fusion Drive. There were also many other articles about Do-It-Yourself Fusion Drive for older Macs, in particular this post from Rick Kasguma. This provided all the information I needed to move ahead with the project to take my Mini's performance to a new level.

Executing The Plan

After some research, I decided to purchase a SanDisk Extreme 240GB SSD based on its very good band-for-the-buck performance as reported by this post and others. Note that my Mac Mini's two internal hard drives were not configured for RAID-1 mirroring as all important files were already continuously protected by automated uploads to Crashplan cloud storage and I didn't want the possibility of logical storage corruption propagating across two drives. Instead, I had SuperDuper configured to replicate the main hard drive to the second hard drive a couple times a week, and I also manually replicated the main internal hard drive to a 1TB external Firewire hard drive at least once each month. This strategy complies with the "123 rule of backup" - 1 copy off-site, 2 types of storage media, 3 copies of data.

You probably know by now that I am a big fan of SuperDuper. I have been using this product for at least 5 years to make sure I have bootable replicas of my Mac startup disks. I can't believe the decent folks at Shirt Pocket do not charge more than £20 for this awesome product that just works! Btw, I get no commission from them nor am I an affiliate in anyway. So I am just a very happy (and sometimes very grateful) customer.

Anyways, the following is the plan as executed for this upgrade project:
  1. Get SanDisk Extreme 240GB SSD
  2. Upgrade internal 750GB boot drive to OS X Mountain Lion
  3. Use SuperDuper to replicate upgraded OS X Mountain Lion volume to external Firewire drive
  4. Use SuperDuper to replicate upgraded OS X Mountain Lion volume to second internal drive
  5. Create OS X USB restore key per straightforward instruction here
  6. Verify boot of USB restore key
  7. Verify boot of external Firewire drive
  8. Install SSD in Mac Mini, replacing the first internal 750GB boot drive hard drive. Very good instruction video.
  9. Boot off external Firewire drive
  10. Setup Fusion Drive. This is pretty straightforward if you are comfortable working in the Linux/UNIX or OS X command line. Buy your favourite Linux/OSX geek a beer to take care of this if you don't want to deal with this yourself. There are plenty of instructions on the Internet (Google "DIY Fusion Drive") so I am not going to repeat the details here. To summarise, the steps and commands will look something like this:
    1. diskutil cs create fusion disk0s2 disk1s2
    2. diskutil cs list and take note of the Logical Volume Group ID
    3. diskutil coreStorage createVolume jhfs+ Fusion 100%
  11. Install OS X Mountain Lion on new Fusion Drive
  12. Use SuperDuper to restore OS X Mountain Lion volume from external Firewire drive to Fusion Drive. It is very important to use SuperDuper "Smart Update" so it won't erase and corrupt the Fusion Drive partition.
  13. Enable TRIM support with Trim Enabler
  14. Setup SuperDuper to replicate (internal) Fusion Drive to above 1TB external Firewire drive every Tuesday and Saturday
  15. Manual SuperDuper replication of Fusion Drive to another external drive
  16. Make sure Crashplan is backing up important files to the cloud

I Love It When A Plan Comes Together

Well, it has been several days since the upgrade to the DIY Fusion Drive on my Mac Mini and I cannot be more satisfied with the performance improvement! It used to take up to 5 minutes for the system to startup completely with all the applications loaded, including iTunes, iPhoto and the two Parallels virtual machines. Now it takes much less than a minute! Applications startup in a few quick seconds instead of 10s of seconds, especially for big ones such as Microsoft Office applications. Overall, almost all applications seem to be generally more responsive in their operation. Another benefit is that the Mac Mini seems to run quieter and cooler with the much lower power consumption SSD and the remaining internal hard drive not thrashing as before.

Additional Thoughts

As good as the Fusion Drive looks, there is an element of risk that much be understood. Fusion Drive is not a caching solution that uses the SSD to accelerate the hard drive. It behaves more like a tiered storage system where frequently access data blocks/chunks are "promoted" to the fast SSD and less accessed data blocks/chunks are "demoted" to the slower bulk storage hard drive. Like RAID-0 striping, if either the SSD or the hard drive should become inaccessible for whatever reason, the entire Fusion Drive volume will be unusable. Any time you add more bits into a system, you are more likely to increase the possibility of failure in the chain of operation. Another point of concern is the longevity of SSD as it is well known by storage techies that the mass market MLC SSDs have fairly limited write endurance. That said, SSD manufacturers have implemented all sorts of secret sauces in their controllers to improve the write endurance of their products. This is why it pays to buy the latest high quality SSD your budget allows. In any case, you are responsible for backing up your data following the practice of the aforementioned "123 rule of backup" regardless of the risk profile of your storage system.

The official Apple Fusion Drive option in new iMacs and Mac Minis consists of 128 GB SSD paired with a 1TB or bigger hard drive. This means the SSD to hard drive (i.e. fast to slow) storage ratio is around 1:8 or worse. This is probably adequate for most use cases consisting mainly of web surfing and productivity (e.g. MS Office) applications. Based on the articles and test results I have come across, Fusion Drive storage performance can degrade to hard disk-like level if the aggregate active data blocks/chunks consistently exceed the capacity of the fast tier of storage (i.e. the SSD). So it helps to have some understanding of the size of your expected active working data set. In my case, my iPhoto and iTunes libraries are around 100 GB total, the virtual machines are another 100GB, so I think the 240 GB SSD should be more than adequate after factoring additional space for the operating system, other applications, and write caching (all writes go to SSD first). Also keep in mind that in most cases, Fusion Drive does not need to "promote"/"demote" entire file across the storage tiers, it can do it in "chunks" or subsets of the files. This means for most use cases, it is not necessary to install big (and more expensive) SSDs.

The Bottom Line

Lets be clear, the Apple Fusion Drive is nothing new nor entirely innovative. It is a concept that has existed in enterprise storage systems for a long time. Software and hybrid software/hardware (e.g. Intel SRT) based storage caching solutions leveraging SSD have been available for PCs/Windows systems for quite some time as well, but have so far failed to be implemented in any significant scale and seem like rather half-hearted effort. I have installed a Seagate Momentus XT hybrid hard drive with 8GB flash memory cache in the kids' Windows laptop many months ago. Though the performance improvement has been somewhat perceptible over the old hard drive, it hasn't been anything to get excited about.

Apple's accomplishment with the Flash Drive is in making it available to the masses (who use Apple Mac computers) in a simply packaged option that produces dramatic improvements in perceived performance. Better yet, this technology is available any older Mac computers that can be upgraded to run OS X Mountain Lion. Do I recommend the Apple Fusion Drive? You bet I do!

Also see follow up post.

No comments:

Post a Comment