Question Mac Mini as home server with Add2PSU & PicoPSU etc. for powering external SATA storage & case fans ?

JossBrown

Prominent
Jun 29, 2023
14
0
510
I stumbled over this article on how to use a Mac Mini as a low-power idle and efficient home server with external SATA storage.

https://www.michaelstinkerings.org/mac-mini-as-a-low-idle-home-nas/

Using the Thunderbolt connectors with M.2 enclosures and M.2 to SATA adapter cards, is a nice solution, but of course a bit janky. But don't worry, it will get way jankier below. (Nota bene: for a home server, you would need RAID5, and the only way to do that on macOS is with OWC's SoftRAID.) To power the SATA drives, Michael is using a big dedicated PSU, which imho seems like overkill.

Personally, until now I had never seriously thought about using a Mac as a server, but since Docker on aarch64 is now very potent, including Rosetta integration and native virtualization, since SoftRAID seems to have become a lot more stable, with their driver even natively included in macOS now, and since even the Mac Mini is doing pretty great regarding local LLMs, I've been thinking about it more and more. You could in principle use a 2U server chassis, e.g. one of those modular ones from SilverStone, slap in the Mac Mini, use 5.25'' SATA cages, e.g. from Icy Dock, for the storage, add a couple of case fans for good measure, and you're good to go. Almost. You'd need to connect it all together, of course.

Michael has already covered the data connections (Thunderbolt to SATA via M.2 adapter cards). My focus here would be about the whole power thing. In Michael's setup it's an ATX jumper, but that would mean that the storage would be powered even if the Mac Mini is shut down. I haven't dug into it for very long, but this is how I currently would do it with regard to the SATA storage and fans powering on when the Mac Mini powers on, and vice versa. (However, the Mini would be on 24/7, but it might be important, when it auto-reboots after a power loss.) Please correct me, if and where I am wrong.

I would add a passive USB-C to USB Type A dock to one of the two USB4 connectors on the Mac Mini's front.

https://www.amazon.com/dp/B0C6M8TXVG

(Nota bene: the other USB Type A ports on the hub could then be connected to the 2U chassis' front USB ports, leaving the Mini's remaining USB4 port unused, which could then function as a port for an external Time Machine drive.)

On the passive hub I would then plug in a USB Type A to Molex adapter cable.

https://www.amazon.com//dp/B0BR2W95CC

That cable would go into the Molex input of an Add2PSU.

https://www.amazon.com/dp/B07FCKYGWH

Instead of a full-fledged ATX PSU, I would rather use a PicoPSU, because I'd only need to power SATA (mostly SSDs) and a couple of fans. The PicoPSU would connect to the Add2PSU with the 24-pin ATX connector, of course.

https://www.amazon.de/-/en/dp/B004QDP05C/

I assume that 90W would be sufficient to power one HDD, at least 6 SATA SSDs, with a maximum of 9 SATA SSDs, plus a maximum of 3 PWM fans.

First the fans: I would remove the small 12V ATX 4-pin connector from the PicoPSU, and insert the two wires into the 12V input on a thermostat PWM controller, so I can power the controller + fans.

https://www.amazon.de/-/en/dp/B091FC9YGJ/

Now for SATA power. Naturally, for so many SATA drives (all SSDs but one), I would need splitter cables to attach to the PicoPSU's SATA power and PATA power outputs.

PATA to 5x SATA power: https://www.amazon.com/dp/B0BQS9V9HZ

SATA to 5x SATA power: https://www.amazon.com/dp/B0DBH44SC3

(Nota bene: I would use the PATA connection for powering the HDD + SSDs, and the SATA connection only for SATA SSDs. Furthermore, if I use 5.25'' SATA cages for the storage, they would come with their own fan or fans, so those would be powered over the SATA power connection too. Realistically, though, a 5.25'' SATA cage would only need two SATA power inputs, e.g. the ToughArmor MB998SK-B, so a 5-way splitter would probably be overkill, but on the safe side.)

So… it's janky for sure, but does this seem right to you, SATA power splitter cables and all? Tia for any input & corrections/criticism.
 
Last edited:

JossBrown

