Go to file
Joshua Boniface c8962cc1c4 Update README badge order 2024-10-25 23:48:40 -04:00
templates Drop support for old releases 2024-10-25 01:48:54 -04:00
.gitignore Ignore PXE artifacts 2023-09-01 15:41:56 -04:00
LICENSE Initial commit of autobuild/autodeploy PVC ISO system 2023-09-01 15:41:53 -04:00
README.md Update README badge order 2024-10-25 23:48:40 -04:00
buildiso.sh Add detect parser script (from pvc) and use it 2024-08-30 10:46:41 -04:00
buildpxe.sh Remove implicit /debian from mirror 2023-09-01 15:42:00 -04:00
detect.py Add detect parser script (from pvc) and use it 2024-08-30 10:46:41 -04:00
install.sh Move to template format instead of cat-EOF 2023-09-01 15:41:57 -04:00

README.md

Logo banner

Website Latest Release Documentation Status License Code style: Black

What is PVC?

PVC is a Linux KVM-based hyperconverged infrastructure (HCI) virtualization cluster solution that is fully Free Software, scalable, redundant, self-healing, self-managing, and designed for administrator simplicity. It is an alternative to other HCI solutions such as Ganeti, Harvester, Nutanix, and VMWare, as well as to other common virtualization stacks such as ProxMox and OpenStack.

PVC is a complete HCI solution, built from well-known and well-trusted Free Software tools, to assist an administrator in creating and managing a cluster of servers to run virtual machines, as well as self-managing several important aspects including storage failover, node failure and recovery, virtual machine failure and recovery, and network plumbing. It is designed to act consistently, reliably, and unobtrusively, letting the administrator concentrate on more important things.

PVC is highly scalable. From a minimum (production) node count of 3, up to 12 or more, and supporting many dozens of VMs, PVC scales along with your workload and requirements. Deploy a cluster once and grow it as your needs expand.

As a consequence of its features, PVC makes administrating very high-uptime VMs extremely easy, featuring VM live migration, built-in always-enabled shared storage with transparent multi-node replication, and consistent network plumbing throughout the cluster. Nodes can also be seamlessly removed from or added to service, with zero VM downtime, to facilitate maintenance, upgrades, or other work.

PVC also features an optional, fully customizable VM provisioning framework, designed to automate and simplify VM deployments using custom provisioning profiles, scripts, and CloudInit userdata API support.

Installation of PVC is accomplished by two main components: a Node installer ISO which creates on-demand installer ISOs, and an Ansible role framework to configure, bootstrap, and administrate the nodes. Installation can also be fully automated with a companion cluster bootstrapping system. Once up, the cluster is managed via an HTTP REST API, accessible via a Python Click CLI client or WebUI (eventually).

Just give it physical servers, and it will run your VMs without you having to think about it, all in just an hour or two of setup time.

More information about PVC, its motivations, the hardware requirements, and setting up and managing a cluster can be found over at our docs page.

PVC Live Node Installer

This repository contains the generator and configurations for the PVC Live Node Installer ISO. This ISO provides a quick and convenient way to install a PVC base system to a physical server, ready to then be provisioned using the PVC Ansible configuration framework. Part of the Parallel Virtual Cluster system.

Using the PVC Installer

Preparing

  1. Run ./buildiso.sh from the root of the repository. This will pull down the Debian LiveCD image, extract it, debootstrap a fresh install environment, copy in the configurations, generate a squashfs, then finally generate an ISO file.

Note that artifacts of the build (the LiveCD ISO, debootstrap directory, and squashfs) are cached in artifacts/ for future reuse.

  1. Load the ISO via virtual media or write it to a USB drive.

  2. Boot the server from the ISO, ideally in UEFI mode.

Booting

The built ISO can be booted in either BIOS (traditional ISOLinux) or UEFI (Grub2) modes. It is strongly recommended to use the latter if the system supports it for maximum flexibility.

Installing

The installer script will ask several questions to configure the bare minimum system needed for pvc-ansible to configure the node.

Follow the prompts carefully; if you make a mistake, you can ^C to cancel the installer, then re-run via /install.sh from the resulting root shell.