跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 虚拟化指南 / 简介 / 虚拟化限制和支持
适用范围 SUSE Linux Enterprise Server 15 SP6

7 虚拟化限制和支持

重要
重要

仅当与 KVM 或 Xen 超级管理程序一起用于虚拟化时,QEMU 才受支持。TCG 加速器不受支持,即使 SUSE 产品中分发了该工具。用户切勿依赖 QEMU TCG 提供 Guest 隔离或任何安全保障。另请参见 https://qemu-project.gitlab.io/qemu/system/security.html

7.1 体系结构支持

7.1.1 KVM 硬件要求

SUSE 支持在 AMD64/Intel 64、 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 处理器:https://ark.intel.com/Products/VirtualizationTechnology(针对 Intel CPU),以及 https://products.amd.com/(针对 AMD CPU)。

  • 在 Arm 体系结构上,Armv8-A 处理器支持虚拟化。

  • 在 Arm 体系结构上,仅支持通过 CPU 型号 host(在虚拟机管理器或 libvirt 中名为 host-passthrough)运行 QEMU/KVM。

注意
注意:不加载 KVM 内核模块

仅当 CPU 硬件虚拟化功能可用时,才会加载 KVM 内核模块。

VM 主机服务器的一般性最低硬件要求与第 2.1 节 “硬件要求”中概述的相同。不过,对于每个虚拟化的 Guest 都需要提供额外的 RAM。此额外 RAM 量应至少与物理安装所需的 RAM 量相同。另外,强烈建议为每个运行中的 Guest 至少配备一个处理器核心或超线程。

注意
注意:AArch64

AArch64 是个持续发展的平台。它不遵循传统的标准与合规性认证计划来实现与操作系统和超级管理程序的互操作性。请让您的供应商提供针对 SUSE Linux Enterprise Server 的支持声明。

注意
注意:POWER

不支持在 POWER 平台上运行 KVM 或 Xen 超级管理程序。

7.1.2 Xen 硬件要求

SUSE 支持 AMD64/Intel 64 上的 Xen。

7.2 超级管理程序限制

每个服务包 (SP) 的Release Notes中都概述了 Xen 和 KVM 的新功能和虚拟化限制。

仅支持 SUSE Linux Enterprise Server 官方储存库中包含的软件包。相反,packagehub 中提供的所有可选子软件包和插件(对于 QEMU 为 libvirt)均不受支持。

有关每个主机的最大虚拟 CPU 总数,请参见第 4.5.1 节 “分配 CPU”。虚拟 CPU 总数应与可用物理 CPU 数成正比。

注意
注意:32 位超级管理程序

我们已从 32 位版本的 SUSE Linux Enterprise Server 11 SP2 中去除虚拟化主机设施。32 位 Guest 不受影响,可以使用提供的 64 位超级管理程序为其提供全面支持。

7.2.1 KVM 限制

在 AMD64/Intel 64 上运行 Linux Guest 的 SUSE Linux Enterprise Server 15 SP6 主机所支持(已经过测试)虚拟化的限制。对于其他操作系统,请咨询具体的供应商。

表 7.1︰ KVM VM 限制

每个 VM 的最大虚拟 CPU 数

768

每个 VM 的最大内存

4 TiB

注意
注意

KVM 主机限制与 SUSE Linux Enterprise Server 相同(请参见发行说明的相应章节),但以下限制除外:

  • 每个 VM 的最大虚拟 CPU 数:请参见 第 4.5.1 节 “分配 CPU” 上的《Virtualization Best Practices Guide》中有关过量分配物理 CPU 的建议。虚拟 CPU 总数应与可用物理 CPU 数成正比。

7.2.2 Xen 限制

表 7.2︰ Xen VM 限制

每个 VM 的最大虚拟 CPU 数

64 (HVM Windows Guest)、128(可信 HVM)或 512 (PV)

每个 VM 的最大内存

2 TiB(64 位 Guest)、16 GiB(具有 PAE 的 32 位 Guest)

表 7.3︰ Xen 主机限制

最大物理 CPU 总数

1024

每个主机的最大虚拟 CPU 总数

请参见《虚拟化最佳实践指南》中有关物理 CPU 过量使用的内容(sec-vt-best-perf-cpu-assign)。虚拟 CPU 总数应与可用的物理 CPU 成正比。

最大物理内存

16 TiB

挂起和休眠模式

不支持。

7.3 支持的主机环境(超级管理程序)

本章介绍 SUSE Linux Enterprise Server 15 SP6 支持在不同虚拟化主机(超级管理程序)上作为 Guest 操作系统运行的状态。

