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,后来被扩展为可支持多个虚拟机监控程序。 libvirt 比较和用例模型 Libvirt 1.2.18 发布,Linux 虚拟化库下载地址