Self Hosted (part 1) : Server Hardware
Intro
I wanted to run a server to host some of my data and applications. I have gigabit internet at home with ethernet cables running in all rooms, so I decided to put it to use and have a setup at home.
Initially I thought about using a few Raspberry Pi with a pre-built NAS like Synology. I bought a Raspberry Pi to test it and it worked fine for some low power applications like Home Assistant, but it struggled with some heavier applications like FileRun. So, instead of using Raspberry Pis, I decided to buy components and build one high performance server.
The obvious drawback of having only one server is that there is no redundancy and a part failure will make all the applications inaccessible. This is a risk I am winning to take because the replacement parts are usually available on most major retailers (like Amazon and Newegg) with fast shipping, which should keep the downtime between one to two days.
Essentail Hardware
Motherboad (ASRock Rack X570D4U-2L2T)
Features
- Supports AMD Ryzen 3000, 4000, 5000 Series with iGPU
- four DDR4 DIMM slots with 32GB ECC/non-ECC RAM per slot
- two 1GbE and two 10GbE RJ45
- two M.2 slots
- BMC controller with dedicated RJ45 and IPMI
- 8 SATA ports
Reasons for picking
- Lower cost than intel setup
- Support for both ECC and non-ECC RAM
- 4 ethernet ports to connect LAN and WAN
- Enough SATA ports for connect all the HDDs
Memory (Kingston Fury Beast (2x32GB))
Features
- 2x32 GB
- 3200 CL 16
- Dual channel
Challenges
I am using ZFS on the server, and ECC memory is highly recommended to avoid zpool and data corruption. When I was building the server, the ECC memory availability in my region was terrible and the prices of the few available were very inflated. So, I decided to temporarily go with non-ECC memory and upgrade later to ECC memory when it becomes a bit more available
Reasons for picking
- Decent price
- Max out each motherboard DIMM at 32 GB
- 2 spare slots to expand more if needed
- Good experience with Kingston memories in the past
CPU (AMD Ryzen 5 5600G)
Features
- 3.9GHz, 6 core, 12 threads
- iGPU
- 65W TDP
- AES, AVS, SSE, SMT, AMD-V
Reasons for picking
- Good price
- The server is going to run 24/7, so having lower TDP helps especially in summers
- Has virtualization support for running virtual machines and docker containers
- Application can take advantage of things like AES and SMT for better performance
- iGPU if I need transcoding
Storage (6x Seagate Ironwolf 4TB)
Features
- 4TB per drive. 24 TB total
- 5900 RPM
- CMR, NAS drive
Reasons for picking
- Good price, decent performance, decent reliablity
- 5900 RMPs keep the noise low
- NAS drives, so they can be kept always spinning
- Most of my data will stay on these drives. I did not need very high capcity, just need enough drivers to use RAIDZ2 with two parity drives for redundancy
Miscellaneous Hardware
- SSD: Crucial P5 250GB: Good performance, good price, good reviews
- PSU: Seasonic FOCUS GX-750: Very quiet PSU from a reliable company. More than enough power output for my setup
- Case: Fractal Design Define R5: Enough room for all the driver plus more. Good cable management, airflow, very low noise
- CPU fan: Noctua NH-U12S redux: Quiet fan, good airflow, nice temps
- SATA cables, ethernet cables, case fans, power surge protector
Thank you for reading. Check out the other parts in the series below.