在华为 FusionCompute 中,IMC 模式是为了确保集群内的虚拟机在不同代际的 CPU 之间能够进行热迁移(vMotion)而设计的。简单来说,它会将集群内所有主机的 CPU 功能集“向下兼容”到一个基准水平。

以下是 FusionCompute 的 IMC 模式的区别以及 AVX2 支持情况——

IMC 模式的区别

模式名称(如 Nehalem, SandyBridge, Haswell 等)对应的是 Intel CPU 的微架构代号。

  • 基准越低(如 Nehalem):

    • 兼容性最好: 即使是很多年前的老款 CPU 也能加入这个集群。
    • 性能/功能损失最大: 虚拟机会被屏蔽掉许多新 CPU 才有的高级指令集。如果虚拟机运行需要新指令集的应用,可能会报错或性能极差。
  • 基准越高(如 Cascadelake-Server):

    • 兼容性最差: 只有较新的 CPU 才能加入集群,老旧服务器无法加入。
    • 性能/功能最强: 虚拟机可以使用该代际 CPU 支持的大部分新特性。

具体代际区别(按时间排序):

  • Nehalem / Westmere: 非常古老的架构(第一代 Core i 系列时代),仅支持基础指令集。
  • SandyBridge / IvyBridge: 支持 AVX 指令集(第一代 AVX),但不支持 AVX2。
  • Haswell: 这是一个重要的分水岭,开始支持 AVX2 指令集
  • Broadwell / Skylake / Cascadelake: 在 Haswell 的基础上继续增加新指令集(如 AVX-512 在 Skylake-Server/Cascadelake 中引入),性能更强。

支持 AVX2 指令集的模式

要支持 AVX2,IMC 策略必须至少设置为 Haswell 或更新的版本。

支持 AVX2 的列表:

  • Haswell
  • Haswell-noTSX
  • Broadwell
  • Broadwell-noTSX
  • Skylake-Client
  • Skylake-Server
  • Cascadelake-Server
  • (以及比这些更新的任何模式)

不支持 AVX2 的列表:

  • Nehalem
  • Westmere
  • SandyBridge
  • IvyBridge

关于 “-noTSX” 后缀的说明

你会看到 Haswell-noTSXHaswell 两个选项,区别在于 TSX (Transactional Synchronization Extensions)

  • Haswell: 开启 TSX 指令集。早期的 Haswell CPU 的 TSX 存在硬件缺陷,可能导致系统不稳定。
  • Haswell-noTSX: 屏蔽 TSX 指令集。这是为了规避早期 CPU 的 Bug,或者在不需要该指令集时为了稳定性而推荐的选择。
  • 建议: 如果你的 CPU 是较新的(Broadwell 及以后),TSX 问题通常已修复。如果是较老的 Haswell CPU,或者不确定,选择 -noTSX 版本通常更安全。

总结建议

  1. 如果你的业务必须使用 AVX2: 请将 IMC 模式设置为 Haswell 或更高版本。
  2. 设置限制: 设置 IMC 策略时,集群内所有主机(物理服务器)的 CPU 必须都支持你选择的那个基准。例如,如果你选了 Skylake-Server,但集群里有一台老旧的 SandyBridge 服务器,那么这台老服务器将无法被管理或无法迁移虚拟机。
  3. 生效时机: 修改 IMC 策略通常要求集群内的虚拟机处于关机状态才能生效(或者是新启动的虚拟机才生效,具体视 FusionCompute 版本而定,建议在维护窗口操作)。
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