表 7.4︰ 支持以下 SUSE 主机环境

SUSE Linux Enterprise Server

超级管理程序

SUSE Linux Enterprise Server 12SP5

Xen 和 KVM(SUSE Linux Enterprise Server 15 SP6 Guest 必须使用 UEFI 引导)

SUSE Linux Enterprise Server 15 SP3 到 SP6

Xen 和 KVM

您也可以在 SUSE YES certification database 中搜索。

支持级别如下
  • 根据相应的product lifecycle,对 SUSE 主机操作系统的支持级别为全面 L3(适用于 Guest 和主机)。

  • SUSE 为第三方主机环境中的 SUSE Linux Enterprise Server Guest 提供全面 L3 支持。

  • 对主机的支持以及与 SUSE Linux Enterprise Server Guest 相关的合作必须由主机系统供应商提供。

7.4 支持的 Guest 操作系统

本节列出了在 SUSE Linux Enterprise Server 15 SP6 上虚拟化且适用于 KVM 和 Xen 超级管理程序的 Guest 操作系统的支持状态。

重要
重要

仅当 Guest 中安装了半虚拟化驱动程序时,才能通过 libvirt/virsh 重引导 Microsoft Windows Guest。有关下载和安装 PV 驱动程序的更多细节,请参见 https://www.suse.com/products/vmdriverpack/

以下 Guest 操作系统受到全面支持 (L3):
  • SUSE Linux Enterprise Server 12SP5

  • SUSE Linux Enterprise Server 15 SP2、15 SP3、15 SP4、15 SP5、15 SP6

  • SUSE Linux Enterprise Micro 5.1、5.2、5.3、5.4、5.5、6.0

  • Windows Server 2016、2019

  • Oracle Linux 6、7、8(仅适用于 KVM 超级管理程序)

以技术预览(L2,在合理的情况下提供修复)的形式支持以下 Guest 操作系统:
  • SLED 15 SP3

  • Windows 10/11

如果客户购买了 SUSE Liberty Linux,SUSE 将为 Red Hat 和 CentOS Guest 操作系统提供全面支持 (L3)。
  • 有关可用组合和受支持版本的列表,请参见 https://documentation.suse.com/liberty 上的 SUSE Liberty Linux 文档。对于其他情况,将为这些操作系统提供有限的支持(L2,在合理的情况下提供修复)。

注意
注意:RHEL PV 驱动程序

从 RHEL 7.2 开始,Red Hat 去除了 Xen PV 驱动程序。

所有其他 Guest 操作系统
  • 在其他组合中提供 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:

表 7.5︰ 支持的 Guest 脱机迁移方案
目标 SLES 主机 12 SP3 12 SP4 12 SP5 15 GA 15 SP1 15 SP2 15 SP3 15 SP4 15 SP5 15 SP6
源 SLES 主机
12 SP3
12 SP4 1
12 SP5
15 GA
15 SP1
15 SP2
15 SP3
15 SP4
15 SP5
15 SP6

完全兼容且完全受支持

1

仅支持使用 KVM 超级管理程序

不支持

7.5.2 实时迁移场景

本节列出了在 SLES 上运行虚拟化时实时迁移方案的支持状态。另请参见受支持方案所要满足的第 11.7.1 节 “迁移要求”。全面支持以下主机操作系统组合(根据相应的product life cycle,支持级别为 L3)。

注意
注意:实时迁移
  • SUSE 始终支持在运行 SLES 的主机之间实时迁移虚拟机,但这两个 SLES 版本的服务包编号必须是连续的。例如,从 SLES 15 SP4 迁移到 SLES 15 SP5。

  • SUSE 致力于为以下实时迁移提供支持:在 SUSE Linux Enterprise Server 的同一主要版本中,将虚拟机从运行 LTSS 所涵盖的服务包的主机迁移到运行更新服务包的主机。例如,将虚拟机从 SLES 12 SP2 主机迁移到 SLES 12 SP5 主机。对于从 LTSS 迁移到更新的服务包的场景,SUSE 只会执行极简单的测试,建议在尝试迁移关键的虚拟机之前执行全面的现场测试。

重要
重要:Xen 实时迁移

由于工具栈不同,不支持在 SLE 11 与 SLE 12 之间实时迁移,有关更多细节,请参见 Release notes

重要
重要:机密计算

SLES 15 SP6 及更高版本中包含内核补丁,以及用于在产品中启用 AMD 和 Intel 机密计算技术的工具。由于此技术尚未完全准备好用于生产环境,因此它作为技术预览提供。

