Howdy guys. I’ve been tearing down and rebuilding PC stuff lately and I think that it’s finally time to build up my homelab and start self hosting apps as well. My problem is that I was going to try to run this all on one system (epyc or the like), but I’ve heard that virtualizing this stuff is much more of a pain than it is to simply build multiple systems. So I guess my question is how many systems do I need? Could I virtualize most of it? Let me run down what my system reqs and what apps/services I’d like to run.
I have a gaming pc. It will be running 2 GPUs on an x570 motherboard and I plan on picking up a 40gbe NIC as well. It is going to run linux (manjaro gnome or ubuntu probably) and run windows 10 in a vm with GPU passthrough.
Next up is a NAS or NAS functionality. This system will need an HBA to support my 8x SAS-12 hard drives. I’d like this one to have 40gbe as well.
After that is routing. I need this one to have multiple 40gbe connections (probably 4) and I also plan on adding a quad 10gbe card.
After routing is the self-hosting/VM functionality. I need enough cores to run a decent amount of apps and services.
Lastly, the firewall, and the reason I’m writing this post. I guess I’m wondering how this would fit in with the other services. I understand that it would probably be better to build an independent system or use an open appliance for firewall usage, rather than to virtualize it on the system that might house the router or NAS.
So for my network/lab, can I get away with putting the routing/NAS/and self-hosting apps on the same (epyc or TR) system and then having a separate firewall? Should the routing be done on a separate system apart from the NAS? Should the apps and services be done on another system as well?
As far as self hosting services and applications I know that I’d like to run:
pi-hole
reverse-proxy (traefik?) (certificates as well?)
plex/jellyfin
a book library host
grafana
self-hosting for a website
self-hosting for an email service
kubernetes ( need to learn more about this)
docker/rancher (I need to learn more about this. Are containers that different from VMs?)
Data syncing, backups, and file sharing (syncthing?)(nextcloud?)(photoprism?)
battery monitoring (nutserver)
Password management (bitwarden/vaultwarden)
I have a pi-kvm that I can use as well. So my question is mostly along the line of what systems/services should be separated and how much can I or should I combine? I already have the components for the gaming PC. I also have an extra b550 motherboard and 3800x CPU. Can I get away with 2 systems? One for a firewall/vpn and the other one for the NAS/Router/services? How difficult is it to virtualize these processes instead of building 3 or even 4 systems?
on a small sidenote: how different are the threadripper pro CPUs and epyc? I understand that epyc is probably the better choice if I need that many lanes, but is the main difference just clock speeds?
Thank you for your time, and for reading my ramblings.