Over 30 years ago I started with “playing” with a Mac in the role of server. The first steps into what turned out to be part of my profession.
All these time I have had administrator access to one or more server(s) running on the Apple platform. However the time has come to say goodbye to the MacOS and the Apple platform as a server platform.
The MacMini (Late 2012), with a nice RAID 5 disk set attached it, running as an internal fileserver and as a media server needs to be deprecated. Since the MacMini is still working pretty ok, but the specifications are a bit outdated. And better to replace now, then wait until it crashes fully.
With what to replace the MacMini? It might be the right time to think of a NAS
The Mac mini will still serve a purpose, for as long as it runs. But no more in the role as Media server, I will explain it later.
What to choose?
For a NAS solution there are multiple solutions available; Synology comes to mind, have one running as a 1 disk Time Machine Network backup, however I am not happy with the interface. Feels weird and clunky. Just not right… Just not for me…
What else is out there?
Since I’m already back into FreeBSD as a server OS of choice, let’s investigate FreeNAS (Now renamed into TrueNAS). It runs on FreeBSD, perfect!
After some testing it out with a couple of VM’s feeling more than confident in moving forward with it. On what to run TrueNAS? So a nice project has been born for the holiday season. Let’s build a nice NAS server ourselves and see how far I will get.
Time to do some shopping..
After some research I came to the following list of components:
- Case: Fractal Design Node 804
- Mainboard: MSI B560M PRO-VDH
- CPU: Intel Core i5-10400
- RAM: Crucial Ballistix 32GB Kit (2x 16GB)
- Power Supply: Cooler Master MWE Gold 650v2
- Boot SSD: Corsair Force Series MP510 240GB M.2
- For Caching purposes: Crucial BX500 240GB SATA 2.5" SSD (2x)
- File Server Storage: 2x 2TB WD RED drives I still had lying around.
- TimeMachine Backup: 2x 4TB Seagate drives I also had lying around.
- Media Server Storage: 4x 4TB WD RED drives, I replaced these less than 6 months ago.
- Host Bus Adapter for storage disks: LSI SAS 9207-8i/e
- Network Card: Intel I210-T1 (1000 Mbps)
- Extra Cooling: Kit of 3x Noctua NF-F12 PWM
- Additional cables and velcro cable ties.
Due to some delays in the receiving of one of the shipments I got an extra motherboard, an extra Power-Supply and an another memory kit of 2x 16 GB. Well not too bad, straight a upgrade in memory to 64 GB. Should be plenty-full.
However when running with my first choice for a motherboard, I bought one that a damaged box and some minor “cosmetic” scratches and was sold as a “second” change, the board had more than just some cosmetic problems.
For me the system kept on rebooting and no video. Regardless of the combination of memory. Even with one 16GB it failed. Luckily I was able to return it as being defective. Full refund.
When I tested the RAM, CPU and the boot NVME ssd with the “extra” board, it worked as expected.
Although I got the server running, the board was just not good enough. Long story short: I chose to get the MSI B560M PRO-VDH board. This time got myself a new one. Not some “Second Chance” board.
The last time I build myself a PC the case was nice on the outside, but on the inside it was a bunch of sharp edges and not that easy to create a nice clean looking setup. Times have changed, the Node 804 case is similar in size to the printer I have and fits nicely next to it. Installing the components is really easy.
And the case has a window… ;-) Now you can see the inner-workings. True nerd factor. In this case a bit pointless, case is on bookshelf, next to a printer. It is a clean setup. With the right velcro binders the cables are tucked away nicely.
Setting Up TrueNAS
Setting the TrueNas system up is pretty easy, prepare a USB thumb-drive to hold the ISO to boot from. Although TrueNas does not list Mac OS as a host in getting the ISO to the thumb-drive, there is however a listing for Linux. Easily to change the CLI command to make it work on Mac OS:
sudo dd if=<PATHToISO>TrueNAS-12.0-U7.iso of=<Disk in /dev>
Boot the server from the thumb-drive, run the installer, follow the wizard, reboot and you really are ready. The documentation at TrueNAS is really good.
Both the Intel NIC and the LSI SAS/SATA card are supported natively. Perfect.
For the storage pools the question is what to do with this amount of drives to make it serve an actual purpose. In the end I came up with for me fitting setup. Quite pleased with it.
- Mirror (2x 2TB): FileShares, User Homes and Storage for the JAILS.
- Stripe (2x 4TB): Time Machine via SMB\ Although not recommended, the Time Machine backup is more of a local backup anyway. There is also BackBlaze as a Cloud Backup Provider for the Mac’s. So am a bit stubborn. Created a stripe.
- RAIDZ1 (4x 4TB): MediaPool
- Read Cache (2x 240GB SSD 2.5"): MediaPool & MirrorPool
Adding services to TrueNAS
Now the fun part, setting up services.
For me it was a matter with creating some users, create a couple of SMB shares and take it from there. More services will be setup as Plugins (JAILS). To name a few:
- Heimdall (Nice Dashboard tool)
Setting them up, really easy, just set the jail to DHCP, create a reservation for the virtual MAC address, restart and the jail is now reachable via a sub-domain. Pretty cool.
Am going to setup a NGINX Jail to reverse proxy into the some of the other jails, just to see if I can get it to work…
For the last years I have created an extensive backup strategy, multiple disks and a cloud based backup solution: Backblaze. Backing up a Mac is an easy to setup and quite affordable. The main reason is that the per Mac I pay just $5,00 per month with unlimited storage. A very nice deal. However when I want to backup the NAS directly, which off-course is easy to setup and possible, I lose the benefit of unlimited backup space, now the data-hoarding becomes quite costly very fast. And as a proper Dutchmen, there need to be a work-around available.
And the problem is quite easy to solve; get an external usb drive large enough to hold that data. Another purpose for the MacMini has been born. Being the host to hold the data that needs to be backup’ed into the Backblaze cloud backup. I will need at least 12TB, that way I know I have enough space to grow. For now I have gotten myself a ICT BOX RAIDenclosure for 2x HDD’s. Simply a matter of setting up a striped volume with two 6 TB drives and there we have it. A nice solution.
Testing it out
First see if I can get a sync from the MacMini into the NAS, first the network shares. Setting up a couple of tasks with direction pull, and the FileShares are re-created and filled with the same content. So this works as expected. It is a sync over SSH, so should work without a hitch.
Migration of data
First I did a local sync from RAID5 volume to RAID0 volume. Which did take some serious time. As expected.
Next is to break down the RAID5, add the drives to the NAS to set it up as the MediaPool. Now the slower part. Syncing the same 9TB via the MacMini into the new pool.
Changed the tasks from pull to push and now the data is hosted on a ZFS raid and there is a on-premise copy on the MacMini before going into the cloud space at BackBlaze.
The following steps are migrating the Plex settings to the NAS. Should not be too hard.
TrueNAS is a very nice tool to turn any PC in a fast and easy to use NAS server, with loads of possibilities to play around with and tweak. Setting up the Plugins is soo easy, really nicely done.
Therefore I have “upgraded” my on-premise server into:
Major upgrade from a Mac mini. And a more fitting OS to have as a Server OS.
On one hand a sad feeling, after having more the 30 years having a server running Mac OS on Apple Hardware, to being happy in having been able to build a server that is more fitting for today’s desires.