VM 1x in Site #1, VM 2x in Site #2
- VM11 and VM21 must be run on any host on each site. If site down, they need to restart on another site. When site up, they must migrate back to your site.
- VM12 and VM22 must be run on any host and any site.
- VM13 and VM14 can't run in same host.
All of that can be done with failoverdomains currently. Only slight issue is no GUI to manage failoverdomains.
- VM23 can run on any host in site, except host #1, because it heavy loaded VM.
This would be nice to setup for specific VMs but I'd be concerned about a migration storm if it was setup for ALL VMs in a cluster.
This could also be implemented external of Proxmox using monitoring tools that can run commands based on certain conditions, like Zabbix.
Proxmox should likely have some sort of resource balancing feature some day but I feel there are more important things that time should be invested into right now.
For example, stop running KVM as root.
This sounds like a great idea on the surface but the more I think about it I wonder if its a solution looking for a problem.
If you need this sort of uptime you should design your application so it has no single point of failure.
Example:
Lets say I have a central DB server that must be running for the application to function.
So I setup this VM to run simultaneously which only protects me from hardware failure (prevents only a few minutes of downtime if hardware ever fails)
But that never happens, instead the DB server software crashes, my application is now down. (simultaneous running did nothing to prevent this problem)
If one had taken the time to ensure they had no SPOF in their design then it would not matter if a software or hardware issue took down one of your DB cluster VMs, your app would still be working.
My opinion is simple:
If you need that sort of uptime design it into your application.