this herelibvirt
the library releasespause
Event before the QEMU processor emulator is actually stopped. Therefore, domains may be reported as suspended before they are actually suspended, which can confuse usagelibvirt
library. With this update,pause
Events start after QEMU is stopped on the screen, management applications are no longer blurredlibvirt
.
Fixed limit for maximum size
remote procedure callmessages that can be sent betweenlibvirtd
Daemons and clients such asVirgin
Utilities, is 65536 bytes. However, this limit is not always sufficient, and messages exceeding this limit may be discarded, preventing clients from obtaining important data. With this update, the incoming message buffer has been made dynamic, both sides, client andlibvirtd
, now allocates the necessary memory for a given message, allowing larger messages to be sent.
Previously, this could result in migrating guests repeatedly between two machines using tunneled migrationslibvirtd
The demon locked unexpectedly. A bug in the code that locked remote drivers has been fixed and duplicate tunnel migrations of domains now work as expected.
Previously severallibvirt
An API call is required to determinelibvirt
library. Therefore, a race condition can occur when the guest changes its state between the two calls to enumerate the started and stopped guests. This behavior causes the guest to disappear from both lists, as the count time is not considered part of the list. This update adds a new API function that allows gathering the guest list with a single call while the driver is locked. This guarantees that no guest changes its state before the list is collected, so the guest no longer disappears in the described scenario.
For,libvirt
Many useful error messages returned by external programs such as QEMU are not reported, only command errors are reported. Therefore, some problems are difficult to find their cause or solution by looking at the error output. With this update, if an external command is issued bylibvirt
terminates with error, with standard error output aslibvirt
error. As a result, it is now easier to diagnose problems because better information is available.
In some cases, closing a file descriptor multiple times may result in an inability to executeqemu-kvmbinary. As a result, the guest could not start. A patch has been applied to address this issue so that the guest can now launch successfully.
Before this update,libvirt
Inappropriate detection procedures were used to det
and the processor topology of the system. As a result, some advanced multiprocessor systems have incorrect topology detection and management applications cannot utilize the full potential of the system. Now the detection has been improved to correctly identify the topology even on modern systems.
Earlier,libvirt
The library has hooks to call user-written scripts on guest start or stop, but no hooks to call per-guest scripts on guest start or stoplibvirtd
The daemon itself is restarted. Therefore, some customizations that require additional action are not deliveredlibvirt
when it might faillibvirtd
is restarted. For example, packet forwarding rules installed to redirect incoming connections to specific guests can be overriddenlibvirt
of“to refresh”Its own iptables packet forwarding rules break the established connection forwarding. Improvements in this updatelibvirt
use a new one“reconnect”hook; QEMU hook-scripts påkaldes som“reconnect”Each time for each active guestlibvirtd
Restart. Users can now write scripts to identify“reconnect”Events such as reloading user-supplied iptables forwarding rules when this event occurs. Therefore even inlibvirtd
Restart.
On some NUMA architectures,libvirt
Cannot handle and expose NUMA topologies, sometimes causing performance degradation. With this update,libvirt
It is possible to parse and expose the NUMA topology on such machines and do proper CPU placement to avoid performance degradation.
this hereundefined
command supports deleting volumes associated with domains. When using this command, the volume is passed as an additional parameter, and if the user adds a trailing string after the base command, that string will be interpreted as the volume to delete. Previously, volumes were checked after guest removal, which could lead to user errors. With this update, a volume parameter check is performed before the removal process so that errors can be reported sensibly. As a result, commands with incorrect parameters failed before attempting to remove the guest, and the host system remained in a healthy state.
Due to several flaws in the implementation of keep-alive messages used to detect disconnected or non-functional peers, these connections and peers may be mistakenly considered disconnected or non-functional, and keep-alive Active messages is therefore disabled by default in Red Hat Enterprise Linux 6.3. The implementation of keep-alive messages has been fixed and it is now enabled by default.
Previously, reverse relationships in checks used during callback detection prevented multiple callbacks from being detected. This update applies a patch to fix this and more callbacks can now be registered.
this herespices
It takes time for the server to transfer its internal state to the target client at the end of the migration process. Earlier,libvirt
Libraries can kill source QEMU andspices
before the server sends its internal state. This behavior causes the target client to become unresponsive. With this update,libvirt
wait until the endspices
migrant. result,spices
The server no longer responds in this situation.
usingThornlock
Daemon is used to lock resources used by domains, failed lock attempts if such resources are read-only. Therefore, it is not possible to start a domain using a CD-ROM drive. This bug has been fixed andThornlock
Now works correctly with read-only devices.
Earlier,libvirt
The library does not support S4 (Suspend-to-Disk) events on QEMU domains. Therefore, the management application cannot detect whether the guest is suspended to disk or powered off. With this update, support for S4 events has been added and management applications can now request to receive S4 events.
Since installedvdsm
daemon processlibvirt
Libraries are reconfigured and under certain conditions,libvirt
Searches for non-existent options when used externallyvdsm
.Therefore userVirgin
A utility on such a machine causes the system to terminate with a segmentation fault. The underlying source code has been modified to fix this bug and users can now useVirgin
on the configured machinevdsm
as expected.
Previously, the check condition used to check whether a field XML change in a saved file was successful was reversed. Therefore,Virgin
The tool reports failure in this check even if it was successful, and vice versa. This update applies a patch to fix this bug and the success and failure of this check is now reported correctly.
Disk hot swap is divided into two parts:qemuMonitorAddDrive()
After the call isqemuMonitorAddDevice()
call. When the first part succeeds but the second part fails,libvirt
The first part could not be rolled back, even though the disk hotplug failed, the device was still in use. With this update, the rollback of adding drives is performed correctly in the described scenario, and disk hotplugging now works as expected.
earliersignals intelligence
When the signal is not blockedvirDomainGetBlockJobInfo()
function is performed. Therefore, try to terminate the process initialized by the command- vent
Options specified using the CTRL+C shortcut did not work correctly. This update applies a patch to preventsignals intelligence
periodvirDomainGetBlockJobInfo()
and terminating a process with the CTRL+C shortcut now works as expected.
Previously, an unspecified error with a meaningless error code was returned when the guest agent did not respond. Therefore, the management application cannot identify why the guest agent is hung, whether the guest agent is not configured, or unavailable. This update introduces a newVIR_ERR_AGENT_UNRESPONSIVE
Error codes and error message correction. As a result, management applications can now identify why a guest agent is hanging.
due to an error in the programlibvirt
code, two mutually exclusive situations can arise. In the first case, the guest operating system may not detect that it is being suspended because the suspend routine is handled by the hypervisor. In the second case, cooperation with the guest operating system is required, for example during time synchronization after the recovery routine. Therefore, the suspend routine on the domain can be called successfullypause
state andlibvirt
Returns that the operation succeeded and actually failed. This update adds additional checks to preventlibvirt
suspend a domain frompause
status.
Due to recent changes in port allocations,
spicesgate and
Spice TLSThe ports are the same. Therefore, a QEMU domain starts with two options configured to use the same port, and
Spice TLSPorts cannot be assigned to a port twice. With this update, the port assignment has been fixed and QEMU domains now work correctly in this case.
A virtual guest can have a network interface connected to one
SR-IOV(single-root I/O virtualization) virtual functions for devices (
frequency conversion) usemacvtap
the driver is in pass-through mode and connects from there to a802.1Qbh
suitable circuit breaker. Previously, when closing the guest,libvirt
Incorrect setting of the physical properties of the SR-IOV device (
) replace
frequency conversionand
PFoffline instead of setup
frequency conversionoffline. The following are examples of interface types that may be affected:
Therefore, if
PFWhen used by the host for its own network connections, the host network will be adversely affected, possibly completely disabled, whenever the guest is shut down or when the guest's network devices are disconnected. The underlying source code has been modified to correct this error and
PFclosely linked to
frequency conversionUsedmacvtap
The driver now continues to work in the described scenario.
Red Hat Enterprise Linux 6.3 implementsblock copy
Functionality prior to upstream versions of QEMU. Since then, several improvements have been made to the upstream version of the feature. Hence previous versionslibvirt
Libraries cannot fully copeblock copy
feature in the current version of QEMU. With this update,block copy
functionality has been updated to the upstream version of QEMU, andlibvirt
.Therefore,libvirt
able to manage all versions ofblock copy
function.
For,libvirt
Set the default USB controller in the XML configuration file during direct migration to a Red Hat Enterprise Linux 6.1 host. These hosts do not support USB controllers in XML files. Therefore, direct migration to these hosts fails. This update preventslibvirt
The default USB controller is included in the XML configuration file during live migration, and live migration works fine in the described scenario.
When the QEMU process is destroyedlibvirt
, the cleanup operation releases some internal structures and locks. But since the user can destroy the QEMU process at the same time,libvirt
Contains the QEMU driver mutex to protect the domain list, its state, etc. Previously, a function tried to lock the QEMU driver mutex when it was already locked, causing deadlocks. The code has been changed to always check if the mutex is free before trying to lock it, which fixes this bug.
when. . . whenbeen_uuid
possibility exists inlibvirtd configuration file
document,augeas libvirt
Lens could not parse the file. This error has been corrected andaugeas libvirt
The lens is now resolvinglibvirtd configuration file
As expected in the described scenario.
Previously, duplicate MAC addresses were handled differently between a live connection or disconnection of a network device and a persistent connection or disconnection. As a result, a persistent connection interface to a device with a MAC address matching an existing device may fail even if a live connection interface to such a device succeeds. This behavior is inconsistent and sometimes causes the wrong device to detach from the guest. With this update,libvirt
Changed to allow duplicate MAC addresses in all cases, and check for unique PCI addresses to distinguish between multiple devices with the same MAC address.
For,libvirt
calledqemu-kvm -help
Commands are executed each time the guest is started to learn about the features available in QEMU. On machines with many guests, this behavior can cause noticeable delays in the startup of all guests. This update changes thatlibvirt
Stores a cache of information about QEMU until the QEMU timestamp changes. Therefore,libvirt
It is faster when you start the machine with different guests.
Earlier,ESX 5.1
The server has not been fully tested. Therefore, connect toESX 5.1
Causes a warning to be returned. thisESX 5.1
The server has been properly tested and connections to it are now working as expected.
In some cases,utility program
The process failed to write data to disk and the kernel did not report out of space error when saving domain (ENOSPC
). With this update,libvirt
calldatasync()
Describes the functions in the scenario to force data to be written to disk or to catch write errors. So if a write error occurs, it is now correctly caught and reported.
some operations ilibvirt
Do this only if the domain is suspended to prevent data corruption. However, if the restore fails, the management application is not notified because no event is sent. This update introducesVIR_DOMAIN_EVENT_SUSPENDED_API_ERROR
Events and management applications can now more closely track domain status and act accordingly.
whenlibvirt
Could not find a suitable CPU model for the host CPU, even if the topology is registered correctly, it will not provide the CPU topology in the host function. Therefore, applications that use the host CPU topology but not the CPU model cannot see the topology in host functions. With this update, the host capacity XML description includes the host CPU topology, even if the host CPU model is unknown.
For,libvirt
is supportedemulator pin
Ability to set CPU affinity for QEMU domain processes. However, this behavior overridesvcpu placement="auto"
Setting when creating a cgroup hierarchy for domain processes. This CPU affinity is set using the advisory node set fromnumber
Demon. With this update,libvirt
not allowedemulator pin
Option to change CPU affinity for domain processes ifvcpu location
set towas
.results,number
Daemons are supported as expected.
this herelibvirt
Libraries allow users to cancel migrations in progress. Previously, if an attempt was made to cancel a migration during the preparation phase of the migration, QEMU would miss the request and not cancel the migration. With this update,virDomainAbortJob()
The function sets a flag when a cancellation request is made and checks this flag before the main phase of the migration begins. Therefore, migrations are now correctly canceled even during the preparation phase.
Some AMD processors include modules reported by the kernel as threads and cores. Earlier,libvirt
The processor topology detection code cannot detect these modules. finally,libvirt
The actual number of processors is reported twice. This bug has been fixed by reporting a topology that sums the total number of processors reported in the system. Must join thoughvirCapabilities()
Function. In addition, documentation is provided for spare output.
to note
Note that for performance reasons users should be instructed to use function output for topology detection purposes. NUMA topology has an important impact on performance, but the physical topology can differ from this.
due to changevirStorageBackendLogicalCreateVol()
feature, deleted the volume type setting. Therefore, a logical volume is seen as a file without any format, andlibvirt
They cannot be cloned. This update provides a patch to set the volume type andlibvirt
The logical volume is cloned as expected.
When the saved file cannot be opened,virFileWrapperFdCatchError()
function is calledVoid
debate. Therefore,libvirtd
The daemon terminated unexpectedly due to a NULL pointer dereference. With this update,virFileWrapperFdCatchError()
The function is only called when the file is open, the daemon will now not crash but report an error.
everytimevirDomainGetXMLDesc()
The function is executed on an unresponsive domain and the call is also responsive. With this update, QEMU shipsballoon change
Event when memory usage on the domain changes, so itvirDomainGetXMLDesc()
Stop querying unresponsive domains. Therefore,virDomainGetXMLDesc()
In the described scenario, the call no longer hangs.