Notes on Configuring a Home Server

I’ve run a home server of one kind or another for as long as I can remember, at least 25 years at this point. My old server was starting to show it’s age so I decided that it was time to build a new machine and learn a new technology or two along the way. I’ve noticed as I get older learning new things is getting harder, I suspect this may be a lack of practice though so it’s time to reverse that trend and learn some cool new stuff.

Hardware

One of the key aspects of this build is going to be keeping the power usage as low as possible. My current server does fairly well at about 40W but I want to go lower. I also want the server to be reasonably powerful as it’s running everything and the last thing I want it is to be waiting for it. After much research into old hardware I came to the conclusion that new machines are better in essentially every way.

I’ve always wanted my own rack but I’ve come to the conclusion that it’s just not the right solution for me. For the money I have to spend I could certainly get hold of some fun hardware to play with but it would all be more power hungry and nosier than what I can build new. Additionally, new desktop processors are so fast if you were going for old server hardware you’d be looking at old top of the range hardware only.

In the end I went with the following spec:

  • AMD Ryzen 5 5600G
  • MSI B550 GAMING GEN3
  • 32GB – already owned
  • Crucial P3 1TB M.2 PCIe Gen3 NVMe
  • 3 * Seagate EXOS 16TB 3.5″ SATA Enterprise Class HDD – one already owned, shucked from a USB enclosure (this turned into 5 drives in the final build)

Without the hard drives this setup pulls just 16W from the wall, I imagine that will just up to about 30W once the drives are in but that’s still less than my existing setup and has significantly more storage and processing power. I can’t see how I could match this with any server grade hardware which is a shame as it looks like I’ll never be getting that rack.

Storage

The bulk of the storage will be handled by the three 16TB drives. I’m planning on configuring them in a ZFS raidz1 array which should give me around 32TB of usable space. Considering I only currently use about 11TB I think that should keep me going for a while. The OS, Proxmox, will live on the 1TB NVMe drive and I’ll use that drive for running VM’s. In terms of data I really care about I only have just 1TB so I’m hoping backups should be fairly easy, this critical data will live on the array and be backed up to some sort of removable drive or similar – the exact backup scheme I’ll use hasn’t been decided yet.

In a unusual stroke of luck I bought a pair of USB drives for shucking a while back and they contained Seagate EXOS 16TB drives (part number ST16000NM001G). At the time these drives bare were seriously expensive so the USB lottery was worth it. That has completely reversed now and shucking isn’t worth it but I can get exactly the same part number as a bare drive at a reasonable price. I’m paying £14.50/TB from a reputable seller which I’m happy enough with.

ZFS was completely new to me when I started this project and I have to admit I struggled a bit with understanding how it worked. Thankfully there is an absolutely brilliant beginner focused tutorial on YouTube by a channel called Kernotex. Now I’m not going to lie, it’s pretty dry material but I struggle to see how you could make a filesystem exciting! It does, however, cover all the basics and gets into some of the more advanced functionality. It doesn’t cover absolutely everything but it certainly covers enough to get you going with a home server.