Libvirt 1.2.18 发布,此版本包括一些新特性,改进,bug 修复和代码清理。
更新内容如下:
新特性
libxl: 支持 dom0 (Jim Fehlig),
文档:
fix typo in qemu_monitor (Cao jin),
docs: bhyve: document clock configuration (Roman Bogorodskiy),
viraccessperm.h: Fix some typos (Michal Privoznik),
docs: Document how libvirt handles companion controllers (Martin Kletzander),
daemonRunStateInit: Fix a typo on a comment (Michal Privoznik)
便捷性
netdev: fix build on FreeBSD (Roman Bogorodskiy),
spec: Fix polkit dep on F23 (Cole Robinson),
nodeinfo: fix build on FreeBSD (Roman Bogorodskiy),
Escape left brace as new perl suggests (Martin Kletzander)
Bug 修复:
qemu: Do not reset labels when migration fails (Jiri Denemark),
qemu: Reject migration with memory-hotplug if destination doesn't support it (Peter Krempa),
Load nbd module before running qemu-nbd (Cédric Bosdonnat),
lxc: Don't accidentaly reset autostart flag in virLXCProcessCleanup (Peter Krempa),
remote: fix typo in remoteDomainOpenGraphicsFD (Daniel P. Berrange),
qemu: Check for iotune_max support properly (Martin Kletzander),
Renamed deconfigured-cpus to allow make dist (Daniel Veillard),
storage: allow zero capacity with non-backing file to be created (Chris J Arges),
nodeinfo: Check for SYSFS_INFINIBAND_DIR before open (John Ferlan),
qemu: fix the error cover issue in SetMemoryParameters (Luyao Huang),
nodeinfo: Fix nodeGetCPUBitmap()'s fallback code path (Andrea Bolognani),
tests: Restore links in deconfigured-cpus nodeinfo test (Andrea Bolognani),
cgroup: Drop resource partition from virSystemdMakeScopeName (Peter Krempa),
qemu: Reject updating unsupported disk information (Martin Kletzander),
storage: Fix pool building when directory already exists (Christophe Fergeau),
rpc: ensure daemon is spawn even if dead socket exists (Daniel P. Berrange),
rbd: Return error from rbd_create for message processing (John Ferlan),
qemuMigrationRun: Don't leak @fd (Michal Privoznik),
Fix qemu-nbd cleanup crashes (Cédric Bosdonnat),
network: Add another collision check into networkCheckRouteCollision (Martin Kletzander),
nodeinfo: fix to parse present cpus rather than possible cpus (Kothapally Madhu Pavan),
libxl: set dom0 state to running (Jim Fehlig),
rpc: Rework timerActive logic in daemon (Martin Kletzander),
qemu: Check duplicate WWNs also for hotplugged disks (Peter Krempa),
Fix cloning of raw, sparse volumes (Prerna Saxena),
qemu: don't use initialized ret in qemuRemoveSharedDevice (Guido Günther),
qemu: report error for non-existing disk in blockjobinfo (Luyao Huang),
conf: Don't allow duplicated target names regardless of bus (John Ferlan),
storage: Revert volume obj list updating after volume creation (4749d82a) (Erik Skultety),
qemu: Fix integer/boolean logic in qemuSetUnprivSGIO (John Ferlan),
qemu: report error when shmem has an invalid address (Luyao Huang),
qemu: Auto assign pci addresses for shared memory devices (Luyao Huang),
vz: use PRL_USE_VNET_NAME_FOR_BRIDGE_NAME (Maxim Nestratov),
Explicitly format the isa-fdc controller for newer q35 machines (Ján Tomko),
virt-aa-helper: add unix channels for nserials as well (Serge Hallyn),
storage: Fix regression in storagePoolUpdateAllState (Erik Skultety),
better patch for the XSS search issue (Daniel Veillard),
Avoid XSS vulnerability on the search engine (Daniel Veillard),
vz: fix SDK event dispatching (Nikolay Shirokovskiy),
util: Avoid Coverity FORWARD_NULL (John Ferlan),
virsh: report error if vcpu number exceed the guest maxvcpu number (Luyao Huang),
virt-aa-helper: Fix permissions for vhost-user socket files (Michal Dubiel)
改进:
qemu: Properly check for incoming migration job (Jiri Denemark),
Fix syntax-check: missing "%s" (Cédric Bosdonnat),
qemu: Adjust VM id allocation (Erik Skultety),
admin: Tiny cleanups (Martin Kletzander),
tests: Finish rename of the long nodeinfo test case (Martin Kletzander),
conf: add virDomainControllerDefNew() (Laine Stump),
qemu: reorganize loop in qemuDomainAssignPCIAddresses (Laine Stump),
conf: pay attention to bus minSlot/maxSlot when autoassigning PCI addresses (Laine Stump),
tests: add vol-qcow2-zerocapacity test to storagevolxml2argvtest (Chris J Arges),
Revert "qemu: Use heads parameter for QXL driver" (Martin Kletzander),
test: introduce a function in test driver to check get vcpupin info (Luyao Huang),
conf: reorganize virNetworkDHCPDefParseXML (Laine Stump),
nodeinfo: Check for errors when reading core_id (Andrea Bolognani),
bhyve: add UTC clock support (Roman Bogorodskiy),
configure: clarify rationale for checking pkcheck (Daniel P. Berrange),
nodeinfo: Calculate present and online CPUs only once (Andrea Bolognani),
nodeinfo: Use a bitmap to keep track of node CPUs (Andrea Bolognani),
nodeinfo: Use nodeGetOnlineCPUBitmap() when parsing node (Andrea Bolognani),
nodeinfo: Phase out cpu_set_t usage (Andrea Bolognani),
nodeinfo: Rename nodeGetCPUBitmap() to nodeGetOnlineCPUBitmap() (Andrea Bolognani),
nodeinfo: Remove out parameter from nodeGetCPUBitmap() (Andrea Bolognani),
nodeinfo: Add old kernel compatibility to nodeGetPresentCPUBitmap() (Andrea Bolognani),
nodeinfo: Rename linuxParseCPUmax() to linuxParseCPUCount() (Andrea Bolognani),
nodeinfo: Introduce linuxGetCPUOnlinePath() (Andrea Bolognani),
nodeinfo: Introduce linuxGetCPUGlobalPath() (Andrea Bolognani),
nodeinfo: Add nodeGetPresentCPUBitmap() to libvirt_private.syms (Andrea Bolognani),
virsh: Refactor block job waiting in cmdBlockCopy (Peter Krempa),
virsh: Refactor block job waiting in cmdBlockCommit (Peter Krempa),
virsh: Refactor block job waiting in cmdBlockPull (Peter Krempa),
qemu: Update state of block job to READY only if it actually is ready (Peter Krempa),
virsh: Refactor argument handling in cmdBlockPull (Peter Krempa),
virsh: Refactor argument handling in cmdBlockCopy (Peter Krempa),
virsh: Refactor argument checking in cmdBlockCommit (Peter Krempa),
virsh: Kill blockJobImpl by moving the final impl into cmdBlockCommit (Peter Krempa),
virsh: Split out block pull implementation from blockJobImpl (Peter Krempa),
virsh: block job: separate abort from blockJobImpl (Peter Krempa),
virsh: blockjob: Split out vshBlockJobSetSpeed from blockJobImpl (Peter Krempa),
virsh: cmdBlockJob: Switch to declarative flag interlocking (Peter Krempa),
virsh: blockjob: Extract block job info code into a separate function (Peter Krempa),
nodedev: add RDMA and tx-udp_tnl-segmentation NIC capabilities (Moshe Levi),
qemu: Use heads parameter for QXL driver (Frediano Ziglio),
rbd: Use RBD format 2 by default when creating images. (Wido den Hollander),
virsh: Don't output node frequency if unknown (Martin Kletzander),
qemu: Test for virtio-9p-ccw support (Boris Fiuczynski),
qemu: Make virtio-9p-ccw the default for s390-ccw-virtio machines (Boris Fiuczynski),
qemu: Support for virtio-9p-ccw (Boris Fiuczynski),
virsh: Teach cmdFreepages to work with lxc driver (Michal Privoznik),
cmdVcpuPin: Remove dead code (Michal Privoznik),
lxc: wait for nbd device to be up to get its PIDs (Cédric Bosdonnat),
nodeinfo: Formatting changes (Andrea Bolognani),
nodeinfo: Make sysfs_prefix usage more consistent (Andrea Bolognani),
qemu: process: Improve update of maximum balloon state at startup (Peter Krempa),
qemuDomainSetNumaParamsLive: Check for NUMA mode more wisely (Michal Privoznik),
conf: Add getter for network routes (Martin Kletzander),
tests: Add nodeinfo test for non-present CPUs (Andrea Bolognani),
nodeinfo: Add sysfs_prefix to nodeGetMemoryStats (John Ferlan),
nodeinfo: Add sysfs_prefix to nodeCapsInitNUMA (John Ferlan),
nodeinfo: Add sysfs_prefix to nodeGetInfo (John Ferlan),
nodeinfo: Add sysfs_prefix to nodeGetCPUMap (John Ferlan),
nodeinfo: Add sysfs_prefix to nodeGetCPUBitmap (John Ferlan),
nodeinfo: Add sysfs_prefix to nodeGetPresentCPUBitmap (John Ferlan),
nodeinfo: Add sysfs_prefix to nodeGetCPUCount (John Ferlan),
nodeinfo: Introduce local linuxGetCPUPresentPath (John Ferlan),
virt-driver-vz: Require parallels-7.0.22 at least (Michal Privoznik),
configure: Move Virtuozzo checks to a specific module (Michal Privoznik),
qemuProcessHandleMigrationStatus: Update migration status more frequently (Michal Privoznik),
vz: fix cleanup of nets of bridged type (Dmitry Guryanov),
qemu: Use error from Finish instead of "unexpectedly failed" (Jiri Denemark),
qemu: Don't report false error from MigrateFinish (Jiri Denemark),
qemu: Remember incoming migration errors (Jiri Denemark),
Introduce virErrorCopyNew (Jiri Denemark),
Introduce virHashAtomic (Jiri Denemark),
cpu: Add support for MPX and AVX512 Intel features (Jiri Denemark),
virt-aa-helper: add DomainGuest to mockup caps (Cédric Bosdonnat),
virt-aa-helper: rename ctl->hvm to ctl->os (Cédric Bosdonnat),
Get more libvirt errors from virt-aa-helper (Cédric Bosdonnat),
virt-aa-helper: fix rules for paths with trailing slash (Cédric Bosdonnat),
rpc: Add virNetDaemonHasClients (Martin Kletzander),
Rewrite allocation tracking when cloning volumes (Ján Tomko),
qemu: Drop LFs at the end of error from QEMU log (Jiri Denemark),
qemu: Log all arguments of qemuProcessStart (Jiri Denemark),
qemu: Wait for migration events on domain condition (Jiri Denemark),
qemu: Update migration state according to MIGRATION event (Jiri Denemark),
qemuDomainGetJobStatsInternal: Support migration events (Jiri Denemark),
qemu: Enable migration events on QMP monitor (Jiri Denemark),
qemu_monitor: Wire up MIGRATION event (Jiri Denemark),
qemu_hotplug: try harder to eject media (Pavel Hrdina),
monitor: detect that eject fails because the tray is locked (Pavel Hrdina),
virDomainObjSignal: drop this function (Pavel Hrdina),
virCondWaitUntil: add another return value (Pavel Hrdina),
qemu: Refactor qemuSetUnprivSGIO return values (John Ferlan),
qemu: Inline qemuGetHostdevPath (John Ferlan),
qemu: Refactor qemuCheckSharedDisk to create qemuCheckUnprivSGIO (John Ferlan),
libxl: rework setting the state of virDomainObj (Jim Fehlig),
libxl: support dom0 (Jim Fehlig),
qemu: Introduce qemuGetHostdevPath (John Ferlan),
qemu: Introduce qemuIsSharedHostdev (John Ferlan),
docs: Clarify unprivileged sgio feature (John Ferlan),
conf: use virDomainChrSourceDef to save server path (Luyao Huang),
qemu: Refactor creation of shared memory device commandline (Luyao Huang),
qemu: Assign IDs for shared memory devices (Luyao Huang),
Separate isa-fdc options generation (Ján Tomko),
Add support for portable-rpcgen from portablexdr library (Pavel Fedin),
Remove explicit enum from protocol structures (Pavel Fedin),
util: bitmap: Don't alloc overly large binary bitmaps (Peter Krempa),
vz: Use virBitmapToDataBuf instead of virBitmapToData in vzDomainGetVcpus (Peter Krempa),
vz: Remove dead code from vzDomainGetVcpus (Peter Krempa),
qemu: move the guest status check before agent config and status check (Luyao Huang),
qemu: remove deadcode in qemuDomain{HelperGetVcpus|GetIOThreadsLive} (Luyao Huang),
vz: assign static IPs and default gateways for network adapter (Mikhail Feoktistov),
vz: fix building capabilities (Dmitry Guryanov),
qemu_driver: live/config checks cleanup (Pavel Hrdina),
Post-release version bump to 1.2.18 (Michal Privoznik),
cpu_map.xml: Expand Opteron_G4 CPU model (Jiri Denemark),
cpu_map.xml: Expand Opteron_G2 CPU model (Jiri Denemark),
cpu_map.xml: Expand Opteron_G1 CPU model (Jiri Denemark),
cpu_map.xml: Expand Broadwell-noTSX CPU model (Jiri Denemark),
cpu_map.xml: Expand Haswell-noTSX CPU model (Jiri Denemark),
cpu_map.xml: Expand SandyBridge CPU model (Jiri Denemark),
cpu_map.xml: Expand Westmere CPU model (Jiri Denemark),
cpu_map.xml: Expand Nehalem CPU model (Jiri Denemark),
cpu_map.xml: Expand Penryn CPU model (Jiri Denemark),
cpu_map.xml: Expand Conroe CPU model (Jiri Denemark),
cpu_map.xml: Expand kvm64 CPU model (Jiri Denemark),
cpu_map.xml: Expand cpu64-rhel5 CPU model (Jiri Denemark),
cpu_map.xml: Expand kvm32 CPU model (Jiri Denemark),
cpu_map.xml: Expand qemu32 CPU model (Jiri Denemark),
cpu_map.xml: Expand n270 CPU model (Jiri Denemark),
cpu_map.xml: Expand coreduo CPU model (Jiri Denemark),
cpu_map.xml: Expand pentiumpro CPU model (Jiri Denemark),
cpu_map.xml: Expand pentium2 CPU model (Jiri Denemark),
cpu_map.xml: Expand pentium CPU model (Jiri Denemark),
cpu_map.xml: Expand 486 CPU model (Jiri Denemark),
cpu_map.xml: Sort features in x86 CPU models (Jiri Denemark)
Libvirt 库是一种实现 Linux 虚拟化功能的 Linux® API,它支持各种虚拟机监控程序,包括 Xen 和 KVM,以及 QEMU 和用于其他操作系统的一些虚拟产品。
libvirt 提供一种虚拟机监控程序不可知的 API 来安全管理运行于主机上的来宾操作系统。libvirt 本身 不是一种工具, 它是一种可以建立工具来管理来宾操作系统的 API。libvirt 本身构建于一种抽象的概念之上。它为受支持的虚拟机监控程序实现的常用功能提供通用的 API。libvirt 起初是专门为 Xen 设计的一种管理 API,后来被扩展为可支持多个虚拟机监控程序。