[Skip until “start here” if you don’t care about why and only care about what]
Here I was feeling all smug after having successfully managed to swap out my pfSense server for opnSense and in the process remap my DHCP leases and change my home domain name, switch to using Tailscale instead of OpenVPN and moving from using pfblockerng on pfSense to Pi-Hole.
It all worked and except for one stupid mistake it all worked without errors. If I had known it would be this easy I would have moved to opnsense a while ago.
Well, sometime last night I got a surge or power hick-up or something which caused a number of weird things to occur (e.g. PiHole kept restarting for no apparent reason basically killing my internet until I managed to get to opnsense to reroute DNS around it). I’ve managed to recover everything (PiHole just started working again without intervention which is weird) except my home server’s USB is simply gone.
That’s a problem because this server is hosting my NAS and half of my drives, in particular the backup drives, are USB devices. It’s also hosting my openHAB and of course the Zwave controller/Zigbee coordinator is USB.
Thankfully I’m not running anything actively off of USB drives so all my services are still working except for openHAB. I’ll migrate my openHAB instance to a machine with working USB.
[start here]
So I’m taking this as an opportunity to rethink my setup.
Current Configuration:
- not running in Docker containers
± critical services
Machine | Type | OS | Services |
---|---|---|---|
charybdis | stand alone intel mini PC | FreeBSD | opnsense*± |
esxi | server class desktop format PC | ESXi 6.5 | Type 1 Hypervisor* |
esxi:fafnir | Virtual Machine | Debian Buster | OpenMediaVault*± |
esxi:argus | Virtual Machine | Ubuntu Lite 20.04 | openHAB, Mosquitto, Zabbix |
esxi:medusa | Virtual Machine | Ubuntu Lite 20.04 | Calibre, Nextcloud, LibrePhotos, Plex, GitLab, PostgreSQL±, Redis, ElasticSearch |
esxi: arachne | Virtual Machine | Android | TinyCam Pro* |
muninn | Raspberry Pi 4 8GB | Raspberry Pi OS 64-bit | VNC (virtual desktop)*, VaultwardenRS±, Heimdall, Pi-Hole±, Tailscale Exit Node/Subnets± |
Almost everything is installed and configured using Ansible and as long as I can access my backups moving them to different machines is not that big of a deal.
Notes:
- Nextcloud, LibrePhotos, and VaultWarden depend on PostgreSQL. Nextcloud also depends on Redis and ElasticSearch.
- The folders used by Plex, Calibre, and Nextcloud are NFS mounted from OMV.
What I Like:
- the flexibility to adjust the resources on the VMs as needed (as long as the host has enough resources)
- critical services (±) are split between different machines so reboots and restarts have minimal impact
- the flexibility to move services around as needed
- it’s quiet. Everything is mounted under my desk, I’ve no place to put a server room so fan noise is a problem.
What I Don’t Like:
- rebooting OMV is very disruptive and often requires a reboot of the media server too
- I’ve done nothing on the RPi 4 to limit SD card writes largely because I’m using it as a virtual desktop. I’m nervous about running PiHole on that machine.
- Prior to adding the RPi 4 a few months ago I was at the limits of what the ESXi server could handle in terms of CPU and RAM.
What would you do?
I’ve my own ideas but I’m open to ideas from others as well. I’m open to anything.
My hard requirements are:
- must be quiet
- space efficient, everything is on shelves mounted to the bottom of my desk
- some services are CPU intensive at times (LibrePhotos auto-tagging, Nextcloud OCR, Plex video encoding)
Some approaches I’ve been pondering:
-
get a “real” NAS (e.g. QNap and replace the firmware with OMV), replace the VMs with a cluster of RPi 4s (so many cables
)
-
get a “real” NAS, a NUC (or equivalent), cluster of RPi 4s (still lots of cables)
-
replace the tower server machine and rebuild what I had (I’d go KVM this time around instead of ESXi)
-
forego the VMs entirely and just run everything on bare metal, if expansion is needed I can spill over to RPis.
-
Kubernetes (or equivalent) cluster for most things, services like openHAB and the virtual desktop on stand alone machines
I am also willing to forego running all the services in Docker and may go that route if I go the cluster of RPis route. But I do like how uniform the management of all the services is and how easy it is to upgrade, backup, and migrate everything. I basically have the same backup and restore script for all these services, the only difference being the paths.
I’m also willing to replace services with alternatives if it makes sense. For example, I’m already planning to move Tailscale to the opnsense machine as soon as support for exit nodes is added on FreeBSD.
I hope this is close enough to openHAB related to belong here. If not I’ll remove it. But I know there is a broad set of experiences and approaches in use here and would love to hear some ideas. I’ll be happy to post progress replies once I decide what to do and start migrating over. It might help answer some of the similar questions that crop up from time to time.