# clustvirt - Libvirt cluster manager Clustered virtualization has gotten to complicated. We have a great system for it built into the Linux kernel, with shared software stacks between whatever base distro you want to use. Every other option has buy in, and buzzwords. I want something truly simple that can manage virtual machines on multiple hosts, integrating with existing tools, running from one/all of the hosts, a raspberry pi, or as a guest machine on the cluster itself. The mission: Talk to libvirt hosts, coordinate them, manage them, and let people take their clusters back. Overall goals: - HA Cluster resource manager (simpler then existing options, just for libvirt) - Share secrets - Share VM configs - know what VM is running on what cluster host - trigger migrations of hosts - most simple quorum algorithm possible, ability to run 2 hosts reliably, up to ?? hosts without worry - Simplest quorum: If the controller can't reach it, it's down. - Shared Network management - Shared storage managment - Does not include clustered storage configuration - Can use different clustered storage systems (just not configure them directly) - Reliable backup and snapshotting - The tools exist for this, just needs to be exposed - Install on any libvirt system, as long as the basic requirements are met as far as compatibility is concerned - Should be able to have hosts on RedHat, Rocky, Arch, Ubuntu, Debian, whatever without worry - Cloud-init configuration help to create useful and reusable cloud-init files, that don't need to be used by the system only. It's a standard, use it. ## Existing tools and libraries to use - [https://pkg.go.dev/libvirt.org/go/libvirt] Go Bindings for libvirt - Not sure if it can be used without libvirt existing on the system it's running on. Worth a try. ## Roadmap - Create simple daemon that can run on 1 or more hosts that will keep track of things - Libvirt daemon - Host Capabilities - Migration Capabilities - Secret management - Storage pool management - Volume management - Guest management - Connection management (to other libvirt hosts) - Create a simple WebUI with HTMX to monitor that stuff - Add the ability to manage that stuff once we can monitor it, through the WebUI.