The 7.0.0 release of both libvirt and libvirt-python is tagged and
signed tarballs and source RPMs are available at
https://libvirt.org/sources/
https://libvirt.org/sources/python/
Thanks everybody who helped with this release by sending patches,
reviewing, testing, or providing any other feedback. Your work is
greatly appreciated.
* Project governance
* Formal handover of release tarball signing
Starting from libvirt-6.6 the release tarballs are signed by Jiří Denemark.
Releases starting with 7.0 contain a note from the previous maintainer
Daniel Veillard offically handing over the signing of packages so that the
transition can be verified.
* New features
* nodedev: Add node device driver support for AP devices
Add support for detecting and listing Adjunct Processor(AP) cards, AP
queues and AP matrix devices (which are capable of MDEV) of a KVM host
system in libvirt node device driver with correct object relationships.
* qemu: Allow control of ``qcow2`` metadata cache
In specific usecases such as when massive storage images are used it's
possible to achieve better performance by increasing the metadata cache
size. The new knob allows advanced users setting the size according to
qemu's documentation to suit their image.
* conf: Add support for keeping TPM emulator state
Currently, swtpm TPM state file is removed when a transient domain is
powered off or undefined. Add per-TPM emulator option ``persistent_state``
for keeping TPM state.
* Improvements
* qemu: Discourage users from polling ``virDomainGetBlockJobInfo`` for block
job completion
Document that waiting for events is a more robust solution.
* secret: Relax XML schema for the ``usage`` name of a ``secret``
Various bits of documentation of how to use libvirt with RBD volumes used
an usage name which would not pass the XML validation. Relax the requirement
to make such XMLs valid.
* virnetdevopenvswitch: Various improvements
The code that handles ``<interface type='vhostuser'/>`` was given
various
improvements. So far, libvirt assumed vhostuser interfaces are handled
exclusively by OpenVSwitch and refused to start a guest if it was not so.
Now a guest can be started successfully even if the interface is created by
some other tool (e.g. ``dpdk-testpmd``). Also, the code that detects the
interface name was adapted to new versions of OpenVSwitch and thus can
detect name more reliably.
* qemu: Report guest disks informations in ``virDomainGetGuestInfo``
Libvirt is now able to report disks and filesystems from the guest's
perspective (using guest agent). And with sufficiently new guest agent
(5.3.0 or newer) the API also handles disks on CCW bus.
* Bug fixes
* qemu: Fix logic bug in inactive snapshot deletion
This release fixes a bug introduced in libvirt-6.9 where libvirt's
snapshot metadata would not be deleted on successful snapshot deletion.
* qemu: Fix VMs with ``<iotune>`` on an empty cdrom
Specifying ``<iotune>`` for an empty cdrom would prevent the VM from
starting as qemu doesn't accept the tuning for an empty drive. We now
postpone setting the parameters until a new media is inserted.
* Avoid taking extra host memory when launching pSeries guests
Under certain conditions, pSeries guests were being launched with more
RAM than it was specified in the domain XML by the user. New pSeries
domains created with libvirt 7.0.0 will always launch with the right
amount of initial memory. Existing guests that migrate from an older
libvirt version to 7.0.0 will not be affected by this change.
* qemu: Don't cache NUMA caps
``virsh capabilities`` contains ``<topology/>`` section which reports NUMA
topology among with amount of free hugepages per each NUMA node. However,
these amounts were not updated between calls.
* networkGetDHCPLeases: Handle leases with infinite expiry time
Since libvirt-6.3.0 it is possible to configure expiry time for DHCP
leases. If the expiry time was infinite then ``virsh net-dhcp-leases``
and NSS plugins refused to work.
* qemu: Don't prealloc mem for real NVDIMMs
If a real life NVDIMM is assigned to a guest via ``<memory
model='nvdimm'/>``
then QEMU is no longer instructed to preallocate memory
for it. This prevents unnecessary wear on the NVDIMM.
* network: Introduce mutex for bridge name generation
When new libvirt network is defined or created and the input XML does not
contain any bridge name, libvirt generates one. However, it might have
happened that the same name would be generated for different networks if
two or more networks were defined/created at once.
Enjoy.
Jirka