表 7.6︰ 支持的 Guest 实时迁移
目标 SLES 主机 12 SP4 12 SP5 15 GA 15 SP1 15 SP2 15 SP3 15 SP4 15 SP5 15 SP6 15 SP7
源 SLES 主机
12 SP3
12 SP4 1
12 SP5
15 GA
15 SP1
15 SP2
15 SP3
15 SP4
15 SP5
15 SP6 2

完全兼容且完全受支持

1

仅支持使用 KVM 超级管理程序

2

如果有

不支持

7.6 功能支持

重要
重要:嵌套虚拟化:技术预览

使用嵌套虚拟化可在一个 VM 的内部运行另一个虚拟机,同时仍可利用主机的硬件加速功能。嵌套虚拟化的性能较差,并且在调试时会提高复杂性。嵌套虚拟化通常用于测试目的。在 SUSE Linux Enterprise Server 中,嵌套虚拟化是作为技术预览提供的。此版本仅用于测试,我们不提供相关支持。用户可以报告 bug,但这些 bug 的处理优先级较低。此外我们明确指出,在使用嵌套虚拟化的情况下,不支持实时迁移或者保存或恢复 VM。

重要
重要:复制后实时迁移:技术预览

复制后是一种实时迁移虚拟机的方法,旨在让 VM 尽快在目标主机上运行,并视需要随着时间的推移在后台逐步转移 VM RAM。在某些情况下,与传统的预复制方法相比,这可能是一种优化。但此方法存在一个重大的缺点:在迁移过程中发生的错误(尤其是网络故障)可能会导致整个 VM RAM 内容丢失。因此,我们建议仅在生产环境中使用预复制,如果不介意丢失 VM 状态,可将后复制用于进行测试和实验。

7.6.1 Xen 主机 (Dom0)

表 7.7︰ 功能支持 — 主机 (Dom0)
功能 Xen
网络和块设备热插拔
物理 CPU 热插拔
虚拟 CPU 热插拔
虚拟 CPU 固定
虚拟 CPU 限制
Intel* VT-x2:FlexPriority、FlexMigrate(迁移限制适用于不同的 CPU 体系结构)
Intel* VT-d2(具有中断过滤和排队失效的 DMA 重新映射)
AMD* IOMMU(具有 Guest 到主机物理地址转换的 I/O 页表)
注意
注意:不支持在运行时添加或去除物理 CPU

不支持在运行时添加或去除物理 CPU,但可以脱机添加或去除每个 VM Guest 的虚拟 CPU。

7.6.2 Guest 功能支持

注意
注意:Xen PV Guest 实时迁移

对于实时迁移,源体系结构和目标体系结构均需要匹配;即处理器(AMD* 或 Intel*)必须相同。除非使用了 CPU ID 掩码(例如,使用 Intel FlexMigration),否则目标的处理器修订版应该与源相同或者比源更新。如果在不同系统之间移动 VM,那么这些规则适用于每一次移动。为了避免优化的代码在运行时或应用程序启动期间失败,源 CPU 和目标 CPU 需要公开相同的处理器扩展。Xen 透明地向 VM 公开物理 CPU 扩展。总而言之,Guest 可以是 32 位或 64 位,但 VHS 必须相同。

注意
注意:Windows Guest

仅当使用的是 PV 驱动程序 (VMDP) 时,才支持在 Xen 和 KVM 中热插拔虚拟网络和虚拟块设备,以及收缩、恢复动态虚拟内存及调整其大小。

注意
注意:Intel FlexMigration

对于支持 Intel FlexMigration 的计算机,CPU-ID 掩码和错误引发可让您更灵活地跨 CPU 迁移。

提示
提示

对于 KVM,有关支持的限制、功能、建议的设置和方案的详细说明以及其他有用信息均在 kvm-supported.txt 中提供。此文件是 KVM 软件包的一部分,可在 /usr/share/doc/packages/qemu-kvm 中找到。

表 7.8︰ Xen 和 KVM 的 Guest 功能支持
功能 Xen PV Guest (DomU) Xen FV Guest KVM FV Guest
虚拟网络和虚拟块设备热插拔
虚拟 CPU 热插拔
虚拟 CPU 过量分配
动态虚拟内存大小调整
VM 保存和恢复
VM 实时迁移 [1] [1]
VM 快照
使用 GDBC 进行高级调试
对 VM 可见的 Dom0 指标
内存气球
PCI 直通 [2]
AMD SEV [3]

完全兼容且完全受支持

不支持

[1] 请参见 第 11.7.1 节 “迁移要求”
[2] 不包括 NetWare Guest。
[3] 请参见 https://documentation.suse.com/sles/html/SLES-amd-sev/article-amd-sev.html