Roll your own Fusion Drive w/ external SSD

Discussion in 'macOS Mojave (10.14)' started by superspartan, Dec 13, 2018.

  1. superspartan macrumors member

    Joined:
    Jun 9, 2006
    #1
    I have a late 2012 iMac with a spinning HD. I've been booting from an external SSD in a USB3 / UASP enclosure and keep infrequently-accessed files on the HD. For various reasons, I'd like to wipe the SSD and fuse the SSD and internal HD into a DIY Fusion Drive.

    Does anyone know if Fusion / CoreStorage is capable of working with this setup? I'm not sure if the system would know the external drive is an SSD and route files there accordingly. When I look in system profile, OS X is unaware that the external enclosure contains an SSD (and SMART / TRIM do not work over USB3).
     
  2. Panthera Tigris Altaica macrumors member

    Panthera Tigris Altaica

    Joined:
    Nov 29, 2018
    Location:
    In the Frozen North, of course.
    #2
    You can do this. It is a really, really, REALLY bad idea for several reasons.

    1 Apple is phasing fusion drives out.

    2 if the external drive fails, gets disconnected accidentally, or if anything at all happens to it, you've just lost everything. I hope you have a backup.

    3 if anything happens to the internal drive, you've just lost everything. I hope you have a backup.

    You are, of course, free to try it. I wouldn't.
     
  3. superspartan thread starter macrumors member

    Joined:
    Jun 9, 2006
    #3
    Thanks for the warning.

    I've been using external boot drives for years and haven't had any catastrophic failures resulting from cable disconnects. Usually the OS will freeze and you'll need to reboot. You do make a good point about introducing an extra point of failure though.

    I guess what I'm most interested in knowing is whether OS will be intelligent enough to know which drive is faster and move files properly. This is straightforward with an internal SSD, but OS X doesn't appear to be aware of external SSDs (at least with USB3).
     
  4. Panthera Tigris Altaica macrumors member

    Panthera Tigris Altaica

    Joined:
    Nov 29, 2018
    Location:
    In the Frozen North, of course.
    #4
    I'm pretty sure that the OS only checks internal drives for that kind of thing.
     
  5. allanmulwee macrumors newbie

    allanmulwee

    Joined:
    Nov 25, 2017
    #5
    I installed an SSD in an iMac and "fuzed" it with the internal SSD stick for a customer. It was pretty fast but you are right, if one goes out you are hosed. That being said I am considering doing an SSD raid in my 2012 MacBook Pro. Doing anything like that between an internal and external drive isn't really practical.


     
  6. Wando64 macrumors 6502

    Wando64

    Joined:
    Jul 11, 2013
    #6
    You are making an important point about the possibility of accidental disconnection and the potential damage this could cause to the overall fusion drive.
    However, I don’t understand why people (you are not the first) keep on making the point that if one drive fails you lose the whole volume and you need a backup. I mean, that’s pretty obvious, no?
    If a drive fails, you need a backup to restore it, fusion or not fusion. Everybody need backups.
    As for Apple phasing fusion drives out, do you have a source for this information please?
    I am considering fusing two drives on my system and this seems an important point, if true.
     
  7. Panthera Tigris Altaica macrumors member

    Panthera Tigris Altaica

    Joined:
    Nov 29, 2018
    Location:
    In the Frozen North, of course.
    #7
    Apple appears to be dumping spinning drives, including fusion drives, in favor of SSDs. The only spinning and/or fusion drives currently being sold are in some iMacs. Unofficially the next iMac refresh will replace the spinning drives with SSDs, the way that the last refresh of the Mac mini killed spinning drives in Mac minis. The end is in sight.
     
  8. chabig macrumors 603

    Joined:
    Sep 6, 2002
    #8
    I would be afraid that that might not happen if either fusion component gets damaged. It's not the same as single external disk (obviously).
     
  9. Fishrrman macrumors P6

    Fishrrman

    Joined:
    Feb 20, 2009
    #9
    As others have mentioned, I'd advise you to NOT do this.

    Keep the external SSD as it is.
    It will run at its best that way.

    If it's not large enough in capacity for you, get a BIGGER SSD, and set that up to be the boot drive.

    Just wondering -- what are the compelling "reasons" to fuse an external SSD with an internal HDD?
    I have no problem managing 7 drives/partitions on my desktop at all times.
     
  10. superspartan thread starter macrumors member

    Joined:
    Jun 9, 2006
    #10
    The primary reason is simplicity. It's an iMac with accounts for my wife, 9 year old son, and myself. I don't have time to move files from three accounts to multiple disks. I don't really need more total storage, so this seemed like a good option. But if it doesn't work well, I'll end up just getting a larger SSD.
     
  11. smirk, Dec 14, 2018
    Last edited: Dec 14, 2018

    smirk macrumors 6502a

    smirk

    Joined:
    Jul 18, 2002
    Location:
    Orange County, CA
    #11
    I had a home-brew fusion drive a few years back in my 2011 iMac (both drives were internal) and I have a factory-supplied fusion drive in my current iMac. Both have worked great and were a nice trade-off between speed and cost. Yes, there are two points of failure now instead of one, but I use Time Machine and Carbon Copy Cloner to back everything up, so if something does fail I shouldn't lose too much data.

    I prefer the simplicity of one logical volume, as the OP pointed out. It's too hard to train other, less technical family members where they should store their data. One volume is easier to back up than two. And I don't like it when one drive fills up at inopportune times, requiring you to frantically rebalance your data just to get a task done.

    That being said, there's something about creating a fusion drive that involves an external drive that gives me the willies. It just seems too easy for a child to unplug or mess with, or a housekeeper to bump it or something. Maybe if the external SSD was attached to the back of the iMac so that it was out of the way it might be a little better. But even so, there's something that gives me pause about the added complexity of converting SATA to USB, not to mention the fact that USB doesn't support TRIM, as you said.

    Aside from this, technically it should work just fine.
     
  12. LuisN macrumors regular

    Joined:
    Mar 30, 2013
    Location:
    Torres Vedras, Portugal
    #12
    @superspartan

    See this page: https://apple.stackexchange.com/questions/309739/apfs-container-over-multiple-physical-disks#


    diskutil apfs createContainer

    Usage: diskutil apfs createContainer <disk> [<disk>]

    diskutil apfs createContainer -main <disk> [-secondary <disk>]

    where <disk> = MountPoint|DiskIdentifier|DeviceNode

    Create an empty APFS Container. You can then add APFS Volumes with the

    diskutil apfs addVolume verb. If you specify two disks, then a "Fusion"

    Container is created, with the performance roles assigned automatically

    unless you use the -main and -secondary options, in which case, the secondary

    disk is assumed to be on "slower" hardware. The secondary disk is often used

    to store associated "auxiliary" data, such as a Boot Camp Assistant partition.

    Ownership of any affected disks is required.

    Example: diskutil apfs createContainer disk0s2
    --------------------------------------------------------------------------------------------
    diskutil apfs addVolume

    Usage: diskutil apfs addVolume <containerRefDisk> <fs> <name>

    [-passprompt | -passphrase <passphrase> | -stdinpassphrase]

    [-passphraseHint <passHint>]

    [-reserve <reserveSize>] [-quota <quotaSize>]

    [-role <roles>]

    [-nomount | -mountpoint <mountPoint>]

    where <containerRefDisk> = Container Reference DiskIdentifier

    <fs> = an APFS personality: e.g. "APFS"

    <name> = a volume name

    <passphrase> = optionally create an encrypted volume (disk user)

    <passHint> = some string that can be shown even while locked

    <reserveSize> = optional minimum guaranteed file data capacity

    <quotaSize> = optional maximum file data usage limit

    <roles> = one or more of 0|B|R|V|I; see changeVolumeRole

    <mountPoint> = "your" mount point (root only) (dir must exist)

    Add a new APFS Volume to an existing APFS Container. If you specify a

    passphrase, it will be encrypted with the "disk" user and that passphrase.

    Ownership of the affected disks is required.

    Example: diskutil apfs addVolume disk5 APFS Foo1

    diskutil apfs addVolume disk5 APFS FooSecure2 -passphrase hello

    diskutil apfs addVolume disk5 APFS Foo3 -quota 10g -reserve 5g
    -----------------------------------------------------------------------------------------


    See this page: https://apple.stackexchange.com/questions/309739/apfs-container-over-multiple-physical-disks#
     
  13. superspartan thread starter macrumors member

    Joined:
    Jun 9, 2006
    #13
  14. DaSal, Feb 9, 2019
    Last edited: Feb 9, 2019

    DaSal macrumors regular

    Joined:
    Mar 19, 2008
    Location:
    The Netherlands
    #14
    Hi. I'm trying to set up an SSD + NVME Fusion drive. I did this by first making a regular CoreStorage Fusion drive and letting the Mojave installer automatically update it to APFS. However the issue is that the installer is marking the wrong drive as the 'aux' drive (the SSD in this case, which causes the speeds to be limited to the SSD instead of the NVME).

    If I understand it correctly I could set it up manually in this manner. The explanation is not quite clear to me however.

    Would it be possible for you to write up a short guide on how I would format/set up my APFS fusion drive using this method?

    It would be where disk0 is the 128GB NVME and disk2 is the 1TB SSD. The NVME should be the primary drive.

    EDIT: I figured it out thanks to your guide. See: https://forums.macrumors.com/thread...-nvme-blade-ssd-speeds.2169105/#post-27081422
     
  15. chabig macrumors 603

    Joined:
    Sep 6, 2002
    #15
    Those diskutil apfs verbs are interesting, and apparently it worked for you. So if I followed correctly, your original fusion drive must have had the roles of the two devices reversed. You then used diskutil apfs commands to create a container from both devices (specifying the NVME as the main device) and added a volume inside the container. It now works as you expected and you're seeing the speed test results you wanted?

    P.S. It looks like you could have used "create device [device] name" to accomplish the same thing, as it's a shortcut for createContainer and addVolume.
     
  16. DaSal macrumors regular

    Joined:
    Mar 19, 2008
    Location:
    The Netherlands
    #16
    That’s exactly right, it works as expected. You are correct in that In my original (automated) setup the NVME was assigned as the aux drive - which is why it wasn’t getting the expected speeds.

    Thanks for the tip on the better way to do it. Honestly I just hacked together tips from different sources and I have a poor understanding of APFS containers, so it’s probably a weird workaround. I’m just happy it works!

    If you understand this better it would be interesting to see a write up on how to do it the best way, including making sure the original drives are formatted/unparitioned first. (The reason I made a corestorage fusion firs is because the APFS commands refused to work with the drives already part of an existing APFS container.)
     
  17. chabig macrumors 603

    Joined:
    Sep 6, 2002
    #17
    I don't understand this well at all, but I found LuisN's post enlightening so I went to terminal read the manual for diskutil, where it describes the apfs verbs.

    man diskutil

    It seems like there are just two steps to create a fusion drive in terminal:

    1) creating an apfs container
    2) adding an apfs volume

    There is also a command to do it in one step with fewer customization options:

    1) create device

    Going the first route, you would first list the devices connected to your Mac to get the device identifiers (disk1, disk2, etc.)

    Then to create a container that spans the two drives:

    diskutil apfs createContainer -main <disk> -secondary <disk>

    Here main is the fastest drive, or the NVME in your case (-main and -secondary do not need to be specified. If left out, the first disk is assumed to be main.

    Then create the apfs volume inside the container:

    diskutil apfs addVolume disk3 APFS <volume name>

    It's not very complicated, and the descriptions of the commands are well written, with examples.
     
  18. DaSal macrumors regular

    Joined:
    Mar 19, 2008
    Location:
    The Netherlands
    #18
    Cool! I won’t try this as it seems to be working for me, but hopefully it’s helpful to someone else.

    As a note though for me I never tried making an APFS drive directly, but when making a corestorage fusion drive and letting the Mojave auto-convert to APFS, the correct -main drive was not auto detected. (The nvme was listed first when partitioning, but it didn’t use it as the main. In fact before finding this solution I tried it again while flipping the drive order, and had the same result. So when going from corestorage > APFS autoconcert anyway it seems like the drive order doesn’t matter.)
     

Share This Page