This is the list of official releases for libvirt, along with an - overview of the changes introduced by each of them.
-For a more fine-grained view, use the - git log. -
-Older libvirt releases didn't have proper release notes, - and as such are not included in this page: if you're looking - for information about them, start from those made in - 2016 and work your way back.
- - -virsh capabilities
will now include information about
- the host CPU when run on ARM machines.
- xen://
connection URIs usable in split daemon
- mode.
- e820_host
is a Xen-specific option only available for
- PV guests. When enabled it provides the guest with a virtual e820
- memory map based on the host one. It must be enabled to allow
- hotplugging PCI devices to PV guests, particularly when memory
- ballooning is enabled.
- passthrough
is a Xen-specific option new to Xen 4.13
- that enables PCI passthrough for guests. It must be enabled to allow
- hotplugging PCI devices.
- io='io_uring'
of disk XML.
- --timeout 0
which suppresses daemon
- killing after given time of inactivity.
- move
event which is emitted on a NIC rename.
- <filesystem/>
element.
- virt-admin
- server-update-tls
.
- INI
style of comments starting with a semicolon
- (;
). Use number sign (#
) instead.
- <backingStore type='volume'>
- and allows specifying the offset and size of the image format
- container inside the storage source via the <slices>
- subelement.
- --with-init-script
- configure option.
- virsh
's
- --tls-destination
option, allows migration to succeed
- in situations where there is a mismatch between the destination's
- hostname and the information stored in its TLS certificate.
- virsh domstats --memory
.
- /dev/nvmeXXXX
. The other was using PCI
- assignment via <hostdev/> element. Both have their
- disadvantages: the former adds latency of file system and block
- layers of the host kernel, the latter prohibits domain migration. In
- this release the third way of configuring NVMe disk is added which
- combines the advantages and drops disadvantages of the previous two
- ways. It's accessible via <disk type='nvme'/>.
- qemu-guest-agent
running in the guest could make other
- libvirt APIs unavailable for an unbounded amount of time.
- ramfb
attribute, QEMU can be configured to use ramfb as
- a boot display for the device: this allows for display of firmware
- messages, boot loader menu, and other output before the guest OS has
- initialized the vGPU.
- virDomainAgentSetResponseTimeout()
, API users can change
- this behavior.
- <sound/>
devices.
- --with-loader-nvram
or
- nvram
variable in qemu.conf. This is now discouraged in
- favour of FW descriptors. However, instead of silently ignoring user's
- config, libvirt warns if outdated config is detected.
- /dev
and creates only those nodes there which the domain
- is configured to have. However, it may have happened that if a node
- changed its minor number this change wasn't propagated to the
- namespace.
- <shmem/>
devices and also snapshotting more disks
- at once.
- ramfb
standalone device in qemu.
- acpi
element.
- qemu:///session
- URI is mark as autostarted and the session daemon is started then the
- domain is started with it. If user shuts the domain down and the
- session daemon is started again, the user's wish to keep the
- domain shut off is ignored and the domain is autostarted again.
- This is now fixed.
- bochs-display
was introduced in libvirt
- 5.6.0, but until now the model was not listed in the domain
- capabilities.
- managed='no'
along with the device name in the
- target
subelement of <interface
- type='ethernet'>
.
- virproxyd
to other driver
- daemons such as virtqemud
.
- qemu.conf
.
- It will start a slirp-helper process to provide SLIRP networking
- when the VM is started with network interface "user". That will allow
- stricter security policies for QEMU SLIRP network.
- virDomainListGetStats()
. It is anticipated that this
- information will be provided by a guest agent
- running within the domain. It's exposed as virsh
- guestinfo
.
- <hint-dedicated state='on'/>
and
- <cpu mode='host-passthrough'/>
, it
- allows a guest to enable optimizations when running on dedicated
- vCPUs. QEMU newer than 2.12.0 and kernel newer than 4.17
- are required.
- virsh migrate
- subcommand now supports specifying precopy bandwidth with the
- --bandwidth
parameter.
- virDomainGetMetadata()
and
- virDomainSetMetadata()
APIs.
- disk/driver/@cache
is
- neither none
nor directsync
.
- sysfs
mount and parses them to learn various aspects of
- the device (e.g. its capabilities). Only in a very limited number of
- cases it is actually writing into the file. However, it used to open
- the file also for writing even if it was only reading from it.
- 5.6.0
release, libvirt uses
- procfs
to learn the list of opened file descriptors when
- spawning a command. However, our AppArmor profile was not allowing
- such access.
- bochs-display
device that was added in qemu version 3.0.
- max_threads_per_process
- option to qemu.conf to override the system default.
- root:root
.
- With this release, the original labels are remembered
- and restored properly.
- VIR_DOMAIN_SNAPSHOT_CREATE_VALIDATE
to validate
- snapshot input XML. For virsh, users can use it as virsh
- snapshot-create --validate
.
- secret
object to hold the passphrase,
- and referring to it via the encryption
element of the
- TPM device.
- fork()
can take a lot of
- time and delay the start of the child process. libvirt will now
- use an optimized algorithm that minimizes such delays.
- nodeset
- attribute as a list of CPUs instead of as a list of NUMA node, and
- the process affinity would be set incorrectly as a result; this has
- now been fixed.
- VERW
instruction. CVE-2018-12126, CVE-2018-12127,
- CVE-2018-12130, CVE-2019-11091.
- root
- user and the libvirtd
service respectively, but these
- restrictions were not enforced correctly. CVE-2019-10132.
- virtlogd
and libvirt_iohelper
, were
- embedding parts of the library even though they also linked against
- the libvirt.so
dynamic library. This is no longer the
- case, which results in both the disk and memory footprint being
- reduced.
- virtio-transitional
and
- virtio-non-transitional
model
values
- were added to the QEMU driver for the following devices:
- disk
, interface
, filesystem
,
- rng
, vsock
, memballoon
,
- controller
type scsi
,
- controller
type virtio-serial
,
- input
bus virtio
- type passthrough
,
- hostdev
type scsi_host
. These new
- models can be used to give fine grained control over what
- virtio device version is presented to the guest.
- firmware
- attribute in the os
element (accepted values are
- bios
and efi
). Moreover, libvirt
- automatically enables domain features needed for firmware it
- chooses.
- <controller type='xenbus' maxGrantFrames='64'/>
- v5.1.0
was refined so that only tables from
- corresponding IP version are required. This means that if a
- network doesn't have IPv6
enabled then those
- tables are not required.
- /
or
- the guests not being able to start because they lack the necessary
- permissions to write to that location.
- <bhyve:commandline>
element in domain
- configuration.
- zone
attribute
- of the network's bridge
element.
- vnc_tls_x509_secret_uuid
option
- in qemu.conf.
- virsh migrate --postcopy-bandwidth
.
- filter
, nat
and mangle
tables
- are required for both IPv4
and IPv6
.
- --with-wireshark
to upgrade to the more recent
- version.
- qemu:qemu
- which could cause issues during probing as some features like AMD SEV
- might be inaccessible to QEMU because of file system permissions.
- Therefore, CAP_DAC_OVERRIDE
is granted to overcome these
- for the purposes of probing.
- VIR_DOMAIN_BLOCK_JOB_READY
event which does not
- suffer from this problem.
- -drive
has no image, then formatting
- attributes such as cache, readonly, etc. would cause errors to
- be reported from QEMU. This was fixed by not supplying the
- attributes for devices without an image.
- xl
- rather than through libvirt APIs, libvirt would not be aware of
- the fact and keep considering it as running. This is no longer the
- case.
- virDomainJobInfo
can get number page requests
- received from the destination host during post-copy migration.
- <os><type>xenpvh</type></os>
- monitor
- element in cachetune
for vCPU threads. Added
- interfaces to get and display the cache utilization statistics
- through the command 'virsh domstats' via the
- virConnectGetAllDomainStats API.
- memorytune
element in cputune
.
- virNodeGetInfo()
API such as
- virsh nodeinfo
.
- <cpu><topology ../></cpu>
element.
- domblkinfo
command to add the option
- --all in order to display the size details of each domain
- block device from one command in a output table.
- late-block-activate
migration
- capability if supported to avoid the issue.
- <memoryBacking><locked/></memoryBacking>
- element.
- <shares>
in <cputune>
. The
- driver now honors <shares>
, and defers setting
- a default value to Xen. Note that the Xen default is 256, so any
- domains started after this improvement will have one fourth the
- shares of previously started domains. If all domains must have
- equal CPU shares, administrators must manually set the weight of
- previously started domains to 256, or restart them.
- cachetune
element in cputune
.
- virsh
and virt-admin
now implement
- basic bash completion support.
- virsh nodeinfo
- and other tools for s390 hosts; at the same time; CPU frequency has
- been disabled on aarch64 hosts because there's no way to detect it
- reliably.
- <distances>
element within the NUMA cell
- configuration. Drivers which support this include Xen and QEMU.
- auth
and
- encryption
sub-elements to be a child of the
- source
element. This will allow adding an
- auth
sub-element to a backingStore
- or mirror
elements as a means to track specific
- authentication and/or encryption needs.
- <controller>
- element in the domain XML for configuring storage controllers in VBOX
- VMs. Additionally, libvirt's domain XML schema was updated to allow
- optional model
attribute for <controller
- type='ide'>
which is used by the VBOX driver to set the
- IDE controller model to be one of 'piix4', 'piix4' (default), or
- 'ich6'. Finally, with this change dumpxml
generates
- <controller>
elements that correspond to current
- VBOX VM storage controller configuration.
- <controller
- type='scsi' model='lsisas1068'>
element. If there are
- both SCSI and SAS controllers present in the VBOX VM, the domain XML
- can associate the disk device using the <address>
- element with the controller
attribute, and optionally,
- set the port via unit
attribute.
- define
now fails and reports an error if any of the
- controller
or disk
devices specified in the
- domain XML fail to attach to the VirtualBox VM.
- dumpxml
output if there was a SAS storage controller
- attached to the VM.
- virtio-blk
has been available
- in QEMU ever since 2.7.0, and now libvirt guests can enable it.
- on_poweroff
, on_reboot
,
- and on_crash
elements. The
- virsh set-lifecycle-action
command was created to
- control the actions.
- encryption
- element using "luks" format. This does require a previously created
- secret
to store the passphrase used to encrypt the
- volume Adding the volume to a domain can then either provide the
- secret or allow the consumer in the guest to provide the passphrase
- in order to decrypt the volume.
- dnsmasq
instances, allowing spaces in guest names and
- many more.
- /var/log/libvirt/qemu/
- directory. Removing the constraints that log have to be bigger than
- 100 KiB before they can be rotated solves the issue.
- %posttrans
to make sure libvirtd
- is not restarted before all other components, such as the library
- itself and storage / hypervisor drivers, have already been upgraded.
- rendernode
path is set for SPICE GL on
- qemu:///system
, we now correctly set DAC permissions
- on the device at VM startup. This is the last remaining hurdle to
- let SPICE GL work for qemu:///system
without any
- external host changes.
- virsh list
would be blocking
- due to domain lock. This is now resolved by unlocking the domain
- in places where it is not needed.
- virt-aa-helper
or AppArmor will reject the requests and
- the guest will not be able to run.
- virsh domdisplay
, causing the respective
- endpoints to be missing from the output.
- libvirtd
, virtlogd
and
- virtlockd
); it's now working as intended once again.
- pci-root
- to the guest configuration.
- -chardev
option, which enables access to
- advanced features like log file configuration. This applies
- to the default serial devices for arm, aarch64, and some ppc
- configurations.
- cache=none
. But cache=directsync
should be
- safe for migration, because both cache=directsync
and
- cache=none
don't use the host page cache, and
- cache=direct
write through qemu block layer cache.
- vgaconf
attribute was added to video
's
- driver
element. Possible values are: on
,
- off
, and io
. It controls the way how
- bhyve exposes video devices to its guests; various guest OSes might
- require different settings to boot properly.
- virsh update-device
to change
- the coalesce settings of an interfaces while the domain is
- running.
- de_DE
and pt_BR
,
- use comma rather than dot to separate the integer part from the
- fractional part of a decimal number; however, several data sources
- such as the kernel use a locale-independent representation and need
- to be treated accordingly.
- virsh
subcommands such
- as domiflist
and domifstat
on vhost-user
- interfaces.
- ioapic
tag was added to domain
- features
, so the type of the I/O APIC can now
- be specified (e.g. putting it in userspace for KVM domains).
- mdev
capability
- and their parents now report the supported types in new
- mdev_types
capability.
- <driver intremap='on/off' eim='on/off'/>
- tag for iommu
devices.
- virConnectGetAllDomainStats()
- call and push through even bigger requests and replies for
- all APIs.
- memory_backing_dir
was added to qemu.conf.
- virtio-net
.
- libvirt_guest
nss module that translates libvirt
- guest names into IP addresses.
- /dev
.
- qemu+libssh://server/system
.
-