mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-09-09 09:14:57 +00:00
In 19581afd77
the configure.ac was updated. However, the
news.xml was missing adjustment - creating the new section for
the release.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
1451 lines
51 KiB
XML
1451 lines
51 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!-- libvirt release notes
|
|
|
|
This file will be processed to produce both HTML and plain text versions
|
|
of the release notes.
|
|
|
|
Keep the style consistent with existing entries as much as possible.
|
|
|
|
Each change should be documented by a short, one-sentence summary, which
|
|
should fit in a single line and should not contain any formatting tags.
|
|
|
|
You can optionally add a description if you feel like the summary alone is
|
|
not enough to document the change accurately. The description may contain
|
|
a <code> tag for switching to non-proportional font. No other tags are
|
|
allowed.
|
|
|
|
Lines should be kept under 80 columns, and should not exceed 100 columns.
|
|
|
|
This file is validated against docs/news.rng schema.
|
|
|
|
Use the following template to add a new release section:
|
|
|
|
<release version="FIXME" date="unreleased">
|
|
<section title="New features">
|
|
</section>
|
|
<section title="Improvements">
|
|
</section>
|
|
<section title="Bug fixes">
|
|
</section>
|
|
</release>
|
|
|
|
-->
|
|
|
|
<libvirt>
|
|
<release version="v3.7.0" date="unreleased">
|
|
<section title="New features">
|
|
</section>
|
|
<section title="Improvements">
|
|
</section>
|
|
<section title="Bug fixes">
|
|
</section>
|
|
</release>
|
|
<release version="v3.6.0" date="2017-08-02">
|
|
<section title="New features">
|
|
<change>
|
|
<summary>
|
|
hyperv: Implement virDomainSetMemory and virDomainSendKey APIs
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Support multiple PHBs for pSeries guests
|
|
</summary>
|
|
<description>
|
|
pSeries guests can now have multiple PHBs (PCI Host Bridges), which
|
|
show up as separate PCI domains in the guest. To create additional
|
|
PHBs, simply add PCI controllers with model <code>pci-root</code>
|
|
to the guest configuration.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Isolate hostdevs on pSeries guests
|
|
</summary>
|
|
<description>
|
|
To enable better error reporting and recovery, unrelated hostdevs
|
|
will now be automatically isolated on pSeries guests by placing them
|
|
on separate PHBs (PCI Host Bridges).
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Improvements">
|
|
<change>
|
|
<summary>
|
|
qemu: platform serial devices can now use chardev features
|
|
</summary>
|
|
<description>
|
|
QEMU VMs that depend on platform serial devices can now use
|
|
QEMU's <code>-chardev</code> 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.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Require use of GCC 4.4 or Clang compilers
|
|
</summary>
|
|
<description>
|
|
We only ever test libvirt with GCC or Clang (which
|
|
provides a GCC compatible compilation environment).
|
|
Between them, these compilers cover every supported
|
|
operating system platform, including Windows.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: shared disks with directsync cache should be safe for migration
|
|
</summary>
|
|
<description>
|
|
At present shared disks can be migrated with either readonly or
|
|
<code>cache=none</code>. But <code>cache=directsync</code> should be
|
|
safe for migration, because both <code>cache=directsync</code> and
|
|
<code>cache=none</code> don't use the host page cache, and
|
|
<code>cache=direct</code> write through qemu block layer cache.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Handle hotplug change on VLAN configuration using OVS
|
|
</summary>
|
|
<description>
|
|
Libvirt was taught to handle VLAN change for running OVS interface.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Bug fixes">
|
|
<change>
|
|
<summary>
|
|
qemu: Use vCPU 'node-id' property and pass it back to qemu
|
|
</summary>
|
|
<description>
|
|
vCPU properties gathered from query-hotpluggable-cpus need to be
|
|
passed back to QEMU. As QEMU did not use the node-id property until
|
|
now and libvirt forgot to pass it back properly (it was parsed but
|
|
not passed around) we did not honor this.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Miscellaneous stream fixes
|
|
</summary>
|
|
<description>
|
|
After introducing sparse stream features there were still some known
|
|
bugs left. Those are fixed in this release.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Miscellaneous domain NS fixes
|
|
</summary>
|
|
<description>
|
|
Libvirt starts qemu domains in separate Linux namespaces for a while
|
|
now. However, there were still some bugs lingering. For instance
|
|
libvirt did not know how to handle file based bind mounts.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Various CPU driver improvements
|
|
</summary>
|
|
<description>
|
|
There were some minor bugs when using 'host-model' CPU.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
</release>
|
|
<release version="v3.5.0" date="2017-07-04">
|
|
<section title="New features">
|
|
<change>
|
|
<summary>
|
|
qemu: Add support for loadparm for a boot device
|
|
</summary>
|
|
<description>
|
|
Add an optional boot parameter 'loadparm' for a boot device.
|
|
Loadparm is an 8 byte parameter that, when present, is queried by
|
|
S390 guests via sclp or diag 308. Linux guests on S390 use it to
|
|
select a boot entry.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Support controlling how video devices are exposed to the bhyve guests
|
|
</summary>
|
|
<description>
|
|
The <code>vgaconf</code> attribute was added to <code>video</code>'s
|
|
<code>driver</code> element. Possible values are: <code>on</code>,
|
|
<code>off</code>, and <code>io</code>. It controlls the way how
|
|
bhyve exposes video devices to its guests; various guest OSes might
|
|
require different settings to boot properly.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Add support for live updates of coalesce settings
|
|
</summary>
|
|
<description>
|
|
Users can now use <code>virsh update-device</code> to change
|
|
the coalesce settings of an interfaces while the domain is
|
|
running.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Allow VirtIO devices to use vIOMMU
|
|
</summary>
|
|
<description>
|
|
It is now possible to turn on IOTBL for the vIOMMU and have VirtIO
|
|
devices use it, provided they have been configured appropriately.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Improvements">
|
|
<change>
|
|
<summary>
|
|
qemu: block copy job can be used with persistent domains
|
|
</summary>
|
|
<description>
|
|
Until now it was not possible to use block copy with persistent VMs.
|
|
In use cases where it's not required to recover the job after VM
|
|
shutdown, it's possible to specify VIR_DOMAIN_BLOCK_COPY_TRANSIENT_JOB
|
|
flag to start the copy job.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
JSON pseudo-protocol backing store parser supports new format of qemu 2.9
|
|
</summary>
|
|
<description>
|
|
QEMU 2.9 modified a few structures corresponding to the JSON format
|
|
of specifying a backing store for a disk image. Libvirt now implements
|
|
the new format.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Capabilities now include info about host's CAT settings
|
|
</summary>
|
|
<description>
|
|
Various information about resource control from the host is
|
|
gathered and presented in capabilities if available.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
apparmor: Several improvements
|
|
</summary>
|
|
<description>
|
|
Allow access to Ceph config, EFI firmware on both x86_64 and
|
|
aarch64, device tree on ppc64 and more.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Support host-model on POWER9 machines
|
|
</summary>
|
|
</change>
|
|
</section>
|
|
<section title="Bug fixes">
|
|
<change>
|
|
<summary>
|
|
qemu: snapshot: retrieve image metadata from user provided files
|
|
</summary>
|
|
<description>
|
|
Disk images of an external snapshot created with
|
|
VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT flag specified would not be
|
|
scanned for metadata after recent changes.
|
|
|
|
The metadata is necessary to allow keeping relative paths between
|
|
images when doing a block-commit.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Parse decimal numbers in a locale-independent way
|
|
</summary>
|
|
<description>
|
|
Some locales, such as <code>de_DE</code> and <code>pt_BR</code>,
|
|
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.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Support compilation with newer compiler and libc versions
|
|
</summary>
|
|
<description>
|
|
Several fixes have been included to make compilation with Clang
|
|
4.0.0, GCC 7.1 and glibc >= 2.25.90 possible.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Query name for vhost-user interfaces at runtime
|
|
</summary>
|
|
<description>
|
|
This makes it possible to use <code>virsh</code> subcommands such
|
|
as <code>domiflist</code> and <code>domifstat</code> on vhost-user
|
|
interfaces.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Set MTU for hotplugged interfaces correctly
|
|
</summary>
|
|
<description>
|
|
When hotplugging a network interface, the MTU was only set on the
|
|
guest side. Set it on the host side as well.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Forbid updating MTU for interfaces of running guests
|
|
</summary>
|
|
<description>
|
|
The MTU setting can't be modified while the guest is running, so any
|
|
attempt to alter it at runtime will now result in an error rather
|
|
than being silently ignored.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Fix specifying QXL heads with older QEMU releases
|
|
</summary>
|
|
<description>
|
|
Specifying the number of QXL heads was not working correctly for
|
|
QEMU releases older than 1.6.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Fix migration to older libvirt/QEMU versions
|
|
</summary>
|
|
<description>
|
|
When the guest is started, libvirt updates the CPU definition to
|
|
reflect the actual CPU features to enforce ABI. We need to send
|
|
original and updated CPU definition in order to support migration
|
|
to older libvirt/QEMU versions. Only the updated CPU definition
|
|
was sent to destination.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
</release>
|
|
<release version="v3.4.0" date="2017-06-02">
|
|
<section title="New features">
|
|
<change>
|
|
<summary>
|
|
Improved streams to efficiently transfer sparseness
|
|
</summary>
|
|
<description>
|
|
New extension to virStream was implemented so that
|
|
virStorageVolDownload and virStorageVolUpload can preserve file
|
|
sparseness.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
I/O APIC type can be specified for QEMU/KVM domains
|
|
</summary>
|
|
<description>
|
|
The <code>ioapic</code> tag was added to domain
|
|
<code>features</code>, so the type of the I/O APIC can now
|
|
be specified (e.g. putting it in userspace for KVM domains).
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
The reason for VM shutdown is reported, if known
|
|
</summary>
|
|
<description>
|
|
QEMU 2.10 will be able to report the reason for shutting
|
|
down (whether that was caused by the guest or not), and
|
|
libvirt is prepared for that and reports that information in
|
|
its shutdown event as well, if it is known.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Improvements">
|
|
<change>
|
|
<summary>
|
|
Repository now has new README.md file
|
|
</summary>
|
|
<description>
|
|
The new file uses markdown syntax, so it looks better on
|
|
github and possibly other web pages, but it has also more
|
|
useful information. The old README is now symlink to the
|
|
new file.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Use GICv2 by default for aarch64/virt TCG guests
|
|
</summary>
|
|
<description>
|
|
The emulated GICv3 has some limitations that make it unusable as a
|
|
default; use GICv2 until they're sorted out. This change makes it
|
|
once again possible to run aarch64/virt guests on a x86_64 host
|
|
without having to tweak their configuration.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Additional capabilities for the node_device module
|
|
</summary>
|
|
<description>
|
|
Introduce two new capabilities to the node_device module. The first
|
|
is for CCW devices, most common on the S390 architecture. The second
|
|
is for fibre channel-backed SCSI devices and exposes the
|
|
fc_remote_port sub-capability to SCSI target devices.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Node devices now report Mediated device capabilities
|
|
</summary>
|
|
<description>
|
|
Endpoint devices support new <code>mdev</code> capability
|
|
and their parents now report the supported types in new
|
|
<code>mdev_types</code> capability.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Capabilities now report information about host caches
|
|
</summary>
|
|
<description>
|
|
If supported in the kernel, host capabilities will now list
|
|
L3 caches. The code for other levels was added as well, but
|
|
only L3 caches are reported currently.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
POWER9 CPU model was added
|
|
</summary>
|
|
<description>
|
|
It is now properly reported in host capabilities.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libxl: NUMA sibling distances are now reported in host capabilities
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
VMDK version 3 files are now properly detected
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Interrupt remapping and Extended interrupt mode for IOMMU devices
|
|
</summary>
|
|
<description>
|
|
These two new features can now be controlled with new
|
|
<code><driver intremap='on/off' eim='on/off'/></code>
|
|
tag for <code>iommu</code> devices.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Graphics in libxl domains now have default addresses
|
|
</summary>
|
|
<description>
|
|
Even though there were default addresses before this change,
|
|
they were not saved in the XML. It is now possible to see
|
|
and control the listen addresses properly.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Default USB controllers are now added for devices in libxl domains
|
|
</summary>
|
|
<description>
|
|
Even though they were added automatically when USB device
|
|
was attached, they could've been missing in some other
|
|
cases. The logic is now fixed so there are always USB
|
|
controllers, even if there was none of them in the specified
|
|
XML.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Limits for RPC messages were increased
|
|
</summary>
|
|
<description>
|
|
Hitting the RPC limits we have is easier every day, so they
|
|
were increased once again and some guessing logic was
|
|
improved as well. It is now possible to get more stats than
|
|
ever using the <code>virConnectGetAllDomainStats()</code>
|
|
call and push through even bigger requests and replies for
|
|
all APIs.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Bug fixes">
|
|
<change>
|
|
<summary>
|
|
qemu: Create memory_backing_dir on startup
|
|
</summary>
|
|
<description>
|
|
Libvirt's policy is that directories are created on startup if
|
|
they don't exist. We've missed this one.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
PCIe 4.0 cards now report proper link speeds
|
|
</summary>
|
|
<description>
|
|
It could happen that the link speed for PCIe devices was not
|
|
properly reported or the nodedev-dumpxml just failed. That
|
|
was due to mistake in the field width, but should now work
|
|
properly.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Do not report errors on shutdown
|
|
</summary>
|
|
<description>
|
|
For some users, in some rare cases, it could happen that
|
|
there was an error message "internal error: End of file from
|
|
qemu monitor" in the logs even though no problem happened.
|
|
The detection of these false positives was improved and such
|
|
errors should not show any more.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
User-specified UNIX socket paths for virtio channels should not be reset
|
|
</summary>
|
|
<description>
|
|
It could happen, in some cases, that libvirt would mistake a
|
|
user-specified path for its own generated one and thus
|
|
remove it from the XML. The detection of such addresses was
|
|
improved now.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Fix address reservation during RNG hot-plug
|
|
</summary>
|
|
<description>
|
|
When error occurred in a specific point in time during the
|
|
hot-plug of an RNG device, it could happen that an address
|
|
was released even though another device was already using
|
|
it, making it possible to hot-plug another device with that
|
|
address, effectively having duplicated addresses in the XML.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
</release>
|
|
<release version="v3.3.0" date="2017-05-05">
|
|
<section title="New features">
|
|
<change>
|
|
<summary>
|
|
net: Add support for coalesce settings
|
|
</summary>
|
|
<description>
|
|
Enabling data batching through these settings can improve network
|
|
performance for guests.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Add support for guest CPU cache specification
|
|
</summary>
|
|
<description>
|
|
This features allows fine-grained control of the cache behavior
|
|
of the guest CPU.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Add support for the qemu-xhci USB controller
|
|
</summary>
|
|
</change>
|
|
</section>
|
|
<section title="Improvements">
|
|
<change>
|
|
<summary>
|
|
hyperv: Support Hyper-V 2012 and newer
|
|
</summary>
|
|
<description>
|
|
Starting with Hyper-V 2012 the API has changed causing the existing
|
|
driver to be unable to send and process requests properly. This has
|
|
been resolved by adding abstractions to handle the differences and
|
|
ease handling such breaks if they happen in the future.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libxl: Add support for nested HVM domains
|
|
</summary>
|
|
<description>
|
|
Xen has supported nested HVM domains since version 4.4. The
|
|
libvirt libxl driver now supports nested HVM domains by
|
|
specifying the host-passthrough CPU mode when defining a
|
|
domain.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Implement ACPI support for aarch64 guests
|
|
</summary>
|
|
<description>
|
|
Up until this point, ACPI support was only advertised for x86_64
|
|
guests and disabling it for aarch64 guests was not possible at all.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
vz: Add support for changing the number of vCPUs
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Automatically choose the best USB controller for guests
|
|
</summary>
|
|
<description>
|
|
The recently introduced qemu-xhci USB controller is the best choice
|
|
for both ppc64 and aarch64 guests, so use it by default on those
|
|
architectures if available.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
daemon: Increase default task limit for libvirtd
|
|
</summary>
|
|
<description>
|
|
The default number of tasks for the pids cgroup controller is 512,
|
|
which libvirtd can quickly bump into when starting lots of guests.
|
|
Raise the limit to a more reasonable 32768.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
docs: Include man pages describing key code names and values
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
virsh: Report initialization errors
|
|
</summary>
|
|
<description>
|
|
Sometimes virsh might be unable to start: when that happens, report
|
|
useful diagnostics instead of failing silently.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Bug fixes">
|
|
<change>
|
|
<summary>
|
|
nss: Don't require a network restart for libvirt_guest
|
|
</summary>
|
|
<description>
|
|
Previously, the libvirt_guest NSS module would only work properly
|
|
after the corresponding network had been restarted; now newly
|
|
started guests will be reported correctly right away.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
storage: Remove unavailable transient pools after restart
|
|
</summary>
|
|
<description>
|
|
Solve an issue where transient storage pools would be stuck in an
|
|
unmanageable state if the source disappeared and libvirtd was
|
|
subsequently restarted.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
storage: Fix capacity value for LUKS encrypted volumes
|
|
</summary>
|
|
<description>
|
|
The 'capacity' value (e.g. guest logical size) for a LUKS volume is
|
|
smaller than the 'physical' value of the file in the file system, so
|
|
we need to account for that.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Fix regression when hyperv/vendor_id feature is used
|
|
</summary>
|
|
<description>
|
|
Guests using the feature would not be started at all; it is now
|
|
possible to start them as expected.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Do not crash on USB address with no port and invalid bus
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
crypto: Always pad data before encrypting it
|
|
</summary>
|
|
<description>
|
|
If this step is not performed, when the data length matches the
|
|
chunk size the decryption routines will misinterpret the last byte
|
|
of data as the padding length and fail to decode it correctly.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
</release>
|
|
<release version="v3.2.0" date="2017-04-02">
|
|
<section title="New features">
|
|
<change>
|
|
<summary>
|
|
The virt-host-validate tool now supports bhyve hypervisor
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Introduce NVDIMM memory model
|
|
</summary>
|
|
<description>
|
|
NVDIMM is new type of memory introduced into QEMU 2.6. The idea is
|
|
that we have a non-volatile memory module that keeps the data
|
|
persistent across domain reboots and offers much faster data
|
|
accesses. However, due to a bug in QEMU, this feature is not enabled
|
|
for QEMUs older than 2.9.0.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Introduce support for generic PCIe Root Ports
|
|
</summary>
|
|
<description>
|
|
For new controllers, a generic device (pcie-root-port) will be used
|
|
by default instead of the Intel-specific device (ioh3420), provided
|
|
the QEMU binary supports it.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Add support for checking guest CPU ABI compatibility
|
|
</summary>
|
|
<description>
|
|
When migrating a domain to a different host, restoring a domain from
|
|
a file or reverting a snapshot libvirt will make sure the guest CPU
|
|
QEMU presents to the guest OS exactly matches the one provided on
|
|
the source host (or before the domain's state was saved). This
|
|
enhanced check may also be requested when starting a new domain to
|
|
ensure the virtual CPU exactly matches the one specified in the XML.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Add support to migrate using TLS
|
|
</summary>
|
|
<description>
|
|
Add the ability to migrate QEMU guests using TLS via a new flag
|
|
VIR_MIGRATE_TLS or virsh migrate '--tls' option. Requires using at
|
|
least QEMU 2.9.0 in order to work properly.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: add mediated devices framework support
|
|
</summary>
|
|
<description>
|
|
Recent kernel version introduced new mediated device framework, so
|
|
provide an initial support of this framework for libvirt, mainly by
|
|
introducing a new host device type in the XML.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Add support for setting TSC frequency
|
|
</summary>
|
|
<description>
|
|
Setting TSC frequency is required to enable migration for domains
|
|
with 'invtsc' CPU feature turned on.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Add support for block device threshold event
|
|
</summary>
|
|
<description>
|
|
When using thin provisioning, management tools need to resize the
|
|
disk in certain cases. To avoid having them to poll disk usage
|
|
this version introduces an event which will be fired when a given
|
|
offset of the storage is written by the hypervisor. Together with the
|
|
API it allows registering thresholds for given storage backing
|
|
volumes and this event will then notify management if the threshold
|
|
is exceeded. Currently only the qemu driver supports this.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
bhyve: Add support for UEFI boot ROM, VNC, and USB tablet
|
|
</summary>
|
|
<description>
|
|
The bhyve driver now supports booting using the UEFI boot ROM,
|
|
so non-FreeBSD guests that support UEFI could be booted without
|
|
using an external boot loader like grub-bhyve. Video is also
|
|
supported now, allowing to connect to guests via VNC and use
|
|
an USB tablet as an input device. Please refer to
|
|
the driver page for domain XML examples.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Improvements">
|
|
<change>
|
|
<summary>
|
|
qemu: Detect host CPU model by asking QEMU on x86_64
|
|
</summary>
|
|
<description>
|
|
Previously, libvirt detected the host CPU model using CPUID
|
|
instruction, which caused libvirt to detect a lot of CPU features
|
|
that are not supported by QEMU/KVM. Asking QEMU makes sure we
|
|
don't start it with unsupported features.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
perf: Add more perf statistics
|
|
</summary>
|
|
<description>
|
|
Add support to get the count of cpu clock time, task clock time,
|
|
page faults, context switches, cpu migrations, minor page faults,
|
|
major page faults, alignment faults, emulation faults by
|
|
applications running on the platform.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Write hyperv crash information into vm log
|
|
</summary>
|
|
<description>
|
|
qemu's implementation of the hyperv panic notifier now reports
|
|
information about the crash from the guest os. Starting with this
|
|
version, libvirt logs the information to the vm log file for possible
|
|
debugging.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Bug fixes">
|
|
<change>
|
|
<summary>
|
|
QEMU: Use adaptive timeout for connecting to monitor
|
|
</summary>
|
|
<description>
|
|
When starting qemu, libvirt waits for qemu to create the monitor
|
|
socket which libvirt connects to. Historically, there was sharp 30
|
|
second timeout after which the qemu process was killed. This
|
|
approach is suboptimal as in some scenarios with huge amounts of
|
|
guest RAM it can take a minute or more for kernel to allocate and
|
|
zero out pages for qemu. The timeout is now flexible and computed by
|
|
libvirt at domain startup.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Overwrite (clear) 2 KB instead of just 512 bytes when initializing logical device
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Describe the logical backend requirements better for pool-create-as
|
|
</summary>
|
|
</change>
|
|
</section>
|
|
</release>
|
|
<release version="v3.1.0" date="2017-03-03">
|
|
<section title="New features">
|
|
<change>
|
|
<summary>
|
|
storage: Add Virtuozzo storage backend storage pool
|
|
</summary>
|
|
<description>
|
|
Add new storage backend to support pool and volume management
|
|
within the Virtuozzo Storage environment. Virtuozzo Storage is
|
|
a highly available distributed software defined storage with
|
|
built-in replication and disaster recovery.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Add support for memory backing with file source
|
|
</summary>
|
|
<description>
|
|
Add support in numa topology for file source inside memory backing
|
|
(hugepages are not needed) Three new elements
|
|
<source/>,<access/> and <allocation/> were added
|
|
to <memoryBacking/> element. Also new configuration parameter
|
|
<code>memory_backing_dir</code> was added to qemu.conf.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
network: make openvswitch call timeout configurable
|
|
</summary>
|
|
<description>
|
|
Adding the ability to specify the timeout value in seconds for
|
|
openvswitch calls in the libvirtd configuration file.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
bhyve: add e1000 NIC support
|
|
</summary>
|
|
<description>
|
|
Add support for e1000 NIC. Previously, the only available option
|
|
was <code>virtio-net</code>.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libxl: add tunneled migration support
|
|
</summary>
|
|
<description>
|
|
Add tunneled migration to libxl driver, which is always capable of
|
|
strong encryption and doesn't require any extra network connection
|
|
other than what's required for remote access of libvirtd.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: add rendernode argument
|
|
</summary>
|
|
<description>
|
|
Add a new attribute 'rendernode' to <gl> spice element.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
nodedev: add drm capability
|
|
</summary>
|
|
<description>
|
|
Add a new 'drm' capability for Direct Rendering Manager (DRM)
|
|
devices, providing device type information.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Add API for individual/specific vCPU hotplug
|
|
</summary>
|
|
<description>
|
|
The new API allows selecting specific vCPUs to be added/removed from
|
|
the VM. The existing APIs allowed only adding/removing from the end
|
|
which did not play well with NUMA.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Improvements">
|
|
<change>
|
|
<summary>
|
|
virsh: pool-list: allow both --uuid and --name in one command
|
|
</summary>
|
|
<description>
|
|
Adjust the virsh-pool command to support the --uuid and/or --name
|
|
options in order to print just the --name and/or --uuid of pools.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Introduce MTU to domain <interface/> and <network>
|
|
</summary>
|
|
<description>
|
|
Allow setting MTU size for some types of domain interface
|
|
and network.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libxl: improve support for <timer> configurations
|
|
</summary>
|
|
<description>
|
|
Add support for multiple timers. Extend the tsc timer to
|
|
support the emulate mode. Improve conversion of timer XML
|
|
to/from xl.cfg.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
storage: modularize the storage driver
|
|
</summary>
|
|
<description>
|
|
Split up the storage driver backends into loadable modules so that
|
|
binary distributions don't have to compromise on shipping the storage
|
|
driver with all backends which may pull in too many dependencies.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Bug fixes">
|
|
<change>
|
|
<summary>
|
|
nodedev: Fabric name must not be required for fc_host capability
|
|
</summary>
|
|
<description>
|
|
fabric_name is one of many fc_host attributes in Linux that is
|
|
optional and left to the low-level driver to decide if it is
|
|
implemented. For example the zfcp device driver does not provide a
|
|
fabric name for an fcp host. The requirement for the existence of
|
|
a fabric name has been removed by making it optional.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
bhyve: change address allocation schema for SATA disks
|
|
</summary>
|
|
<description>
|
|
Previously, the bhyve driver assigned PCI addresses to SATA disks
|
|
directly rather than assigning that to a controller and
|
|
using SATA addresses for disks. It was implemented this way
|
|
because bhyve has no notion of an explicit SATA controller.
|
|
However, as this doesn't match libvirt's understanding of
|
|
disk addresses, the bhyve driver was changed to follow
|
|
the common schema and have PCI addresses for SATA controllers
|
|
and SATA addresses for disks. If you're having issues
|
|
because of this, it's recommended to edit the domain's XML
|
|
and remove <address type='pci'> from the <disk>
|
|
elements with <target bus='sata'/> and let libvirt
|
|
regenerate it properly.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libxl: maximum memory fixes
|
|
</summary>
|
|
<description>
|
|
Fix reporting of domain maximum memory. Fix setting dom0
|
|
maximum memory.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libxl: fix disk detach when <driver> not specified
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libxl: fix dom0 autoballooning with Xen 4.8
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Allow empty script path to <interface/>
|
|
</summary>
|
|
<description>
|
|
Historically, this was always allowed. Unfortunately, due to some
|
|
rework done for 1.3.2 release a bug was dragged in which suddenly
|
|
stop allowing domain with such configuration to start.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
</release>
|
|
<release version="v3.0.0" date="2017-01-17">
|
|
<section title="New features">
|
|
<change>
|
|
<summary>
|
|
Domain events for metadata content changes
|
|
</summary>
|
|
<description>
|
|
The domain events framework has a new event ID that can
|
|
be used to get notifications when domain metadata content
|
|
changes.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Event notifications for the secret object
|
|
</summary>
|
|
<description>
|
|
The secret object now supports event notifications, covering
|
|
lifcycle changes and secret value changes.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
New localPtr attribute for "ip" element in network XML
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Support QEMU group I/O throttling
|
|
</summary>
|
|
<description>
|
|
Add the capability to allow group I/O throttling via a new
|
|
domain <disk> <iotune> subelement "group_name"
|
|
to allow sharing I/O throttling quota between multiple drives.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
nss: Introduce libvirt_guest
|
|
</summary>
|
|
<description>
|
|
New <code>libvirt_guest</code> nss module that translates libvirt
|
|
guest names into IP addresses.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
daemon: Add support for runtime logging settings adjustment
|
|
</summary>
|
|
<description>
|
|
Logging-related settings like log outputs and filters can now be
|
|
adjusted during runtime using the admin interface without the
|
|
necessity of the daemon's restart.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
storage: Add virStorageVolInfoFlags API
|
|
</summary>
|
|
<description>
|
|
Add the API to support using the VIR_STORAGE_VOL_GET_PHYSICAL
|
|
flag in order to return the host physical size in bytes
|
|
of the image container in the allocation field of the
|
|
_virStorageVolInfo structure. The --physical flag has been
|
|
added to the virsh vol-info command to access the data.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libxl: Implement virDomainGetMaxVcpus API
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
storage: Add overwrite flag checking for logical pool
|
|
</summary>
|
|
<description>
|
|
Add support for the OVERWRITE flags for the logical storage
|
|
backend including checking for existing data on the target
|
|
volumes when building a new logical pool on target volume(s).
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Add support for guest CPU configuration on s390(x)
|
|
</summary>
|
|
</change>
|
|
</section>
|
|
<section title="Improvements">
|
|
<change>
|
|
<summary>
|
|
perf: Add more perf statistics
|
|
</summary>
|
|
<description>
|
|
Add support to get the count of branch instructions
|
|
executed, branch misses, bus cycles, stalled frontend
|
|
cpu cycles, stalled backend cpu cycles, and ref cpu
|
|
cycles by applications running on the platform.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
conf: Display <physical> for volume xml
|
|
</summary>
|
|
<description>
|
|
Add a display of the <physical> size of a disk
|
|
volume in the output of the volume XML.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Use virtio-pci by default for aarch64 mach-virt guests
|
|
</summary>
|
|
<description>
|
|
virtio-pci provides several advantages over virtio-mmio, such
|
|
as the ability to hotplug devices and improved performance.
|
|
While opting in to virtio-pci has been possible for a while,
|
|
newly-defined guests will now use it automatically.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
vbox: remove support for VirtualBox 3.x and older
|
|
</summary>
|
|
<description>
|
|
Those old VirtualBox versions have been unsupported by
|
|
upstream for a long time and the API of 4.0 and newer has
|
|
diverged enough to require code abstractions to handle differences.
|
|
Removing support for those old versions drops lots of code from
|
|
the driver and simplifies the logic to ease implementation of new
|
|
features going forward.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
virsh: pool-info: introduce option --bytes
|
|
</summary>
|
|
<description>
|
|
Add option --bytes to virsh pool-info in order ti allow display
|
|
of units in bytes rather than default of human readable output.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
scsi: Add parent wwnn/wwpn or fabric capability for createVport
|
|
</summary>
|
|
<description>
|
|
Improve the algorithm searching for the parent scsi_host device
|
|
for vHBA/NPIV scsi_host creation. Rather than supplying the
|
|
"parent" by name, it's now possible to define the parent by
|
|
it's wwnn/wwpn or fabric_wwn in the node device create XML or
|
|
the storage pool XML.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: aggregate pcie-root-ports onto multiple functions of a slot
|
|
</summary>
|
|
<description>
|
|
When pcie-root-ports are added to pcie-root in order to
|
|
provide a place to connect PCI Express endpoint devices,
|
|
libvirt now aggregates multiple root ports together onto the
|
|
same slot (up to 8 per slot) in order to conserve slots.
|
|
Using this method, it's possible to connect more than 200
|
|
endpoint devices to a guest that uses PCIe without requiring
|
|
setup of any PCIe switches.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Bug fixes">
|
|
<change>
|
|
<summary>
|
|
lxc: fix accidental killing of containers during libvirtd restart
|
|
</summary>
|
|
<description>
|
|
The libvirt_lxc process was previously not moved into the
|
|
container scope. As a result, if systemd reloads its config
|
|
after a container is started, when libvirtd is later restarted
|
|
it will accidentally kill the containers.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Correct GetBlockInfo values
|
|
</summary>
|
|
<description>
|
|
For an active domain, correct the physical value provided for
|
|
a raw sparse file backed storage and the allocation value provided
|
|
for a qcow2 file backed storage that hasn't yet been opened on
|
|
the domain.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Make virtio console usable on ppc64 guests
|
|
</summary>
|
|
<description>
|
|
The chardev detection code has been improved and can now handle this
|
|
configuration properly.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Enable mount namespace
|
|
</summary>
|
|
<description>
|
|
To avoid funny races with udev relabelling devices under our hands and
|
|
to enhance security, libvirt now spawns each qemu process with its own
|
|
<code>/dev</code>.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
storage: Fix implementation of no-overwrite for file system backend
|
|
</summary>
|
|
<description>
|
|
Fix file system storage backend implementation of the OVERWRITE
|
|
flags to be consistent between code and documentation. Add checks
|
|
to ensure that when building a new file system on a target volume
|
|
that there is not something already on the disk in a format that
|
|
libvirt can recognize.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Create hugepage path on per domain basis
|
|
</summary>
|
|
<description>
|
|
Historically, all hugepage enabled domains shared the same path under
|
|
hugetlbfs. This left libvirt unable to correctly set security labels
|
|
on it. With this release, however, each domain is put into a
|
|
separate path which is also correctly labeled.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
conf: Reject domains with duplicate drive addresses
|
|
</summary>
|
|
<description>
|
|
Reject duplicate drive addresses for disks and hostdevs at
|
|
domain definition.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libxl: reverse defaults on HVM net device attach
|
|
</summary>
|
|
<description>
|
|
Fixes network interface attach for HVM domains when no model is
|
|
specified. Emulated hotplug isn't yet supported and hence we should
|
|
default to the general working scenario.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libxl: always enable pae for x86_64 HVM
|
|
</summary>
|
|
<description>
|
|
By default pae is disabled in libxl. Without an explicit <pae/>
|
|
setting in the domain <features> configuration, an x86_64 HVM
|
|
domain would be get an i686 environment. pae should always be enabled
|
|
for x86_64 HVM domains.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Fix XML dump of autogenerated websocket
|
|
</summary>
|
|
<description>
|
|
As a result autogenerated websocket port is regenerated on domain restore,
|
|
migration and such as it should be.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
</release>
|
|
<release version="v2.5.0" date="2016-12-04">
|
|
<section title="New features">
|
|
<change>
|
|
<summary>
|
|
shmem: Add support for additional models
|
|
</summary>
|
|
<description>
|
|
The shmem device can now utilize QEMU's ivshmem-plain and
|
|
ivshmem-doorbell, more modern versions of ivshmem.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
vbox: Add VirtualBox 5.1 support
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
libssh: New transport
|
|
</summary>
|
|
<description>
|
|
The new libssh transport allows one to connect to a running
|
|
libvirtd via SSH, using the libssh library; for example:
|
|
<code>qemu+libssh://server/system</code>.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
vhost-scsi: Add support scsi_host hostdev passthrough
|
|
</summary>
|
|
<description>
|
|
Add the capability to pass through a scsi_host HBA and the
|
|
associated LUNs to the guest.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Allow debugging of gluster volumes in qemu
|
|
</summary>
|
|
<description>
|
|
Users can now enable debug logging for native gluster
|
|
volumes in qemu using the "gluster_debug_level" option in qemu.conf
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Pre-allocate memory slots for memory hotplug
|
|
</summary>
|
|
<description>
|
|
Slot numbers for memory devices are now automatically allocated and
|
|
thus persistent. In addition slot numbers can be specified without
|
|
providing a base address, which simplifies user configuration
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
qemu: Express devices will be placed on PCIe bus by default
|
|
</summary>
|
|
<description>
|
|
For machine types that use a PCI Express root bus
|
|
(e.g. x86_64/Q35 and aarch64/virt), any unaddressed PCI
|
|
device that is an Express device (all virtio-1.0 devices,
|
|
e1000e, nec-xhci, vfio assigned devices) will be placed on
|
|
an Express controller (i.e. a pcie-root-port) instead of a
|
|
legacy PCI controller (i.e. pci-bridge) with the root ports
|
|
added as needed.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Improvements">
|
|
<change>
|
|
<summary>
|
|
docs: Better documentation for migration APIs and flags
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
vbox: Address thread safety issues
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
virsh: Add support for passing an alternative persistent XML to migrate command
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
vhostuser: Allow hotplug of multiqueue devices
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
NEWS: Switch to an improved format
|
|
</summary>
|
|
<description>
|
|
List user-visible changes instead of single commits for a better
|
|
high-level overview of differences between libvirt releases.
|
|
</description>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
website: Modernize layout and branding
|
|
</summary>
|
|
<description>
|
|
The libvirt website looked very cluttered and outdated; it has now
|
|
been completely overhauled, resulting in a design that's better
|
|
organized and more pleasant to look at.
|
|
</description>
|
|
</change>
|
|
</section>
|
|
<section title="Bug fixes">
|
|
<change>
|
|
<summary>
|
|
vz: Fix migration in P2P mode
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Forbid newline character in names of some libvirt objects
|
|
</summary>
|
|
</change>
|
|
<change>
|
|
<summary>
|
|
Fix compilation on macOS
|
|
</summary>
|
|
</change>
|
|
</section>
|
|
</release>
|
|
</libvirt>
|