So, after watching L1T videos and reading forum posts, and having no reasonable arguments to build a threadripper / epyc workstation, I decided to build my first (serious) home server.
The Before Times
Actually, this is not my first home server. I had a Raspberry Pi 3B (not the B+) running OpenMediaVault for a couple of months as a NAS. But, with the poor network capabilities of the RPI and having only 2 HDD connected through USB the performance was below what I was willing to endure. I was also not conviced by the OMV UI.
Why am I doing this again ?
With my home server, I would like to solve a couple of issues. I have multiple free-tier online storage solutions (google drive, dropbox, FAI…) that I would like to consolidate in a single place, under my control. I would use it as a backup solution and also provide storage to the family if needed. It would be a useful piece of kit to synchronize my data between multiple devices. It will also be a good platform to host other services, and learn Linux stuff on the way.
Requirement engineering is a full-time job for a reason
I have simple requirements :
- I want my server to be cheap
- I want good performance
- I am not sure what I want, so better have expandability in terms of functionalities
- ECC is good, so I want it
- I need it to be reliable, and low-maintenance
- I don’t know what I am doing, so I need to pick solutions with good documentation
- In terms of applications, I know there will be Nextcloud and Navidrome to start with, and probably other stuff will come up on the way
- It will be accessed from the outside world
- It need to be reasonably secure
Nothing complicated you see !
Trying to be cheap
For the CPU /Mobo combo, I settled on a chinese X99 motherboard (HUANANZHI X99 8M) and a Xeon E5-2630L v3. The L variant is a low-power variant without sacrificing functionality. Adding 8GB of DDR4 Registered ECC and a Snowman cooler, it cost me around 140€, a really good deal !
I was tempted by going Ryzen but a CPU/MOBO combo would cost me at least double and I was afraid of lacking PCIe connections for the expandability side.
For the case and power supply, I recycled a home computer in a Antec mid-tower case and the no-name power supply in it. On the drive side, I reused most of the stuff from the RPI OMV trial, so 3x1TB HDD and a 128 SSD for boot.
The Antec case :
Putting everything together, I realized that the cooler is slightly too high for the case So one of the side panel was bending a little bit…
Connect everything together, boot Ubuntu and off we go !
Save a penny today, loose a dollar tomorrow
After playing around a bit with the system, I realized I had a couple of issues :
- Although RAM is working, Linux does not see the ECC protection
- The case cannot fit more than 4 drives total without extensive modification
- The case can only be cooled using a rear 92mm fan
- If more drives are required, I will probably fall short of PCIe connectors
- The bending panel FFS
But I am happy and confident enough with the whole project to spend a little more money on the thing.
Fine, I am opening the wallet again
Looking at the (un)expected limitations of the first build, I accepted my fate and bought a couple of new parts : a Fractal Define 7 XL to store enough drive, a 550W gold PSU, and a new motherboard => 400€ total for the upgrade, reusing the CPU, the RAM and the drives from the first build.
The “new” motherboard
I did not want to switch CPU as I was quite happy with the performance I had, so I found a used Z440 motherboard from an HP workstation, bought it with PSU adaptation cable and an IO shield for 100€.
Testing the Z440 motherboard :
HP proprietary shenanigans
Before buying, I was aware of the non-standard PSU cable for Z440 motherboard, and I anticipated by directly buying adaptor cables. What I did NOT expected was the FANS having proprietary connectors too
and also the front-panel connector has an undisclosed pinout
On top of that, if the motherboard does not detected a CPU fan it will refuse to boot. So time to heat up the soldering iron
The CPU connector has 6 pins. Grounding the 2 extra pins seems to do the trick and the CPU cooler is working and detected. I wanted to avoid any modification of either the board or the connector in case I need to re-purpose them later. No 6-pins connector were in stock when doing the mod so I used 2 3-pins connectors I had in stock to do the adapter.
The other fan connectors on the board also are non-standard, but it is the same pin-pitch and wiring as the standard one, juste without the offset plastic bit. I made an adapter for those too but you can simply break the offset/foolproof bit on either the fan or the board side to plug it in.
After some sweat and tears the system is willing to boot ! Hooray !
I still have an issue where the BIOS is reporting a missing front IO connector, so I have to keep a keyboard plugged-in to press enter everytime the system reboot but I can power on the system using the switch on the rear IO panel of the motherboard. At least I have that working…
The beginning of the end ?
I still need to give another go at the front panel IO connector so I don’t have the BIOS message preventing booting sequence and so I can use the case power button and LED indicators, but the system seems to be working, it even survived a power shut-down in the neighbourhood.
I plan to open the system again to upgrade to 32GB of RAM anyway so…
The good, the bad and the ugly
So that was for the hardware part. Even if I ended up replacing most of the component of the original build (I only kept CPU + RAM), I think it was valuable to learn about my options and how the whole system work/could work. If you want to build a small home server that can be a cheap route you can follow as long as you keep your expectations in check. For me, realizing that the motherboard did not handle ECC correctly was the real deal-breaker, I could have probably lived with the limited BIOS and the expandability for a while.
I do think the Z440 motherboard was a mistake. I am lucky enough to have found workarounds for most of the issues for now, but I would advise anyone to avoid trying to reuse these boards and pick a regular motherboard from maybe SuperMicro or Asrock Rack. I cannot comment on reusing a full Z440 workstation though.
I am really happy with the Fractal case. It is heavy and expensive, but I know that my drive needs will be covered and I can put whatever I want in it. the build quality looks really good.
For now I am happy with the CPU. It does not consume too much power and if I ever need something more powerful I have plenty of options in the Xeon v3/v4 family to upgrade to.
Next time I will talk about the software side of things… stay tuned !