I don’t think your experience would be that great with VMs and remoting. For example, for the media PC, instead of a small PC remoting to the server, you’d most likely be better off playing media directly on the small PC. You can just use a Raspberry Pi 3 (or if you’re patient, buy the better Pi 4, the 2 or 4 GB version). You could also get away with a cheap build, or even 2nd hand using old components for it, 1080p and maybe even 4K media playback shouldn’t be a problem for an ASRock J3455M (this is the motherboard I put in my pfSense router). You could even get away with a 2nd hand old dual-core Celeron or Athlon II build with a cheap GPU, like a GT1030 or a Radeon 6670 (I got both of these, they’re both good for 1080p and the GT1030 for 4K Youtube playback).
I’ve got a Hikvision 1080p camera at work and it’s set to offload footage on a storage server and delete everything every 30 days. I’m not sure how much storage it uses, but you shouldn’t worry too much about it, if you enable motion detection (ie: the camera will only record when it detects movement). If I don’t forget to look into it, you should probably expect to multiply by as many cameras as you have and to divide by 2 or even 3 (there’s a lot of going back and forth in the camera’s orientation, so it records probably half the day).
Also keep in mind that with 1 server, you got 1 point of failure. Too many things done simultaneously on the server and everybody starts lagging.
GPU Passthrough is more for the people who want to run Linux as their main OS and Windows as a VM. But that’s for a main build. I tried playing games through both RDP and VNC on the same LAN and the performance was terrible. Maybe it was something on my end, but I don’t think so. I somehow did a little better when VPN-ing home from 2 other locations and trying to RDP game. It wasn’t smooth, but it was enough for what I needed to do. Again, I suggest you do a main build.
I read guides about pfSense and basically everybody said to just use physical hardware for it, since the speed on virtualized NICs was terrible. Not sure how up-to-date that info is, or if it applies to home routers, but I still have a 15W PC (the ASRock mentioned above) running 1 WAN port and 2 LAN ports (I got 6x 1 Gbps ports, because I’m dumb and didn’t plan out from the beginning and also didn’t have a lot of network knowledge - not that now I do, but at least it’s a little better).
VMs are fun, but I don’t think that 1 expensive server and many thinclients will be cheaper than many cheap PCs. Unless you want to run only passively cooled PCs or pico form-factors, like Raspberry Pi, Intel NUC, Gigabyte Brix, ASRock Beebox, MintBox and so on and have all the loud compute be done in a server away from your ears, then having a server, or even multiple servers in a rack that you remote to, is not that big of a deal (and definitely not cheaper than buying more cheap PCs).
Since you already bought ECC memory, I guess you will be going forward with the project. For a home hypervisor, I recommend you either go with Proxmox or XPC-ng (basically the full version of XenServer) or install Fedora and go with Virt-Manager. The first 2 options will make your life easier with maintenance, because you do most of the work through web interfaces. For Fedora, you either SSH into it and run virsh commands, or VNC into it and use the GUI for Virt-Manager. If you want to PCI-E passthrough in the future (like a GPU for a Windows VM or a 4 port PCI-E network card to a pfSense VM), I’d recommend Fedora. You can do it in Proxmox, but I don’t think there’s as many guides for it as there are for Fedora. So you should pick your poison.
For the motherboards, I’m very ignorant. I’d suggest you get your hands on a 2nd hand server, like a HP Gen8, but since you bought RAM, I guess you want to DIY. For a build, I recommend you go with Threadripper 2. I think a 12 core part (2920X) should suffice, unless you want more than 1 performant VM, which then, you should go with a 16 core part (2950X). I can think of this scenario:
- Main PC: 8 threads, 8 GB of RAM
- Main Windows VM: 8 threads, 8 GB of RAM (you said you don’t have newer titles)
- pfSense VM: 2 threads, 4 GBs of RAM (2 is probably enough, but maybe having more than 1 PC, 1 tablet and 1 phone would use more than 2? let’s pretend it’s future-proofing)
I’m using around 1 GB of RAM for these devices.
- HTVM (Home Theater Virtual Machine? Is this even a thing?): 4 threads, 4 GB of RAM
- Storage VM (I’m only familiar with NFS and Samba, since you most likely want to access from a Windows VM, go with Samba): 2 threads, 4 GB of RAM. I guess you could use this storage to also keep your video surveillance recordings.
Around 1 thread and 2 GB of RAM would go to the hypervisor, but you’re still left with a few resources for 1 or 2 smaller VMs. But you could also give some VMs more threads, but less maximum CPU usage (like for example, give 4 threads to the HTVM, but limit its CPU usage to 30%). Depending on what you’re doing, you might not even need to allocate so many resources to some VMs.
I skipped the motherboard for the TR 2920X, I believe ASRock x399 Taichi would be a good choice. (don’t forget to use the Level1Techs promo link if you’re shopping on Amazon:
)
Your build is really one of a kind TBCH, I personally wouldn’t build one server to make VMs for every room that I spend time in. Well, I’m a low-power freak and although I love Ryzen and Threadripper, I personally don’t need them.