Contents
Like in the previous years, libvirt applied for Google Summer of Code 2020. The program timeline can be found here. This page lists accepted projects only. For the list of ideas go here.
IRC (GSoC specific): #qemu-gsoc on irc.oftc.net
IRC (development and general): #virt on irc.oftc.net
Please contact the respective mentor for the idea you are interested in. For general questions feel free to contact me: Michal Prívozník (IRC nick: mprivozn).
The list of project ideas can be found here.
Summary: Implement abstract job control and use it to improve storage driver.
Currently, libvirt support job cancellation and progress reporting on domains. That is, if there's a long running job on a domain, e.g. migration, libvirt reports how much data has already been transferred to the destination and how much still needs to be transferred. However, libvirt lacks such information reporting in storage area, to which libvirt developers refer to as the storage driver. The aim is to report progress on several storage tasks, like volume wiping, file allocation an others.
Links:
Details:
Component: libvirt
Skill level: advanced
Language: C
Mentor: Pavel Hrdina <phrdina@redhat.com>, phrdina on IRC (#virt OFTC)
Summary: Add support for Jailhouse hypervisor to libvirt.
Jailhouse is a Linux-based partitioning hypervisor designed to run bare-metal applications and (adapted) operating systems alongside Linux. Compared to other hypervisors such as KVM or Xen, Jailhouse is optimized for simplicity rather than features and targets real-time and security workloads.
The project's goal is to develop libvirt driver for Jailhouse. The current vision is to implement lifecycle management (VM aka cell start/stop), status and virtual console support. The latter relies on work-in-progress which would hopefully be merged mainline before the project starts.
There are some initial attempts which could be used as a starting point. However, we should refrain from calling jailhouse tool (a native Jailhouse command-line interface) and rather use direct kernel API (ioctls issued to /dev/jailhouse) or abstract it into a library.
Links:
Jailhouse project page: https://github.com/siemens/jailhouse
Initial attempt on Jailhouse driver: https://www.redhat.com/archives/libvir-list/2015-November/msg00302.html
Details:
Skill level: intermediate
Language: C
Summary: Salt virt.running and virt.defined states help users define VMs using libvirt. In order to allow more fine tuning of the created or updated virtual machines, this project aims at exposing the CPU and memory tuning options in these states.
Links:
Details:
Skill level: intermediate
Language: Python.
Mentor: Cédric Bosdonnat <cbosdonnat@suse.com>
Summary: Salt virt.migrate needs to be reworked to better cover the libvirt API
Salt offers a nice wrapper around libvirt. However the migration functions are calling virsh and not exposing all options. This project is about rewriting the salt migration functions to use the python-libvirt API, but also to expose as much as possible of the libvirt migration options.
Salt also allows users to describe the guests using a state. Once the migration functions are exposed, the virt.running state would need to be modified to handle migrating the guest to another host.
Links:
Details:
Skill level: intermediate
Language: Python.
Mentor: Cédric Bosdonnat <cbosdonnat@suse.com>
Suggested by: Cédric Bosdonnat