Combine an SSD & HDD to create a DIY Fusion Drive in OS X
With Apple now supplying Fusion Drives in their current generation Mac Minis & iMacs we thought it was about time we let classic Mac Pro users know how to get in on the action. A Fusion Drive is basically a software based SSHD (hybrid drive), it uses software to combine a regular, slower but higher capacity, HDD and a modern, faster but smaller capacity, SSD or flash storage module into one drive. OS X will then control which drive your files end up being stored on, all files will be stored on the SSD until it’s full, after this point your system will store only your most used files on the SSD.
In theory, this set up should manually optimise the way your files are stored, meaning the best possible storage performance without lifting a finger. Now, one may ask, surely a hardware based SSHD is superior to the software based Fusion Drive? Well, the general consensus is that Apple’s proprietary Fusion Drive software is in fact a superior file management system to those used in SSHDs.
With all this in mind, lets talk about how a Fusion Drive can help system performance. Any file stored on an SSD will see performance benefits over those stored on a HDD, quicker loading to RAM/CPU, faster application load speeds, faster OS X boot times, the list could go on. Basically, if something is important to your workflow, be that your OS, favourite applications, often used plugins or sample libraries, then they are best off stored on an SSD. Of course, this requires manual organisation, Fusion Drives attempt to alleviate this by analysing exactly what it is you use most often and then storing that on the SSD for you. The crux of the argument for a Fusion Drive? Pain free optimal storage performance.
So, what do you need to create a Fusion Drive?:
- 1 or more HDDs.
- 1 or more SSDs or flash storage modules.
- The instructions below.
How to create a Fusion Drive in OS X:
- Make sure that both your SSD & HDD are installed in your Mac Pro using the SATA or PCI-e bays.
- This process will destroy any data currently stored on your SSD & HDD, so please ensure they are backed up properly if there is data on them that you do not wish to lose.
- Boot into OS X (if you would like to use your new fusion drive as the boot drive then you will need to boot using an OS X USB Recovery Partition, if you need to create one follow this guide).
- Once you are booted into either OS X or your OS X USB, open Terminal. You can find it at the following path: \Applications\Utilities\Terminal.app.
- Inside terminal enter the following command: diskutil list
- All of the drives in your system will now be listed, each will reveal in mount point in the following format: /dev/disk#
- The ‘#’ will be a number which is assigned to each drive by OS X. Make a note of the mount points for both the HDD & SSD that you wish to create the Fusion Drive with, you’ll need them shortly.
- We will now create the logical volume group using Core Storage, this will perform as a container for the drives that are being fused. You will need the mount points that you noted down in the previous step. Enter the following command into terminal: diskutil coreStorage create LOGICAL_VOL_GROUP_NAME DRIVE_1 DRIVE_2
- In place of ‘LOGICAL_VOL_GROUP_NAME’ select a name for your new Fusion Drive.
- In place of ‘DRIVE_1’ & ‘DRIVE_2’ use the mount points we jotted down before in the ‘/dev/disk#’ format.
- So if you decide to call your Fusion Drive ‘Fusion Drive’ & your disk mount points are ‘/dev/disk1’ & ‘/dev/disk2’ then the command would look like this: diskutil coreStorage create ‘Fusion Drive’ /dev/disk1 /dev/disk2
- Make sure you include the apostrophes around the name, otherwise the command wont work
- We will now create the logical volume, this is where your data will be stored. To complete this step we will require your LVG UUID, this is an identifier assigned to storage groups by OS X. After completing the previous step, Terminal should now display your LVG UUID as ‘Core Storage LVG UUID’. Make a note of the ID and enter the following command: diskutil coreStorage createVolume lvgUUID type name size
- ‘type’ refers to the format of the drive, for OS X Extended use ‘jhfs+’. Don’t use a different type unless you know exactly what you’re doing.
- ‘name’ refers to the name of the Fusion Drive that you set in step 7.
- ‘size’ refers to the size of the Fusion Drive, use ‘100%’ unless you know exactly what you’re doing
- If your lvgUUID is ‘12345678-1234-1234-1234-123456789123’, type is ‘jhfs+’, name is ‘Fusion Drive’ and size is ‘100%’, then you would enter: diskutil coreStorage createVolume 12345678-1234-1234-1234-123456789123 jhfs+ ‘Fusion Drive’ 100%
- Again, don’t forget the apostrophes around the Fusion Drive name