Manage QEMU driver cgroups by monolithic libvirtd
We execute monolithic libvirtd in a transient scope, but when the service unit for it gets restarted by systemd, the qemu driver controllers' cgroups get rewritten for the transient run-rXXX scopes. That deactivates the QEMU driver in libvirt as the expected controllers are no longer there. Workaround that for newly created Nova instances by delegating the QEMU cgroup controllers management to libvirt, so that systemd no longer "sees" its cgroups w/o a proper machined integration in place (which is when host VMs register in it). NOTE: Tripleo cannot use systemd-machined for cgrups management because of upgrade blockers (all VMs not registered in machined get killed during upgrade). At some point we really need to just adopt systemd-machined so we can stop fighting against systemd, but that requires an upgrade process to be written, which is out of scope of today Tripleo project. Related: rhbz#2228376 Related: rhbz#2233089 Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com> Change-Id: I1320c6dd01376b0f821f223b6c30a97456b16085
This commit is contained in:
parent
d17436ba6c
commit
a10f558f90
deployment/deprecated/nova
releasenotes/notes
@ -521,7 +521,7 @@ outputs:
|
||||
if [[ -f /usr/lib/systemd/kvm-setup ]]; then
|
||||
/usr/lib/systemd/kvm-setup
|
||||
fi
|
||||
exec systemd-run --scope --slice=system /usr/sbin/libvirtd LIBVIRTD_ARGS
|
||||
exec systemd-run --scope --slice=system --property=Delegate="cpu cpuacct memory blkio devices" /usr/sbin/libvirtd LIBVIRTD_ARGS
|
||||
params:
|
||||
LIBVIRTD_ARGS:
|
||||
if:
|
||||
|
@ -0,0 +1,15 @@
|
||||
---
|
||||
upgrade:
|
||||
- |
|
||||
To re-enable the QEMU driver features lost after the previous minor update,
|
||||
such as `virsh cpu-stats`, or volume attachements for existing Nova Compute
|
||||
instances, those need to be live-migrated (or cold-migrated) to either of
|
||||
the newly updated Nova Compute hosts.
|
||||
fixes:
|
||||
- |
|
||||
Tripleo Nova Libvirt service unit no longer manages the QEMU driver cgroups
|
||||
by systemd, but delagates that to libvirt. In a result, newly created Nova
|
||||
Compute instances no longer experience problems with volume attachements,
|
||||
or executing virsh commands in the libvirt podman container, after the
|
||||
libvirt service restarts multiple times.
|
||||
|
Loading…
x
Reference in New Issue
Block a user