2024-03-14 01:12:48 +00:00
|
|
|
{{ define "content" }}
|
2024-03-14 07:54:41 +00:00
|
|
|
<div class="m-2 px-4 pt-2 flex-col shadow-md
|
|
|
|
rounded-2xl border-8 border-double divide-solid divide-y-2
|
|
|
|
bg-dracula-900 text-dracula-100 shadow-dracula-900
|
|
|
|
divide-dracula-800 border-dracula-800">
|
|
|
|
<h3 class="text-xl font-semibold">What is this?</h3>
|
|
|
|
<p>Clustvirt (work in progress name) aims to be the agnostic
|
|
|
|
cluster controller for libvirtd. The server component is
|
|
|
|
used to display both the WebUI and run the REST API used to
|
|
|
|
control one to many libvirtd hosts to manage virual machines,
|
|
|
|
LXC containers (through libvirtd), gather information about
|
|
|
|
each host, and monitor each host.</p>
|
2024-03-14 04:21:01 +00:00
|
|
|
</div>
|
2024-03-14 07:54:41 +00:00
|
|
|
<div class="m-2 px-4 pt-2 flex-col shadow-md
|
|
|
|
rounded-2xl border-8 border-double divide-solid divide-y-2
|
|
|
|
bg-blade-900 text-blade-100 shadow-blade-900
|
|
|
|
divide-blade-800 border-blade-800">
|
|
|
|
<h3 class="text-xl font-semibold">Project Goals</h4>
|
|
|
|
<ul class="leading-relaxed list-image-accepted list-inside">
|
|
|
|
<li class="accepted">Open source, currently on the MIT license</li>
|
|
|
|
<li class="notimpl">Base OS Agnostic. If it can run libvirtd, this should be
|
|
|
|
able to control it on some level</li>
|
|
|
|
<li class="notimpl">Control the Virtual Machine life cycle
|
|
|
|
on one or more libvirtd hosts</li>
|
|
|
|
<li class="notimpl">Add clusting capabilities to libvirtd host,
|
|
|
|
including;</li>
|
2024-03-14 01:12:48 +00:00
|
|
|
<li class="notimpl">Migration of VMs</li>
|
|
|
|
<li class="notimpl">Syncronizing secrets</li>
|
2024-03-14 07:54:41 +00:00
|
|
|
<li class="notimpl">Syncronizing VLANs, bridges, host only
|
|
|
|
networking</li>
|
2024-03-14 01:12:48 +00:00
|
|
|
<li class="notimpl">Sharing HA storage availability</li>
|
|
|
|
<li class="notimpl">Locking shared resources like disks</li>
|
2024-03-14 07:54:41 +00:00
|
|
|
<li class="notimpl">Starting VMs marked for HA on another host
|
|
|
|
when one goes down</li>
|
|
|
|
<li class="notimpl">Manage a library of Cloud-init resources
|
|
|
|
and templates to build new VMs quickly</li>
|
|
|
|
<li class="notimpl">Local Storage management, including local
|
|
|
|
directory, lvm, zfs (if installed)</li>
|
|
|
|
<li class="notimpl">Advanced Storage management, such as Ceph,
|
|
|
|
glusterfs, drbd, iscsi, nfs</li>
|
|
|
|
<li class="notimpl">Storage syncronization of local disks
|
|
|
|
between hosts (zfs snapshots, lvm snapshots, rsync)</li>
|
2024-03-14 01:12:48 +00:00
|
|
|
<li class="notimpl">Backup scheduling, creation, restoration</li>
|
|
|
|
</ul>
|
2024-03-14 04:21:01 +00:00
|
|
|
</div>
|
2024-03-14 07:54:41 +00:00
|
|
|
<div class="m-2 px-4 pt-2 flex-col shadow-md
|
|
|
|
rounded-2xl border-8 border-double divide-solid divide-y-2
|
|
|
|
bg-cullen-900 text-cullen-100 shadow-cullen-900
|
|
|
|
divide-cullen-800 border-cullen-800">
|
|
|
|
<h3 class="text-xl font-semibold">Stretch Goals</h3>
|
|
|
|
<ul class="leading-relaxed list-image-possible list-inside">
|
2024-03-14 01:12:48 +00:00
|
|
|
<li>Install the OS which libvirtd is running on</li>
|
2024-03-14 07:54:41 +00:00
|
|
|
<li>Install/provision libvirtd on a host that does not have
|
|
|
|
it installed</li>
|
2024-03-14 01:12:48 +00:00
|
|
|
<li>Tools to move from one vendor to clustvirt/libvirtd</li>
|
2024-03-14 07:54:41 +00:00
|
|
|
<li>VM templates for common aspects of VM creation and management,
|
|
|
|
like appliances</li>
|
|
|
|
<li>External tool access that can be used to manage things that
|
|
|
|
are not managed here (cephadm dashboard, for instance)</li>
|
2024-03-14 01:12:48 +00:00
|
|
|
</ul>
|
2024-03-14 07:54:41 +00:00
|
|
|
</div>
|
|
|
|
<div class="m-2 px-4 pt-2 flex-col shadow-md
|
|
|
|
rounded-2xl border-8 border-double divide-solid divide-y-2
|
|
|
|
bg-morbius-900 text-morbius-100 shadow-morbius-900
|
|
|
|
divide-morbius-800 border-morbius-800">
|
|
|
|
<h3 class="text-xl font-semibold">Reddit Requested Features</h3>
|
|
|
|
<ul class="list-image-possible list-inside leading-relaxed">
|
|
|
|
<li>Search/Filter on hosts/vms - @Lopsided_Speaker_553</li>
|
|
|
|
<li>Balance on resource usage per host/Automattically migrate to
|
|
|
|
least used host - @Lopsided_Speaker_553</li>
|
|
|
|
<li>Support inter-vm only commmunication (VxLAN style)
|
|
|
|
- @Lopsided_Speaker_553</li>
|
|
|
|
<li>Deploy VMs using only API - @Lopsided_Speaker_553</li>
|
|
|
|
<li>Well documented, first class API - @kasperlitheater</li>
|
|
|
|
<li>Bootstrap service to configure a new server - @phatpappa_</li>
|
|
|
|
<li>For the love of kitten, don't use XML as configuration files
|
|
|
|
- @pascalbrax</li>
|
|
|
|
<li>Expose the Cluster Manager functionalities as API - @raven2611</li>
|
|
|
|
<li>CPU architecture awareness for migrations - @raven2611</li>
|
|
|
|
<li>Inter VM Communications via VXLAN/EVPN - @raven2611</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<div class="m-2 px-4 pt-2 flex-col shadow-md
|
|
|
|
rounded-2xl border-8 border-double divide-solid divide-y-2
|
|
|
|
bg-marcelin-900 text-marcelin-100 shadow-marcelin-900
|
|
|
|
divide-marcelin-800 border-marcelin-800">
|
|
|
|
<h3 class="text-xl font-semibold">Never Going to Happen</h3>
|
|
|
|
<ul class="list-image-never list-inside leading-relaxed">
|
2024-03-14 01:12:48 +00:00
|
|
|
<li>Kubernetes</li>
|
|
|
|
<li>Application container management (docker, podman, etc)</li>
|
|
|
|
<li>Become an OS</li>
|
|
|
|
<li>Have a paywall</li>
|
|
|
|
<li>Vendor lock-in</li>
|
|
|
|
<li>Become a commercial entity (even indirectly)</li>
|
|
|
|
<li>Anything that does not have an Open Source standard behind it</li>
|
|
|
|
<li>Directly control a guest Operating System</li>
|
|
|
|
</ul>
|
2024-03-14 07:54:41 +00:00
|
|
|
</div>
|
|
|
|
<div class="m-2 px-4 pt-2 flex-col shadow-md
|
|
|
|
rounded-2xl border-8 border-double divide-solid divide-y-2
|
|
|
|
bg-dracula-900 text-dracula-100 shadow-dracula-900
|
|
|
|
divide-dracula-800 border-dracula-800">
|
|
|
|
<h3 class="text-xl font-semibold">Why?</h3>
|
|
|
|
<ul class="list-image-informational list-inside leading-relaxed">
|
|
|
|
<li>Broadcom buying VMWare, and VMWare losing a free teir for
|
|
|
|
homelabbers pissed me off</li>
|
2024-03-14 01:12:48 +00:00
|
|
|
<li>Vendor lock-in pisses me off</li>
|
2024-03-14 07:54:41 +00:00
|
|
|
<li>Even good open source Hyperconverged systems (Proxmox, as
|
|
|
|
an example) exhibit a form of vendor lock-in</li>
|
|
|
|
<li>Libvirt is terrific, has the functionality for everything
|
|
|
|
those other providers do, but there really is not a
|
2024-03-14 01:12:48 +00:00
|
|
|
great option for those dipping their toes into Open Source</li>
|
|
|
|
<li>Its fun to build things that solve a need</li>
|
|
|
|
<li>I really want to do it</li>
|
|
|
|
</ul>
|
2024-03-14 07:54:41 +00:00
|
|
|
</div>
|
|
|
|
<div class="m-2 px-4 pt-2 flex-col shadow-md
|
|
|
|
rounded-2xl border-8 border-double
|
|
|
|
bg-voncount-900 text-voncount-100 shadow-voncount-900
|
|
|
|
divide-voncount-800 border-voncount-800">
|
|
|
|
<h3 class="text-xl font-semibold border-b-2 border-voncount-800">Other notes</h3>
|
|
|
|
<p>I recently created a <a href="http://redd.it/1bct15z"
|
|
|
|
class="after:content-link after:w-3 after:h-3 after:inline-block
|
|
|
|
after:invert text-base text-morbius-100">post</a>
|
|
|
|
on reddit announcing that I was building this, and while the majority
|
|
|
|
of responses were supportive, even offering features that may enhance
|
|
|
|
what I originally set out to do, many responded with
|
|
|
|
"Why do we need another one??"</p>
|
|
|
|
|
|
|
|
<p>Besides the list above about why this exists, I wanted to clarify
|
|
|
|
a few things those individuals did not seeem to get: This is not
|
|
|
|
a rebuild of Proxmox, Cloudstack, VMWare, Harvester or any of
|
|
|
|
the other "Hyper-converged/Single-solution/turnkey/Operating System"
|
|
|
|
offerings out there. This will not take over your base operating system
|
|
|
|
on your machine, just act as a cluster manager and interface to access
|
|
|
|
the existing libvirtd instances on those machines, nor will it prescribe
|
|
|
|
a set of requirements that make it hard to move your own infrastructure
|
|
|
|
around.</p>
|
|
|
|
|
|
|
|
<p>At the heart of this project is that I hate the enshitifiation of
|
|
|
|
Open Source that has been going on, where its just another way to make
|
|
|
|
money and control the eco system. RedHat tried to do it by locking
|
|
|
|
down their source code, Proxmox does it by making sure anything you
|
|
|
|
do on Proxmox is tied to Proxmox (no offense to Proxmox), and even
|
|
|
|
Hashicorp, who I loved so dearly, changed from a pure Open Source
|
|
|
|
licensing model to one that protects the business over the community.</p>
|
|
|
|
|
|
|
|
<p>I will not let that happen here.</p>
|
|
|
|
|
|
|
|
<p>This project will seek to use the Unix philosophy, of building off
|
|
|
|
of existing standards, combining tools, and having one tool do one
|
|
|
|
job well. This does not mean there will be one application for each
|
|
|
|
aspect of the job, but that this application stack will manage Libvirtd
|
|
|
|
well, and have individual and configurable paths to manage each sub-aspect
|
|
|
|
of the libvirt stack. This stack will not create a Ceph cluster for you,
|
|
|
|
it leaves you to do that. It will not even talk to a ceph cluster.
|
|
|
|
It will, however, let you add that cluster via configuration options to
|
|
|
|
define it as a storage pool that libvirt can use.</p>
|
|
|
|
|
|
|
|
<p>If you want something that will allow you to use a single interface
|
|
|
|
to create all sub aspects that can be used by libvirt
|
|
|
|
(managing all firewall rules, creating a ceph cluster, etc.),
|
|
|
|
use something like Proxmox which includes that builtin
|
|
|
|
functionality. This isn't the stack for you.<p>
|
|
|
|
</div>
|
2024-03-14 01:12:48 +00:00
|
|
|
{{ end }}
|