Thinking about how to add some SSDs on my home machine

January 19, 2017

It all started when I upgraded from Fedora 24 to Fedora 25 on my office workstation and then my home machine in close succession, and the work upgrade went much faster because my root filesystem was on SSDs. This finally pushed me over the edge to get a pair of SSDs for my home machine, as I've known I should do for a while. I now actually have the SSDs, but, well, I haven't put them into my home machine yet. You might wonder why, so let me put it this way: the next case I get will have at least six drive bays.

My current case has four drive bays (well, four conveniently usable 3.5" drive bays), and all four drive bays are used; two for the mirrored pair of system HDs, and two for the mirrored pair of data HDs. The SSDs will be replacing the system HDs (and pulling in things like my home directory filesystem from the data HDs), but I can't exactly unplug the HDs and put in the SSDs; I need to shift over, and to do that I need to temporarily have the SSDs in the system too. So I've been mulling over how best to do that, and in the mean time my SSDs have just been sitting there.

(If I had six drive bays it would be easy and I would have shoved in the SSDs almost immediately. And the delay is not just because I've been thinking; it's also because shuffling everything around is going to be kind of a hassle however I do it, and so I keep putting it off in favor of more interesting and pleasant things.)

I have a 3.5" to 2.5" dual SSD adaptor for the SSDs (I'm also using one at work), so a single open 3.5" drive bay will allow me to put both into the machine. A number of potential approaches have occurred to me:

  • My case has some 5.25" drive bays, which I'm not using. Maybe I could just temporarily rest the dual adaptor on the bottom of that area, run cables to it, and have that work. (The deluxe version would be to put the 3.5" to 2.5" adaptor in a 5.25" to 3.5" adaptor, but I don't have one of the latter sitting around and that feels like a lot of work.)

  • I could just temporarily run with the side of the case open and cables running to the SSDs. Don't laugh, one co-worker has been running with his machine opened up like this for years. It'd be awkward for me, though, because of where everything is physically (my co-worker has his open machine on his desk).

  • I could deliberately break the mirror of my system disks, remove one, and put the two SSDs in the drive slot freed up by that. It's not very likely that the remaining system disk will fail while I'm shifting over, and if it does I have the other system disk to swap back in.

Breaking the system disk mirror and removing one of the disks strikes me as the least crazy plan. However, it means I get to find out if my Fedora system is set up so that it will actually boot when one of the system disks goes away, or if it will throw up its hands because the shape of the RAID array is not exactly what it wants (this has been known to happen under some circumstances, although that wasn't a disk going missing). Certainly I'd hope that my Fedora 25 system will boot without problems there, but between general issues and systemd I don't have complete confidence here, and I can imagine scenarios that end up with me having to boot a rescue environment and try to glue my system back together again by hand.

(My system disk mirror doesn't just have the root filesystem; it also has /boot and swap, each as mirrored things. So systemd needs to be willing to bring up several RAID arrays in degraded mode in order to be able to get everything in /etc/fstab up.)

I expect that the easiest way to test this is to open the case up, shut the system down, pull the power connector for one of my system disks, and then try to boot the system. If it fails, I can shut everything down, plug the power connector back in, and hopefully everything will be back to being happy with the world. It would probably be more proper to take the disk offline in mdadm, but that may be less easily reversed if things then explode.

(My plan for the SSDs are about a 100 GB ext4 root filesystem (which will also get /boot), a bit of swap space, and then the rest of the space in a ZFS pool. The pool will get my home directory and various other things that fit where I care either about speed or about having ZFS's checksums for the data.)


Comments on this page:

By anonymous coward at 2017-01-19 00:39:40:

Most of my SSDs are not even attached to the case at all. SSD doesn't have moving parts so I figured it's fine as long the cable can't be accidentally detached.

By Marc at 2017-01-19 02:45:02:

And why would you not break up the mirror on the data HD's? Or take them offline?

Your system would boot, you could move your system partitions, remove the system HD's, then bring data back online and do whatever shuffling around of home partitions...

By Anon at 2017-01-19 15:13:46:

Test it in a VM first. I've seen mdadm do weird stuff when disks composing its RAID were reattached...

By cks at 2017-01-19 17:26:03:

Marc: the system disks are less important than the data disks. I don't want to break the mirror on the data disks and if I take them offline, my home machine basically stops working.

Anon: Testing in a VM is a good point, although my home machine has such a non-standard setup and history (it's been repeatedly upgraded from previous Fedora versions) that I don't think I can exactly duplicate its setup. But certainly if trying this blows up in a VM, it's unlikely to work for real.

By Miksa at 2017-01-20 07:35:58:

anonymous coward's point is good. If your motherboard has enough SATA ports then it's pretty much a non-issue. Mounting is the least of the problems with SSDs, favourite method is doublesided tape.

Alternative method is doing it offline, for example booting from USB stick and connect one of the SSD with USB-SATA adapter.

Written on 19 January 2017.
« Exim, IPv6, and hosts that MX to localhost
Spam and virus filtering on email is a risk (although likely not a big one) »

Page tools: View Source, View Normal.
Search:
Login: Password:

Last modified: Thu Jan 19 00:18:35 2017
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.