第 15 章 虚拟化
- 虚拟 CPU 时间片共享
- 虚拟 CPU 时间片共享是对 Linux 调度程序层的性能提高,在这一层运转的虚拟 CPU 可在生成 CPU 之前将其剩余的时间片转给另一个虚拟 CPU。这个功能解决了 SMP 系统中固有的锁占有者(lock holder)优先的问题,这个问题可影响虚拟 CPU 性能。该功能可在多处理器虚拟机中提供稳定的性能。Intel 和 AMD 都支持该功能,在 Intel 处理器中称其为暂停回路退出(Pause Loop Exiting,PLE),而在 AMD 处理器中称之为暂停过滤器(Pause Filter)。
KVM 网络性能是使用虚拟化和云技术的产品和解决方案的关键要求。红帽企业版 Linux 6.2 提供了大量网络性能优化,以便在各种设置中提高 KVM 网络半虚拟驱动程序性能。
- 改进的小信息 KVM 性能
- 红帽企业版 Linux 6.2 提高了 KVM 小信息性能以满足各种生成小信息(< 4K)的联网负载的要求。
- KVM 网络驱动程序中的有线速度要求
- 运行联网工作负载的虚拟化和云产品需要有线速度。在红帽企业版 Linux 6.1 之前,在 10 GB 以太网 NIC 中使用低 CPU 消耗获得有线速度的唯一方法是使用 PCI 设备分配(通过),但它可限制其它功能,比如内存过量使用和虚拟机迁移。macvtap/vhost 零副本功能可让用户在需要高性能时使用那些功能。这个功能提高了使用 VEPA 时所有红帽企业版 Linux 6.x 虚拟机的功能。这个功能是作为技术预览引进的。
- KVM 网络驱动程序的 UDP checksum 优化
- UDP checksum 优化可在主机 NIC 验证 checksum 后取消虚拟机对 checksum 的验证。这个功能可加速外部 UDP 乃至使用 10GB 以太网卡的红帽企业版 Linux 6.2 虚拟机和主机中的虚拟机。UDP checksum 优化由
virtio-net
驱动程序提供。 - 当主机比虚拟机速度慢时改进的 I/O 路径性能
- 红帽企业版 Linux 6.2 KVM 网络驱动程序提高了 I/O 路径性能,原理是减少虚拟机退出和中断,这样可更迅速地传送数据。这个改进还可让您在较慢的主机中更迅速地运行虚拟机而不会出现任何性能损失。这是通过改进
virtio
环结构以及virtio
和vhost-net
中的事件索引支持实现的。
- 使用 SNMP 监控系统
- 这个功能为已经应用于使用裸机系统的数据中心的成熟技术提供 KVM 支持。SNMP 是一个监控标准,深为大众认同且极具计算效率。在红帽企业版 Linux 6.2 中使用 SNMP 监控系统可让 KVM 主机在事件中发送陷阱以便通过 SNMP 标准协议在用户和监控事件之间沟通。这个功能由新添加的软件包提供:libvirt-snmp。这个功能是作为技术预览引进的。
- 改进的虚拟机 debug 能力
- 虚拟其数据中心的用户需要在虚拟机系统挂起其必须启动崩溃转储时有 debug 的方法。在物理系统中有两个经常使用的方法:
- 在虚拟机中启动非屏蔽中断(NMI)
- 向虚拟机发送 SysRq 序列
虽然这些功能可直接由 KVM 控制台提供,但还是有很多用户通过 libvirt API 和 virsh 使用 KVM,但这样就无法使用这两个功能。红帽企业版 Linux 6.2 改进了跨 KVM 栈的 debug 能力,这样就可让用户在虚拟机中启动 NMI 并向虚拟机发送 SysRq 发送密钥序列。 - 改进虚拟机引导访问
- 虚拟其数据中心的用户需要跟踪虚拟机引导进程并从头开始显示整个 BIOS 和内核引导信息。没有这个功能用户就无法在引导前以互动形式使用 virsh 控制台。在红帽企业版 Linux 6.2 中添加了新的软件包 sgabios,它可提供此功能以及 qemu-kvm 的一些附带功能。
- 实时快照
- 红帽企业版 Linux 6.2 引进了实时快照功能作为技术预览。这个实时快照功能可让您在硬盘中自动备份虚拟机映像,并使用外置 qcow2 映像公开为每个虚拟磁盘提供驱动器快照。多磁盘实时快照的创建可帮助您维护数据完整性,方法为与磁盘的众多快照对话前暂停 qemu。这样每次多磁盘快照就可让所有磁盘中的数据来自同一点。重要的是要了解文件系统统一性是有局限的。虽然该快照的重新使用在崩溃后是一致的,用户仍需要运行文件系统检查(
fsck
)或者重新执行日志中的条目,它们与断开电源后重启的条目类似。 - 多处理器(NUMA)微调改进
- 红帽企业版 Linux 6.2 在 libvirt API 栈中添加了微调改进,它可提高 SPECvirt 方法的性能。红帽企业版 Linux 6.2 现在可以在创建虚拟机是固定与 NUMA 关联的内存。
- USB 改进
- 为 qemu-kvm 使用了 USB 2.0 模拟。这只能直接用于 QEMU。计划在下一个发行本中添加 Libvirt 支持。为 USB 主机控制器添加了远程唤醒功能。它与虚拟机操作系统合作可停止频繁的 1000 赫兹查询模式,并让该设备进入睡眠模式。它可极大改进使用模拟 USB 鼠标(或者平板)的虚拟机的电源使用以及 CPU 消耗 — 模拟 USB 鼠标是每台虚拟机都使用的通用设备。
- 内存膨胀
- 红帽企业版 Linux 6 半虚拟 Xen 虚拟机现在支持内存膨胀。
- 域内存限制
- 已将 x86_64 domU PV 虚拟机的内存限制增加到 128 GB:
CONFIG_XEN_MAX_DOMAIN_MEMORY=128
。 - 时间计算
- 已使用
xen_clocksource_read
方案替换了xen_sched_clock
方案(后者返回的是未丢失的纳秒数)。
红帽企业版 Linux 虚拟化指南是由几个具体指南组成:
已将 spice-protocol 软件包升级至版本 0.8.1,它可提供以下功能:
- 支持卷更改
- 支持异步虚拟机 I/O 写入和中断
- 支持与挂起(S3)相关的虚拟机 I/O 写入
- 支持代表虚拟机 bug 的中断
Linux 容器可在裸机中提供灵活的应用程序运行时控制,而无需完全虚拟化负载。红帽企业版 Linux 6.2 提供应用程序层的容器,可通过 cgroup 和名称空间分离并控制应用程序资源使用策略。这个发行本引进了基本的容器声明周期管理,您可使用 libvirt API 以及 virt-manager GUI 完成创建、编辑和删除容器的操作。Linux 容器还属于技术预览。
要同时安装 rhev-hypervisor 软件包,可将 Yum 配置为只安装 rhev-hypervisor 软件包,方法为编辑 /etc/yum.conf
文件,并添加 installonlypkgs
选项:
[main] ... installonlypkgs=rhev-hypervisor
yum.conf
man page(man yum.conf 5
)中的 installonlypkgs 选项部分找到该列表。