update README.md

- Discovered simplest method of quorum
  - if the controller can't reach a host, it's down
This commit is contained in:
Matthew Stobbs 2024-03-09 23:54:40 -07:00
parent 6a6d0d2f21
commit 9ce8b81e06

View File

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