Categories
general Linux

DIY Proxmox Homeserver

There is a time in life of an sysadmins where he needs to bring all his services, data and projects back home. I was considering to buy a 4-Bay-NAS from Synology or Asustor. But I think I’ve build something better and more flexible for less money. A Synology DS920+ 4-Bay 12TB Bundle with 4X 3TB HDDs costs about 920€. So I set my budget limit to be less than 1000€ for more storage and more compute power. So this is my homeserver-build.

Hardware

!!!IF YOU WANT TO BUILD THIS BY YOUR OWN PLEASE BY A CPU WITH GRAPHICS!!!

  • Case: Chieftec Gaming Cube (CI-01B-OP) for 48€
  • Processor: Intel i3 9100F for 122€
    • please buy a i3-9100 or i3-9100T WITH iGPU
  • Mainboard: Fujitsu D3644-B Intel C246 So.1151 Dual Channel DDR for 153€
  • RAM: 2x 16GB REG ECC DDR4 Samsung for 85€ (used)
    • REG ECC is not working with this board 🙁
    • brought unregistered ECC UDIMM ECC RAM
  • SSD: Samsung 980 1 TB PCIe 3.0 (up to 3.500 MB/s) NVMe M.2 Internes Solid State Drive (SSD) (MZ-V8V1T0BW) for 110€
    • _should have about 600TBW (lasting ~25 years)
  • HDD: 3x 4000GB Seagate IronWolf (ST4000VN008) 3x 100€ = 300€ total
    • best price and performance overall for my use-case
  • Power: 300 Watt be quiet! Pure Power 11 Non-Modular 80+ Bronze 38€
    • should be enough
  • Fans: ~ 30€
    • 3x Arctic P12 PWM 120x120x25mm 200-1800 U/min

💸 = 1025€

Software

As hypervisor for my homeserver I’m using Proxmox 7 CE

Storage

  • NVMe: used for proxmox os and vm’s
  • 3x HDDs are setup as RAID-Z1 and provide a 8TB pool

Also I’m using a 8TB external HDD for regulary backups every 14 days.

The RAID-Z1

Theory

  • with this setup one disk can fail without crashing the whole RAID
  • if one disk fails it must be replaced immediately
  • calculate avaiable storage for RAID-Z1 (Single parity with variable stripe width)  raw storage capacity=(N−1)⋅S(min)\ raw\ storage\ capacity=(N-1) \cdot S(min) raw storage capacity=(N−1)⋅S(min) N=total number of disksN=total\ number\ of\ disksN=total number of disks S(min)=smallest disks sizeS(min)=smallest\ disks\ sizeS(min)=smallest disks size
  • in my case: (3−1)⋅4000GB=8000GB=8TB(3-1) \cdot 4000GB = 8000GB = 8TB(3−1)⋅4000GB=8000GB=8TB
  • online calculator wintelguy.com

cache and log The maximum size of a log device should be about half the size of physical memory, so this is usually quite small. The rest of the SSD can be used as cache. I have an 1000GB SSD and 32GB RAM. So my log should be about 16GB and the rest can be used as cache.

  • after some more research I think an SSD Cache is not useful for my purpose

Monitoring

Conclusion

The project has already made me headaches. Especially the i3-9100F without iGPU… Nevertheless, I am happy about the server and the possibilities it provides me.