Release of libvirt-7.1.0

Jiri Denemark jdenemar at redhat.com
Mon Mar 1 11:03:14 UTC 2021


The 7.1.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.

* Portability

  * Implement Apple Silicon support

    libvirt now runs on the ARM-based Apple Silicon Macs.

* New features

  * Introduce virtio-pmem ``<memory/>`` model

    The virtio-pmem is a virtio variant of NVDIMM and just like NVDIMM
    virtio-pmem also allows accessing host pages bypassing guest page cache.

  * Introduce ``<boot order/>`` for ``<filesystem>``

    Booting is possible from virtiofs filesystems. Introduce an option
    to control the boot order, like we do for other bootable devices.

  * hyperv: implement new APIs

    The ``virDomainUndefine()``, ``virDomainUndefineFlags()``,
    ``virDomainDefineXML()``, ``virDomainAttachDevice()``, and
    ``virDomainAttachDeviceFlags()``, ``virConnectListAllNetworks()``,
    ``virConnectNumOfNetworks()``, ``virNetworkLookupByName()``,
    ``virNetworkLookupByUUID()``, ``virConnectNumOfDefinedNetworks()``,
    ``virConnectListDefinedNetworks()``, ``virNetworkGetAutostart()``,
    ``virNetworkIsActive()``, ``virNetworkIsPersistent()``,
    ``virNetworkGetXMLDesc()``, and ``virDomainScreenshot()``, APIs have been
    implemented in the Hyper-V driver.

  * Support <teaming> element in plain <hostdev> devices

    This is useful when libvirt doesn't have the privileges necessary
    to set the hostdev device's MAC address (which is a necessary
    part of the alternate <interface type='hostdev'>).

  * Introduce ``<disk type='vhostuser'>`` support

    Introduces support for QEMU vhost-user-blk device that can be used
    to access storage exported via the vhost-user protocol by daemons such
    as the ``qemu-storage-daemon``.

* Bug fixes

  * qemu: Fix disk quiescing rollback when creating external snapshots

   If the qemu guest agent call to freeze filesystems failed when creating
   an external snapshot with ``VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE`` flag the
   filesystems would be unconditionally thawed. This could cause problems when
   the filesystems were frozen by an explicit call to ``virDomainFSFreeze``
   since the guest agent then rejects any further freeze attempts once are
   filesystems frozen, an explicit freeze followed by a quiesced snapshot
   would fail and thaw filesystems.

   Users are also encouraged to use ``virDomainFSFreeze/Thaw`` manually instead
   of relying on ``VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE`` if they need finer
   grained control.

  * cgroups: Fix how we setup and configure cgroups on hosts with systemd

    When libvirt is running on host with systemd we register every VM with
    machined which creates the VM root cgroup for us as well. Before this fix
    we were directly modifying files in the VM root cgroup which was incorrect
    because all the files are managed by systemd. The implication was that any
    change done by libvirt to cgroup attributes supported by systemd could be
    removed which happens for example by running ``systemctl daemon-reload``.

    To fix the issue libvirt now uses DBus calls for some of the cgroup
    attributes that distribute the resources proportionally to the cgroup
    siblings and for the rest we have a new sub-cgroup that libvirt can
    managed directly.

    For more details why this is necessary see
    `systemd cgroup <https://systemd.io/CGROUP_DELEGATION/>`_ documentation.

  * qemu: Fix swtpm device with aarch64

    The TPM TIS device name for x86 is ``tpm-tis``, whereas for aarch64 it is
    ``tpm-tis-device``. Fix the use of TPM TIS device with aarch64 by using
    the proper device name when building the QEMU command line.

  * libxl: Fix domain shutdown

    Commit fa30ee04a2 introduced the possibility of a race between the
    shutdown and death threads used to process domain shutdown and death
    events from libxl. On normal domain shutdown the shutdown thread handles
    all aspects of shutting down and cleaning up the domain. The death
    thread is only used to handle out-of-band domain destruction and is
    inhibited when domain shutdown is under libvirt's control. The race is
    avoided by also inhibiting the death thread when libvirt starts the
    shutdown thread.

Enjoy.

Jirka




More information about the Libvirt-announce mailing list