This thesis addresses the virtualization topic, more specifically, it deals with libvirt virtu- alization management library, the goal of which is to provide a common and stable layer to manage virtual machines that deals with all the hypervisor or virtualization solution specifics transparently to the user. Most of the functionality exposed by libvirt is imple- mented in form of services within a daemon called libvirtd. One of the main reasons why libvirt utilizes a daemon is to provide a remote management of virtual machines running on hypervisors which do not support remote management. However, the daemon lacks support for managing itself during runtime. Although its configuration can be altered via a configu- ration file, the configuration is persistent only. Additionally, each time the configuration is changed this way, the daemon needs to be restarted, which might not always be the optimal solution. Therefore, an idea of exposing an administration interface through libvirt library which would provide users with libvirtd’s runtime management arose. The main goal of this thesis is to design and implement a set of administration application interfaces which would provide features including adjustment of number of workers in a server’s threadpool, modifying logging levels, filters, and logging outputs, as well as remote client management.
Libvirt is an management API for hypervisors and virtualization hosts. Among others, it allows users to define, start and manage virtual machines. It also has a set of API to gather various statistics over set of virtual machines. It offers several ways to manipulate environment of the virtualization hosts too. However, one piece of puzzle is still missing. It has no APIs to manage itself. Currently, there is no way to get any kind of information on connected users, limits set within the libvirtd and others. The aim of the thesis is to design and implement such set of APIs, or the Admin API as the upstream comunity calls it.