第 8 章 虚拟化
8.1. KVM
virtio-SCSI
通过添加 virtio-SCSI (基于 SCSI 的 KVM 存储架构)功能改进了 KVM 虚拟化的存储堆栈。与 virtio-blk 相比,virtio-SCSI 提供了直接连接到 SCSI LUN 的功能,并显著提高可扩展性。virtio-SCSI 的优点是它能够处理数百个设备,与 virtio-blk 相比,其只能处理大约 25 个设备并耗尽 PCI 插槽。
virtio-SCSI 现在能够继承目标设备的功能集,并具有以下能力:
- 通过 virtio-scsi 控制器连接虚拟硬盘驱动器或 CD,
- 通过 QEMU scsi-block 设备从主机传递物理 SCSI 设备到客户机,
- 并允许每个客户机使用数百个设备;从 virtio-blk 的 ~25-device 限制改进。
virtio-scsi 在 Red Hat Enterprise Linux 6.3 中作为技术预览引进,并在 Red Hat Enterprise Linux 6.4 中被提升为完全支持。Windows 客户机(不包括 Windows XP)也支持最新的 virtio-win 驱动程序。
支持 Intel 的下一代内核处理器
Red Hat Enterprise Linux 6.4 向 qemu-kvm 添加了对 Intel 的下一代核心处理器的支持,以便 KVM 客户机可以使用处理器提供的新功能,其中最重要的是: 高级向量扩展 2 (AVX2), Bit-Manipulation instructionss 1 (BMI1), Bit-Manipulation Instructions 2 (BMI2), Hardware Lock Elision (HLE), Restricted Transactional Memory (RTM), Process-Context Identifier (PCID), Invalidate Process-Context Identifier (INVPCID), Fused Multiply-Add (FMA), Big-Endian Move 指令(MOVBE), F Segment and G Segment BASE 指令(FSGSBASE), Supervisor Mode Execution Prevention (SMEP), Enhanced REP MOVSB/STOSB (ERMS
843084
支持 AMD Opteron 4xxx 系列 CPU
AMD Opteron 4xxx 系列处理器现在由 qemu-kvm 支持。这允许这个处理器系列的新功能暴露给 KVM 客户机,例如:F16C 指令集、Trailing Bit Manipulation、Bit-Manipulation 指令 1 (BMI1) decimate function, 和 Fused Multiply-Add (FMA)指令集。https://bugzilla.redhat.com/show_bug.cgi?id=838126
通过 SPICE 使用 USB 转发进行客户机实时迁移
在 Red Hat Enterprise Linux 6.4 中,KVM 支持通过 SPICE 使用 USB 转发来实时迁移客户机,同时为所有配置的设备维护现有 USB 设备重定向。https://bugzilla.redhat.com/show_bug.cgi?id=861331
使用 USB 设备实时迁移客户机
在 Red Hat Enterprise Linux 6.4 中,KVM 支持使用 USB 设备的客户机实时迁移。支持以下设备:增强主机控制器接口(EHCI)和通用主机控制器接口(UHCI)本地透传和模拟设备,如存储设备、鼠标、键盘、集线、集线、集
等。
QEMU 客户机代理已更新
Red Hat Enterprise Linux 6.4 现在完全支持 QEMU 客户机代理(由 qemu-guest-agent 软件包提供)。它已更新至上游版本 1.1,包括以下显著的改进和程序错误修复:
- guest-suspend-disk 和 guest-suspend-ram 命令现在可用于暂停 RAM 或 Windows 系统上的磁盘。
- guest-network-get-interfaces 命令现在可用于获取 Linux 中的网络接口信息。
- 这个版本提供了文件系统冻结支持改进和修复。
- 这个版本包括各种文档修复和小改进。
半虚拟化终止终止(PV-EOI)
运行 Red Hat Enterprise Linux 6.3 和更早的客户机需要为每个中断退出两个虚拟机(从虚拟机切换到 Hypervisor):一个用于注入中断,另一个用于向中断发送信号。当主机和客户机系统都更新至 Red Hat Enterprise Linux 6.4 或更新版本时,他们可以协商半虚拟化的中断功能,并且每个中断只需要一个切换。因此,将 Red Hat Enterprise Linux 6.4 或更新版本用作主机和客户机,退出的数量会减少一半,以进行中断密集型工作负载,如带有 virtio 网络设备的传入网络流量。这会导致此类工作负载的主机 CPU 利用率显著降低。请注意,只有边缘中断会被改进:例如 e1000 网络使用级别中断且没有改进。
可配置 Sound Pass-through
现在,一个声音设备可以在客户机系统中被检测到为
微手机
或发言人(除了被检测到为 line-in
和 line-out
外)。
现在,声音设备可以在只接受某些类型的语音记录和音频的客户机应用程序中正常工作。
8.2. hyper-V
包含 Microsoft Hyper-V 驱动程序的客户机安装支持
在 Microsoft Hyper-V 上的 Red Hat Enterprise Linux 6.4 中集成了 Red Hat Enterprise Linux 6.4 和 Hyper-V 半虚拟化设备支持,允许用户在 Microsoft Hyper-V hypervisor 上运行 Red Hat Enterprise Linux 6.4 作为客户机。以下 Hyper-V 驱动程序和时钟源已添加到 Red Hat Enterprise Linux 6.4 附带的内核中:
- a network driver (
hv_netvsc
) - 存储驱动程序(
hv_storvsc
) - 兼容 HID 的鼠标驱动程序(
hid_hyperv
) - VMbus 驱动程序(
hv_vmbus
) - A util 驱动程序(
hv_util
) - IDE 磁盘驱动程序(
ata_piix
) - 气球驱动程序(
hv_balloon
) - 一个时钟源(i386、AMD64/Intel 64:
hyperv_clocksource
)
Red Hat Enterprise Linux 6.4 还包括对 Hyper-V 作为时钟源的支持,以及客户机 Hyper-V Key-Value Pair (KVP)守护进程(
hypervkvpd
)守护进程,它们通过 VMbus 传递基本信息,如客户机 IP、FQDN、OS 名称和 OS 发行号。另外还提供了 IP 注入功能,它允许您通过 hypervkvpd
守护进程从主机更改客户机的 IP 地址。
Hyper-V balloon
驱动程序
在 Red Hat Enterprise Linux 6.4 客户机上,添加了气球驱动程序,它是 Hyper-V 主机上支持的动态内存管理功能的基本驱动程序。
balloon
驱动程序用于从虚拟机中删除内存。在 Linux 的 balloon 驱动程序的当前实现中,只有 ballooning 功能是实现的,而不是热添加功能。
2
8.3. VMware ESX
VMware PV 驱动程序
VMware 半虚拟化驱动程序已更新,以便在 VMware ESX 中运行红帽企业 Linux 6.4 时提供无缝的开箱即用体验。Anaconda 安装程序也已更新,以在安装过程中列出驱动程序。以下驱动程序已更新:
- a network driver (
vmxnet3
) - 存储驱动程序(
vmw_pvscsi
) - 内存气球驱动程序(
vmware_balloon
) - 鼠标驱动程序(
vmmouse_drv
) - 一个视频驱动程序(
vmware_drv
)