Libvirt 1.2.21 发布,此版本不包含新特性,包含一些改进,bug 修复,文档更新和代码清理。 主要改进: Bug 修复 wireshark: Install to generic plugin directory (Michal Privoznik), network: wait for DAD to finish for bridge IPv6 addresses (Maxim Perevedentsev), qemu: Use live autoNodeset when numatune placement is auto (Luyao Huang), virsh-domain: use correct base for virStrToLong_ui (Pavel Hrdina), libvirt-domain: fix the error reporting when use the localhost as target uri (Luyao Huang), qemu: fix migration flags undefinesource cannot work (Luyao Huang), virsh: Display an error when passing count <= 0 to setvcpus (Luyao Huang), virtlockd: Don't SIGSEGV on SIGUSR1 (Michal Privoznik), Close the source fd if the destination qemu exits during tunnelled migration (Shivaprasad G Bhat), qemu: Fix qemu startup check for QEMU_CAPS_OBJECT_IOTHREAD (John Ferlan), virsh: Use 'format' argument only when specified (Peter Krempa), storage: Track successful creation of LV for removal (John Ferlan), storage: Fix a resource leak in storageVolCreateXML (John Ferlan), storage: Fix incorrect format for <disk> <auth> XML (John Ferlan), migration: check dconnuri in p2p mode (Nikolay Shirokovskiy), qemu: Resolve Coverity FORWARD_NULL (John Ferlan), libxl: Resolve Coverity FORWARD_NULL (John Ferlan), tests: eventtest: Fix coverity warning (Cole Robinson), qemu: migration: Skip few checks while doing offline migration (Peter Krempa), qemu: Wait until destination QEMU consumes all migration data (Jiri Denemark), conf: Remove <metadata> elements with no namespace (Peter Krempa), storage: Adjust calculation of alloc/capacity for disk (John Ferlan), storage: Prior to creating a volume, refresh the pool (John Ferlan), virfile: Fix error path for forked virFileRemove (John Ferlan), rpc: libssh2: Fix regression in ssh host key verification (Peter Krempa), interface: fail on OOM from virGetInterface() (Laine Stump), libvirt.spec: fix accidental conditional inclusion of polkit docs (Daniel P. Berrange), qemu: Use memory-backing-file only when needed (Martin Kletzander) 改进 util: set max wait for IPv6 DAD to 20 seconds (Laine Stump), util: set error if DAD is not finished (Luyao Huang), netlink: add support for multi-part netlink messages. (Maxim Perevedentsev), rbd: Remove snapshots if the DELETE_WITH_SNAPSHOTS flag has been provided (Wido den Hollander), bhyve: implement domainGetOSType (Roman Bogorodskiy), libvirt-domain: fix no error report when p2p migrate fail (Luyao Huang), conf: Add serial target type to ABI stability check (Luyao Huang), lock_daemon: Switch to wrapper locking functions (Michal Privoznik), qemu: hostdev: Introduce qemuHostdevUpdateActiveDomainDevices() (Andrea Bolognani), qemu: hostdev: Unify naming for qemuHostdevUpdateActive*Devices() (Andrea Bolognani), qemu: hostdev: Unify naming for qemuHostdevReAttach*Devices() (Andrea Bolognani), qemu: hostdev: Unify naming for qemuHostdevPrepare*Devices() (Andrea Bolognani), hostdev: Rename virHostdevUpdateDomainActiveDevices() (Andrea Bolognani), conf: Fix error message to use correct parameter (John Ferlan), util: Produce friendlier error message to user (Luyao Huang), util: Adjust error paths for virNumaSetPagePoolSize (Luyao Huang), util: split the virNumaGetHugePageInfoPath into separate function (Luyao Huang), Avoid using !STREQ and !STRNEQ (Ishmanpreet Kaur Khera), vz: implement some domain API calls (Maxim Nestratov), vz: implement API calls of nodeGetxxx family (Maxim Nestratov), vz: implement connectGetMaxVcpus API calls (Maxim Nestratov), security_dac: Introduce remember/recall APIs (Michal Privoznik), security_dac: Limit usage of virSecurityDACSetOwnershipInternal (Michal Privoznik), virSecurityDACRestoreSecurityFileLabel: Pass virSecurityDACDataPtr (Michal Privoznik), virSecurityDACSetOwnership: Pass virSecurityDACDataPtr (Michal Privoznik), virSecurityDACSetOwnershipInternal: Don't chown so often (Michal Privoznik), security_dac: Fix TODO marks (Michal Privoznik), conf: Optimize the iothreadid initialization (John Ferlan), qemu: Check for niothreads == 0 in qemuSetupCgroupForIOThreads (John Ferlan), qemu: Use 'niothreadids' instead of 'iothreads' (John Ferlan), Fix conficts with HACKING doc (Wei Jiangang), conf: Refactor the iothreadid initialization (John Ferlan), tests: make redirects happen in correct order (Wei Jiangang), storage: Rework error paths for virStorageBackendCreateExecCommand (John Ferlan), storage: On error rmdir created directory in virDirCreate[NoFork] (John Ferlan), storage: On error unlink created file in virFileOpen{As|Forked} (John Ferlan), storage: Remove duplicitous refreshVol in Sheepdog buildVol (John Ferlan), storage: Remove duplicitous refreshVol in RBD buildVol (John Ferlan), virt-host-validate: check for IOMMU support (Daniel P. Berrange), libvirt-domain: Drop virDomainMigrateCheckNotLocal attribute (Michal Privoznik), virt-host-validate: check for required cgroups (Daniel P. Berrange), virt-host-validate: distinguish exists vs accessible for devices (Daniel P. Berrange), virt-host-validate.c: check for kernel namespaces (Daniel P. Berrange), migration: refactor: introduce parameter checking function (Nikolay Shirokovskiy), migration: merge all proto branches into single function (Nikolay Shirokovskiy), migration: refactor: refactor parameter compatibility checks (Nikolay Shirokovskiy), migration: refactor: extract parameter adaption functions (Nikolay Shirokovskiy), migration: refactor: introduce params version of unmanaged (Nikolay Shirokovskiy), migration: refactor: merge direct and p2p into unmanaged (Nikolay Shirokovskiy), migration: refactor: rename uri parameter to miguri (Nikolay Shirokovskiy), migration: remove direct migration dependency on version1 of driver (Michal Privoznik), migration: move implementation check to branches in p2p (Nikolay Shirokovskiy), migration: refactor: reuse p2p url check (Nikolay Shirokovskiy), migration: refactor: get rid of use_params p2p_full (Nikolay Shirokovskiy), virJSONValueArraySize: return ssize_t (Michal Privoznik), src: Include $(builddir)/util in the header search path (Andrea Bolognani), storage: Perform some cleanup of calls (John Ferlan), AUTHORS: Add myself to the list of committers (Andrea Bolognani), virSecurityManagerNew: Turn array of booleans into flags (Michal Privoznik), qemu: Fix indentation issue (Andrea Bolognani), qemu: Remove explicit values from virQEMUCapsFlags (Andrea Bolognani), qemu: migration: Use migration flags in qemuMigrationIsAllowed (Peter Krempa), qemu: migration: Drop @def from qemuMigrationIsAllowed (Peter Krempa), qemu: migration: Split source and destination migration checks (Peter Krempa), spec: Delete .git after applying patches (Cole Robinson), tests: qemu: Add aarch64 virtio pci tests (Cole Robinson), qemu: Make updating stats in qemuMigrationCheckJobStatus optional (Jiri Denemark), qemu: Introduce flags in qemuMigrationCompleted (Jiri Denemark), qemu: Copy completed migration stats only on success (Jiri Denemark), qemu: Always update migration times on destination (Jiri Denemark), tests: Check GIC-related XMLs in qemuxml2xmltest (Martin Kletzander), Do not distribute generated virkeymaps.h (Martin Kletzander), apparmor: differentiate between error and unconfined profiles (Cédric Bosdonnat), testutils: Drop virtTestResult (Cole Robinson), tests: eventtest: Open code virtTestResult (Cole Robinson), tests: sheepdog: Drop use of virtTestResult (Cole Robinson), testutils: Add coloring to verbose PASS/FAILED output (Cole Robinson), storage: Introduce virStorageBackendDiskStartPool (John Ferlan), storage: Add additional errors/checks for disk label (John Ferlan), storage: Add param to check whether we can write a disk label (John Ferlan), storage: Refactor disk label checking (John Ferlan), virfile: Add extra check for direct delete in virFileRemove (John Ferlan), qemu: Add conditions for qemu-kvm use on ppc64 (Andrea Bolognani), rpc: libssh2: Add more debugging info (Peter Krempa), conf: Reuse virDomainDefCheckDuplicateDiskWWN to check disk serial too (Peter Krempa), qemu: Perform the disk WWN check only on fresh starts (Peter Krempa), interface: let netcf pre-filter for active vs. inactive (Laine Stump), interface: re-use name and mac address rather than re-retrieving (Laine Stump), interface: report correct interface count when not returning list (Laine Stump), qemu: Add -mem-path even with numa (Martin Kletzander), qemu: Extract -mem-path building into its own function (Martin Kletzander), qemu: Move memory size detection to the top of the function (Martin Kletzander), qemu: Move simplification variable to begining of the function (Martin Kletzander), qemu: Add test cases for gic-version option (Pavel Fedin), qemu: Add support for gic-version machine option (Pavel Fedin), qemu: Introduce QEMU_CAPS_MACH_VIRT_GIC_VERSION capability (Pavel Fedin), Post-release version bump to 1.2.21 (Martin Kletzander) 更多改进请看更新日志。 Libvirt 库是一种实现 Linux 虚拟化功能的 Linux® API,它支持各种虚拟机监控程序,包括 Xen 和 KVM,以及 QEMU 和用于其他操作系统的一些虚拟产品。 libvirt 提供一种虚拟机监控程序不可知的 API 来安全管理运行于主机上的来宾操作系统。libvirt 本身 不是一种工具, 它是一种可以建立工具来管理来宾操作系统的 API。libvirt 本身构建于一种抽象的概念之上。它为受支持的虚拟机监控程序实现的常用功能提供通用的 API。libvirt 起初是专门为 Xen 设计的一种管理 API,后来被扩展为可支持多个虚拟机监控程序。 libvirt 比较和用例模型 Libvirt 1.2.21 发布,Linux 虚拟化库下载地址