incrementally replicate libvirt based virtual machines to remote hosts using dirty bitmaps.
This utility can be used to sync or "replicate" virtual machines to other libvirt hosts. On the first execution, a complete (full) replication will be executed and an dirty bitmap is created. For any following command calls, it will only synchronize incremental changes since the last checkpoint.
Ein Vortrag über die Entstehung, Entwicklung des Incus Projekts seit 2023 und die Möglichkeiten zur Verwaltung von System Container und virtuellen Maschinen.
Incus ist ein fork des LXD-Projektes, welches viele Jahre als Teil der Linux Container Community entwickelt und gepflegt wurde. Es bezeichnet sich selbst als modernes, sicheres und mächtiges Verwaltungswerkzeug für System Container und virtuelle Maschinen.
Der Vortrag soll einen Überblick zum genannten Projekt verschaffen und klären, wie Incus gegenüber den bekannten Projekten wie Proxmox und XCP-ng einzuordnen ist.
Im ersten Teil meines Vortrags zeige ich u. a. die Möglichkeiten auf, welche Incus bei der Verwaltung von System Container und Virtuellen Maschinen bietet. Hierbei wird auch der Unterschied erklärt zwischen Application Container, System Container und virtuellen Maschinen. Im zweiten Teil meines Vortrags gebe ich einen Überblick, wie sich Incus seit dem initialen Release im Oktober 2023 entwickelt hat und was es noch so rund um Incus gibt bzw. was für 2025 geplant ist. Zum Abschluss wird es natürlich auch eine kurze Demo geben.
Incus is a next-generation system container, application container, and virtual machine manager.
It provides a user experience similar to that of a public cloud. With it, you can easily mix and match both containers and virtual machines, sharing the same underlying storage and network.
Incus is image based and provides images for a wide number of Linux distributions. It provides flexibility and scalability for various use cases, with support for different storage backends and network types and the option to install on hardware ranging from an individual laptop or cloud instance to a full server rack.
When using Incus, you can manage your instances (containers and VMs) with a simple command line tool, directly through the REST API or by using third-party tools and integrations. Incus implements a single REST API for both local and remote access.
The Incus project was created by Aleksa Sarai as a community driven alternative to Canonical's LXD.
Today, it's led and maintained by many of the same people that once created LXD.
Network booting is cool. Once you have setup everything you can stop juggling iso images in your virtual machine configs. Instead you just kick a network boot and pick whatever you want install from the boot menu delivered by the boot server.
This article is not about the basics of setting up a boot server. The internet has tons of tutorials on how to install a tftp server and how to boot your favorite OS from tftp. This article will focus on configuring network boot for libvirt-managed virtual machines.
Mitogen is a Python library for writing distributed self-replicating programs.
There is no requirement for installing packages, copying files around, writing shell snippets, upfront configuration, or providing any secondary link to a remote machine aside from an SSH connection. Due to its origins for use in managing potentially damaged infrastructure, the remote machine need not even have free disk space or a writeable filesystem.
It is not intended as a generic RPC framework; the goal is to provide a robust and efficient low-level API on which tools like Salt, Ansible, or Fabric can be built, and while the API is quite friendly and comparable to Fabric, ultimately it is not intended for direct use by consumer software.
The focus is to centralize and perfect the intricate dance required to run Python code safely and efficiently on a remote machine, while avoiding temporary files or large chunks of error-prone shell scripts, and supporting common privilege escalation techniques like sudo, potentially in combination with exotic connection methods such as WMI, telnet, or console-over-IPMI.
General note concerning the use of guest agent interfaces:
"unsupported" is a higher-level error than the errors that individual commands might document. The caller should always be prepared to receive QERR_UNSUPPORTED, even if the given command doesn’t specify it, or doesn’t document any failure mode at all.
This is based on an article I wrote for Make magazine at their request in early 2008. An article based on this content was published in Make Magazine issue 20 in late 2009 - more than a year and a half after I submitted it to them.