Prominent
Jun 29, 2023
14
0
510
It would, of course, also be possible to forgo all the jank, and instead use a Launch Daemon that runs a small shell script during the Mac Mini boot process, which sends a network signal to a smart plug, which then turns on to power the PicoPSU and the whole storage setup.

However, that would mean that the storage would remain powered on, if the Mac Mini shuts down (for whatever reason). In macOS there is the option for so-called "logout hooks", but you probably wouldn't be able to use it for anything more complex like sending data over the network. (Furthermore, it seems that Apple has removed the logout hook functionality anyway in the newest macOS.)
 

JossBrown

Prominent
Jun 29, 2023
14
0
510
Yes, these are all traditional DAS options, and they are already mentioned in Michael's article, with pros & cons. Mostly cons, so he went on to create his own solution, and that's what my question is based on, which I think I've made clear.

So the data setup, based on Michael's idea, is attaching two thunderbolt to M.2 enclosures to the back ports of the Mini, remove the enclosures' top covers, add an M.2 to SATA adapter card each, and connect those to the backplane of a SATA case/cage of mostly SSDs, either with SATA cables or with SFF8087-to-SATA adapter cables (depending on the M.2 adapter cards, backplane, SATA cage etc.).

And, to recap, my specific question now is how to wire this up in terms of power supply, especially to ensure that the SATA setup, which would be powered by a PicoPSU, auto-powers on when the Mac Mini boots, and auto-powers off when the Mac Mini shuts down. My idea was: power from Mini's front USB-C port > passive USB-C to 4xUSB Type A hub > USB Type-A to Molex adapter cable > Add2PSU > triggers PicoPSU via 24-pin ATX ……… and then the PicoPSU delivers SATA power via splitter cables to the SATA drives or backplane plus 12V power to the fan controller.
 
Last edited:

JossBrown

Prominent
Jun 29, 2023
14
0
510
So, to reiterate, my main questions would be:

(1) Would the 5V from the Mac Mini's front USB port transmit via the passive hub through the USB-Type-A-to-Molex adapter cable?

(2) Would this be sufficient to trigger the Add2PSU for an on or off signal (sent to the PicoPSU via 24pin connector)?

(3) Would a 90W PicoPSU be sufficient to power a maximum of 9 SATA SSDs plus 1 SATA HDD (via both the SATA and PATA connector) plus fans (see below)? (Note: the storage drives would be powered either directly or indirectly/combined via 2 SATA power connectors on a 5.25'' drive cage.)

(4) Would the 12V connector on the PicoPSU work as a power source when connecting its wires to the thermostat controller, and would it be able to power a maximum of six fans in addition to the SATA storage?
 
Last edited:

JossBrown

Prominent
Jun 29, 2023
14
0
510
It would, of course, also be possible to forgo all the jank, and instead use a Launch Daemon that runs a small shell script during the Mac Mini boot process, which sends a network signal to a smart plug, which then turns on to power the PicoPSU and the whole storage setup.

However, that would mean that the storage would remain powered on, if the Mac Mini shuts down (for whatever reason). In macOS there is the option for so-called "logout hooks", but you probably wouldn't be able to use it for anything more complex like sending data over the network. (Furthermore, it seems that Apple has removed the logout hook functionality anyway in the newest macOS.)
There is at least a way to partially circumvent the logout hook deprecation, namely with the events internally broadcast by macOS. There's an app called EventScripts, which can run (shell) scripts when certain events are broadcast, e.g. "Computer will shutdown". This probably does not work with the Unix shutdown command, but for shutdowns initiated by the user in the UI or via osascript, it should work. That way, you could run a script that uses diskutil unmountDisk to unmount the attached storage pool, on error with the force option, and then send a network command to a smart plug, e.g. a CloudFree smart plug, to turn off the power to the storage pool. During a subsequent boot, you could then easily use a LaunchDaemon to send the opposite command to the smart plug, turn the power on, and mount the storage pool, if it isn't automatically already. The above shutdown setup, however, would not work if the Mac shuts down irregularly. But it's at least a partial workaround. In addition, it does not work with reboots, but in that case it would probably be OK to leave the storage setup powered on.
 
Last edited: