7 虚拟化限制和支持 #
唯一受支持的全系统模拟是 QEMU,而 KVM 是唯一受支持的加速器。
7.1 体系结构支持 #
7.1.1 KVM 硬件要求 #
目前,SUSE 支持在 AMD64/Intel 64、Arm AArch64、IBM Z 和 IBM LinuxONE 主机上实施 KVM 全虚拟化。
在 AMD64/Intel 64 体系结构上,KVM 是围绕 AMD* (AMD-V) 和 Intel* (VT-x) CPU 中包含的硬件虚拟化功能设计的。它支持芯片组和 PCI 设备的虚拟化功能,例如 I/O 内存映射单元 (IOMMU) 和单根 I/O 虚拟化 (SR-IOV)。您可以使用以下命令测试您的 CPU 是否支持硬件虚拟化:
>
egrep '(vmx|svm)' /proc/cpuinfo如果此命令未返回任何输出,则表示您的处理器不支持硬件虚拟化,或者已在 BIOS 或固件中禁用此功能。
以下网站指出了支持硬件虚拟化的 AMD64/Intel 64 处理器:http://ark.intel.com/Products/VirtualizationTechnology(针对 Intel CPU),以及 http://products.amd.com/(针对 AMD CPU)。
在 Arm 体系结构上,Armv8-A 处理器支持虚拟化。
在 Arm 体系结构上,仅支持通过 CPU 型号
host
(在虚拟机管理器或libvirt
中名为host-passthrough
)运行 QEMU/KVM。
仅当 CPU 硬件虚拟化功能可用时,才会装载 KVM 内核模块。
VM 主机服务器的一般性最低硬件要求与第 2.1 节 “硬件要求”中概述的相同。不过,对于每个虚拟化的 Guest 都需要提供额外的 RAM。此额外 RAM 量应至少与物理安装所需的 RAM 量相同。另外,强烈建议为每个运行中的 Guest 至少配备一个处理器核心或超线程。
Arm AArch64 是个持续发展的平台。它不遵循传统的标准与合规性认证计划来实现与操作系统和超级管理程序的互操作性。请让您的供应商提供针对 SUSE Linux Enterprise Server 的支持声明。
不支持在 POWER 平台上运行 KVM 或 Xen 超级管理程序。
7.1.2 Xen 硬件要求 #
SUSE 支持 AMD64/Intel 64 上的 Xen。
7.2 超级管理程序限制 #
每个服务包 (SP) 的发行说明中都概述了 Xen 和 KVM 的新功能和虚拟化限制。
仅支持 SUSE Linux Enterprise Server 官方软件源中包含的软件包。相反,packagehub 中提供的所有可选子软件包和插件(对于 QEMU 为 libvirt
)均不受支持。
有关每个主机的最大虚拟 CPU 总数,请参见《虚拟化最佳实践指南》中有关过量分配物理 CPU 的建议。虚拟 CPU 总数应与可用物理 CPU 数成正比。
我们已从 32 位版本的 SUSE Linux Enterprise Server 11 SP2 中去除虚拟化主机设施。32 位 Guest 不受影响,可以使用提供的 64 位超级管理程序为其提供全面支持。
7.2.1 KVM 限制 #
在 AMD64/Intel 64 上运行 Linux Guest 的 SUSE Linux Enterprise Server 15 SP4 主机所支持(已经过测试)虚拟化的限制。对于其他操作系统,请咨询具体的供应商。
每个 VM 的最大虚拟 CPU 数 |
288 |
每个 VM 的最大内存 |
6 TiB |
KVM 主机限制与 SUSE Linux Enterprise Server 相同(请参见发行说明的相应章节),但以下限制除外:
每个 VM 的最大虚拟 CPU 数:请参见 https://documentation.suse.com/sles-15/html/SLES-all/article-virtualization-best-practices.html#sec-vt-best-perf-cpu-assign 上的《虚拟化最佳实践指南》中有关过量分配物理 CPU 的建议。虚拟 CPU 总数应与可用物理 CPU 数成正比。
7.2.2 Xen 限制 #
每个 VM 的最大虚拟 CPU 数 |
32(一般的 HVM 建议)、64 (HVM Windows Guest)、128(可信 HVM)或 512 (PV) |
每个 VM 的最大内存 |
2 TiB(64 位 Guest)、16 GiB(具有 PAE 的 32 位 Guest) |
最大物理 CPU 总数 |
1024 |
每个主机的最大虚拟 CPU 总数 |
请参见 https://documentation.suse.com/sles-15/html/SLES-all/article-virtualization-best-practices.html#sec-vt-best-perf-cpu-assign 上的《虚拟化最佳实践指南》中有关过量分配物理 CPU 的建议。虚拟 CPU 总数应与可用物理 CPU 数成正比 |
最大物理内存 |
建议保持在 16 TiB 地址边界以下。 |
7.3 支持的主机环境(超级管理程序) #
本节介绍在各种虚拟化主机(超级管理程序)上作为 Guest 操作系统运行的 SUSE Linux Enterprise Server 15 SP4 的支持状态。
SUSE Linux Enterprise Server |
超级管理程序 |
---|---|
SUSE Linux Enterprise Server 11SP4 |
Xen 和 KVM |
SUSE Linux Enterprise Server 12 SP1 到 SP5 |
Xen 和 KVM |
SUSE Linux Enterprise Server 15 GA 到 SP4 |
Xen 和 KVM |
您也可以在 SUSE YES 认证数据库中进行搜索
7.4 支持的 Guest 操作系统 #
本节列出了在 SUSE Linux Enterprise Server 15 SP4 上虚拟化且适用于 KVM 和 Xen 超级管理程序的各种 Guest 操作系统的支持状态。
仅当 Guest 中安装了半虚拟化驱动程序时,才能通过 libvirt
/virsh
重引导 Microsoft Windows Guest。有关下载和安装 PV 驱动程序的更多细节,请参见 https://www.suse.com/products/vmdriverpack/。
SUSE Linux Enterprise Server 11SP4
SUSE Linux Enterprise Server 12 SP3、12 SP4、12 SP5
SUSE Linux Enterprise Server 15 GA、15 SP1、15 SP2、15 SP3、15 SP4
Windows Server 2008 SP2+、2008 R2 SP1+、2012+、2012 R2+、2016、2019、2022
Oracle Linux 6、7、8(仅适用于 KVM 超级管理程序)
SLED 15 SP3
有关可用组合和受支持版本的列表,请参见扩展支持文档。
从 RHEL 7.2 开始,Red Hat 去除了 Xen PV 驱动程序。
Windows 8+、8.1+、10+
在其他组合中提供 L2 支持,但只在可行的情况下才提供修复。SUSE 会对主机操作系统(超级管理程序)提供全面支持。Guest 操作系统问题需要在相应操作系统供应商的支持下予以解决。如果修复某个问题同时涉及到主机环境和 Guest 环境,则客户需要联系 SUSE 和 Guest VM 操作系统供应商。
所有 Guest 操作系统既支持全虚拟化,也支持半虚拟化。只有以下操作系统例外:Windows 系统,它们只支持全虚拟化(但可以使用 PV 驱动程序:https://www.suse.com/products/vmdriverpack/);OES 操作系统,它们只支持半虚拟化。
除非另有说明,否则所有 Guest 操作系统在 32 位和 64 位环境中均受支持。
7.4.1 半虚拟化驱动程序的提供 #
为了提升 Guest 操作系统的性能,我们将会提供半虚拟化驱动程序(如果有)。尽管这些驱动程序不是必需的,但我们强烈建议使用。
从 SUSE Linux Enterprise Server 12 SP2 开始,我们已改用 PVops 内核。我们不再使用专用的 kernel-xen 软件包:
dom0 上的 kernel-default+kernel-xen 已由 kernel-default 软件包取代。
PV domU 上的 kernel-xen 软件包已由 kernel-default 软件包取代。
HVM domU 上的 kernel-default+xen-kmp 已由 kernel-default 取代。
对于 SUSE Linux Enterprise Server 12 SP1 和更低版本(低至 10 SP4),半虚拟化驱动程序包含在专用 kernel-xen 软件包中。
半虚拟化驱动程序的提供方式如下:
- SUSE Linux Enterprise Server 12/12 SP1/12 SP2
包含在内核中
- SUSE Linux Enterprise Server 11/11 SP1/11 SP2/11 SP3/11 SP4
包含在内核中
- SUSE Linux Enterprise Server 10SP4
包含在内核中
- Red Hat
从 Red Hat Enterprise Linux 5.4 开始提供。从 Red Hat Enterprise Linux 7.2 开始,Red Hat 已去除了 PV 驱动程序。
- Windows
SUSE 开发了适用于 Windows 的基于 virtio 的驱动程序,这些驱动程序包含在虚拟机驱动程序包 (VMDP) 中。有关详细信息,请参见 https://www.suse.com/products/vmdriverpack/。
7.5 支持的 VM 迁移场景 #
SUSE Linux Enterprise Server 支持将虚拟机从一台物理主机迁移到另一台物理主机。
7.5.1 脱机迁移场景 #
SUSE 支持脱机迁移:关闭 Guest VM,然后将其迁移到运行不同 SLE 产品(从 SLE 12 到 SLE 15 SPX)的主机。对于以下主机操作系统组合,全面支持 (L3) 从一台主机的 Guest 迁移到另一台主机的 Guest:
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 12SP3 |
SLES 12 SP3 |
SLES 12 SP4 | |
SLES 12 SP5 | |
SLES 15 GA |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 12SP4 |
SLES 12 SP4 |
SLES 12 SP5 | |
SLES 15(仅适用于 KVM) | |
SLES 15 SP1 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 12SP5 |
SLES 12 SP5 |
SLES 15 SP1 | |
SLES 15 SP2 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 15 GA |
SLES 15 GA |
SLES 15 SP1 | |
SLES 15 SP2 | |
SLES 15 SP3 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 15SP1 |
SLES 15 SP1 |
SLES 15 SP2 | |
SLES 15 SP3 | |
SLES 15 SP4 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 15SP2 |
SLES 15 SP2 |
SLES 15 SP3 | |
SLES 15 SP4 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 15SP3 |
SLES 15 SP3 |
SLES 15 SP4 |
7.5.2 实时迁移场景 #
本节列出了在 SLES 上运行虚拟化时各种实时迁移场景的支持状态。另请参见支持的实时迁移的要求。全面支持以下主机操作系统组合(根据相应的产品生命周期,支持级别为 L3)。
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 12SP3 |
SLES 12 SP4 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 12SP4 |
SLES 12 SP4 |
SLES 12 SP5 | |
SLES 15 GA(仅适用于 KVM) |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 12SP5 |
SLES 12 SP5 |
SLES 15 SP1 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 15 GA |
SLES 15 GA |
SLES 15 SP1 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 15SP1 |
SLES 15 SP1 |
SLES 15 SP2 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 15SP2 |
SLES 15 SP2 |
SLES 15 SP3 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 15SP3 |
SLES 15 SP3 |
SLES 15 SP4 |
主机源产品名称 |
目标主机 |
---|---|
SUSE Linux Enterprise Server 15SP4 |
SLES 15 SP4 |
SUSE 始终支持在运行 SLES 的主机之间实时迁移虚拟机,但这两个 SLES 版本的服务包编号必须是连续的。例如,从 SLES 15 SP2 迁移到 SLES 15 SP3。
SUSE 致力于为以下实时迁移提供支持:在 SUSE Linux Enterprise Server 的同一主要版本中,将虚拟机从运行 LTSS 所涵盖的服务包的主机迁移到运行更新服务包的主机。例如,将虚拟机从 SLES 12 SP2 主机迁移到 SLES 12 SP5 主机。对于从 LTSS 迁移到更新的服务包的场景,SUSE 只会执行极简单的测试,建议在尝试迁移关键的虚拟机之前执行全面的现场测试。
由于工具栈不同,不支持在 SLE 11 与 SLE 12 之间实时迁移,有关更多细节,请参见发行说明。
7.6 功能支持 #
7.6.1 Xen 主机 (Dom0) #
Dom0
) #不支持在运行时添加或去除物理 CPU,但可以脱机添加或去除每个 VM Guest 的虚拟 CPU。
7.6.2 Xen 半虚拟化 Guest (DomU) #
功能 |
Xen |
---|---|
虚拟网络和虚拟块设备热插拔 |
是 |
虚拟 CPU 热插拔 |
是 |
虚拟 CPU 过量分配 |
是 |
动态虚拟内存大小调整 |
是 |
VM 保存和恢复 |
是 |
VM 实时迁移 |
是(请参见第 11.7.1 节 “迁移要求”) |
使用 GDBC 进行高级调试 |
是 |
对 VM 可见的 Dom0 度量 |
是 |
内存气球 |
是 |
PCI 直通 |
是(不包括 NetWare Guest) |
对于实时迁移,源体系结构和目标体系结构均需要匹配;即处理器(AMD* 或 Intel*)必须相同。除非使用了 CPU ID 掩码(例如,使用 Intel FlexMigration),否则目标的处理器修订版应该与源相同或者比源更新。如果在不同系统之间移动 VM,那么这些规则适用于每一次移动。为了避免优化的代码在运行时或应用程序启动期间失败,源 CPU 和目标 CPU 需要公开相同的处理器扩展。Xen 透明地向 VM 公开物理 CPU 扩展。总而言之,Guest 可以是 32 位或 64 位,但 VHS 必须相同。
对于支持 Intel FlexMigration 的计算机,CPU-ID 掩码和错误引发可以提高跨 CPU 迁移的灵活性。
7.6.3 全虚拟化 Guest #
功能 |
Xen |
KVM |
---|---|---|
虚拟网络和虚拟块设备热插拔 |
是 |
是 |
虚拟 CPU 热插拔 |
否 |
否 |
虚拟 CPU 过量分配 |
是 |
是 |
动态虚拟内存大小调整 |
是 |
是 |
VM 保存和恢复 |
是 |
是 |
VM 实时迁移 |
是(请参见第 11.7.1 节 “迁移要求”) |
是 |
VM 快照 |
是 |
是 |
使用 GDBC 进行高级调试 |
是 |
是 |
对 VM 可见的 Dom0 度量 |
是 |
是 |
PCI 直通 |
是 |
是 |
AMD SEV |
否 |
是(请参见https://documentation.suse.com/sles/15-SP3/html/SLES-amd-sev/article-amd-sev.html) |
仅当使用的是 PV 驱动程序 (VMDP) 时,才支持在 Xen 和 KVM 中热插拔虚拟网络和虚拟块设备,以及收缩、恢复动态虚拟内存及调整其大小。
对于 KVM,有关支持的限制、功能、建议的设置和方案的详细说明以及其他有用信息均在 kvm-supported.txt
中提供。此文件是 KVM 软件包的一部分,可在 /usr/share/doc/packages/qemu-kvm
中找到。
7.7 嵌套虚拟化 #
使用嵌套虚拟化可在一个 VM 的内部运行另一个虚拟机,同时仍可利用主机的硬件加速功能。嵌套虚拟化的性能极差,并且在调试时会提高复杂性。嵌套虚拟化主要用于测试目的。在 SUSE Linux Enterprise Server 中,嵌套虚拟化是作为技术预览提供的。此版本仅用于测试目的,我们不提供相关支持。用户可以报告 bug,但这些 bug 的处理优先级较低。此外我们明确指出,在使用嵌套虚拟化的情况下,不支持实时迁移或者保存或恢复 VM。