Go to file
Joshua Boniface b6ecd36588 Implement domain log watching
Implements the ability for a client to watch almost-live domain
console logs from the hypervisors. It does this using a deque-based
"tail -f" mechanism (with a configurable buffer per-VM) that watches
the domain console logfile in the (configurable) directory every
half-second. It then stores the current buffer in Zookeeper when
changed, where a client can then request it, either as a static piece
of text in the `less` pager, or via a similar "tail -f" functionality
implemented using fixed line splitting and comparison to provide a
generally-seamless output.

Enabling this feature requires each guest VM to implement a Libvirt
serial log and write its (text) console to it, for example using the
default logging directory:

```
<serial type='pty'>
    <log file='/var/log/libvirt/vmname.log' append='off'/>
<serial>
```

The append mode can be either on or off; on grows files unbounded,
off causes the log (and hence the PVC log data) to be truncated on
initial VM startup from offline. The administrator must choose how
they best want to handle this until Libvirt implements their own
clog-type logging format.
2019-05-10 23:26:59 -04:00
client-api Update methods to POST where relevant 2019-04-12 12:27:49 -04:00
client-cli Implement domain log watching 2019-05-10 23:26:59 -04:00
client-common Implement domain log watching 2019-05-10 23:26:59 -04:00
debian Add dependency for vlan support 2019-03-15 21:15:17 -04:00
docs Remove obsolete about 2019-03-17 22:37:57 -04:00
node-daemon Implement domain log watching 2019-05-10 23:26:59 -04:00
.file-header Add file header template 2018-09-10 01:19:08 -04:00
.gitignore Ignore swap files 2018-06-18 21:26:36 -04:00
.gitlab-ci.yml Massive rejigger into single daemon 2018-10-14 02:40:54 -04:00
LICENSE Remove licence blurb for python_dhcp_server 2018-10-14 16:29:39 -04:00
README.md Minor tweaks to README appearance 2019-03-14 20:37:47 -04:00
build-deb.sh Massive rejigger into single daemon 2018-10-14 02:40:54 -04:00
mkdocs.yml Add documentation to project 2019-03-14 20:23:39 -04:00
pvc_logo.svg A few more tweaks 2018-06-06 02:43:34 -04:00

README.md

PVC - The Parallel Virtual Cluster suite

Logo banner

Release Pipeline Status Documentation Status

PVC is a suite of Python 3 tools to manage virtualized clusters. It provides a fully-functional private cloud based on four key principles:

  1. Be Free Software Forever (or Bust)
  2. Be Opinionated and Efficient and Pick The Best Software
  3. Be Scalable and Redundant but Not Hyperscale
  4. Be Simple To Use, Configure, and Maintain

It is designed to be an administrator-friendly but extremely powerful and rich modern private cloud system, but without the feature bloat and complexity of tools like OpenStack. With PVC, an administrator can provision, manage, and update a cluster of dozens or more hypervisors running thousands of VMs using a simple CLI tool, HTTP API, or web interface. PVC is based entirely on Debian GNU/Linux and Free-and-Open-Source tools, providing the glue to bootstrap, provision and manage the cluster, then getting out of the administrators' way.

Your cloud, the best way; just add physical servers.

See the documentation here