so Apple introduced Fusion Drive along with their new Macs yesterday. How does it work? A question that pestered me since. Fortunately Apple published a support document that leaks a few infos. The most interesting piece of information is revealed by this image:
In the lower left hand corner it says „Type: Logical Volume Group“. This is Core Storage for sure, the technology that Apple uses for the Vile Fault 2 full disk encryption. When you have FV 2 enabled and enter the command diskutil CS list in the Terminal, you can see Core Storage at work:
In my example a Logical Volume Group (426BC…) consists of one drive (or rather partition, in this case disk0s2) and publishes a Logical Volume Family (the encryption layer 9E2650…) which contains a logical volume (disk1 C5779B…)
This is an elaborate way of plugging an encryption layer between a physical volume (disk0s2) and the filesystem which thinks it resides on disk1. disk1 is not a physical device but the file system doesn’t know.
So assume you would build a Logical Volume Group consisting of two physical drives, how would the file system know? Well if you look at other logical volume managers it usually doesn’t and if you are following The Pure Teachings of LVMs (TM) it is not supposed to know anyway.
Well, but Phil Schiller said yesterday Fusion Drive would keep the hot files on the SSD while pushing the cold files to the HDD moving them back as soon as you would use them more often again. This means either HFS+ must have a way to know which virtual disk blocks end up on the SSD or Core Storage must have an intimate knowledge of HFS+ and map the blocks accordingly.
I think the second possibility can be ruled out on the basis of not being viable. Core Storage would reimplement half of HFS+. No way.
But Core Storage marking certain blocks faster than other blocks would make sense. It would break the layering only a little bit, it is easy to implement and HFS+ already does some moving of files to faster parts of a disk together with auto-defragmenting for a long time anyway.
So my conjecture is: Fusion Drive is a special Logical Volume Group that publishes which blocks are fast and HFS+ maps the files accordingly on those blocks.
[Update]: I was a bit surprised how accurate my predictions were but on the other hand nothing else made sense. Here a link to jollyjinx‘ tumbler. He did a good job reversing this from a user persective.