13.3. 为过时的 CPU 型号管理节点标签

只要节点支持 VM CPU 模型和策略,您可以在节点上调度虚拟机(VM)。

13.3.1. 关于过时 CPU 型号的节点标签

OpenShift Virtualization Operator 使用预定义的过时 CPU 型号列表来确保节点只支持调度的虚拟机的有效 CPU 型号。

默认情况下,从为节点生成的标签列表中删除了以下 CPU 型号:

例 13.1. 过时的 CPU 型号

"486"
Conroe
athlon
core2duo
coreduo
kvm32
kvm64
n270
pentium
pentium2
pentium3
pentiumpro
phenom
qemu32
qemu64

HyperConverged CR 中无法看到这个预定义列表。您无法从此列表中删除 CPU 型号,但您可以通过编辑 HyperConverged CR 的 spec.obsoleteCPUs.cpuModels 字段来添加到列表中。

13.3.2. 关于 CPU 功能的节点标签

在迭代过程中,从为节点生成的标签列表中删除最小 CPU 模型中的基本 CPU 功能。

例如:

  • 一个环境可能有两个支持的 CPU 型号: PenrynHaswell
  • 如果将 Penryn 指定为 minCPU 的 CPU 型号,Penryn 的每个基本 CPU 功能都会与 Haswell 支持的 CPU 功能列表进行比较。

    例 13.2. Penryn支持的 CPU 功能

    apic
    clflush
    cmov
    cx16
    cx8
    de
    fpu
    fxsr
    lahf_lm
    lm
    mca
    mce
    mmx
    msr
    mtrr
    nx
    pae
    pat
    pge
    pni
    pse
    pse36
    sep
    sse
    sse2
    sse4.1
    ssse3
    syscall
    tsc

    例 13.3. Haswell支持的 CPU 功能

    aes
    apic
    avx
    avx2
    bmi1
    bmi2
    clflush
    cmov
    cx16
    cx8
    de
    erms
    fma
    fpu
    fsgsbase
    fxsr
    hle
    invpcid
    lahf_lm
    lm
    mca
    mce
    mmx
    movbe
    msr
    mtrr
    nx
    pae
    pat
    pcid
    pclmuldq
    pge
    pni
    popcnt
    pse
    pse36
    rdtscp
    rtm
    sep
    smep
    sse
    sse2
    sse4.1
    sse4.2
    ssse3
    syscall
    tsc
    tsc-deadline
    x2apic
    xsave
  • 如果 PenrynHaswell 都支持特定的 CPU 功能,则不会为该功能创建一个标签。为仅受 Haswell 支持且不受 Penryn 支持的 CPU 功能生成标签。

    例 13.4. 迭代后为 CPU 功能创建的节点标签

    aes
    avx
    avx2
    bmi1
    bmi2
    erms
    fma
    fsgsbase
    hle
    invpcid
    movbe
    pcid
    pclmuldq
    popcnt
    rdtscp
    rtm
    sse4.2
    tsc-deadline
    x2apic
    xsave

13.3.3. 配置过时的 CPU 型号

您可以通过编辑 HyperConverged 自定义资源(CR)来配置过时的 CPU 型号列表。

流程

  • 编辑 HyperConverged 自定义资源,在 obsoleteCPUs 阵列中指定过时的 CPU 型号。例如:

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: openshift-cnv
    spec:
      obsoleteCPUs:
        cpuModels: 1
          - "<obsolete_cpu_1>"
          - "<obsolete_cpu_2>"
        minCPUModel: "<minimum_cpu_model>" 2
    1
    cpuModels 数组中的示例值替换为过时的 CPU 型号。您指定的任何值都会添加到预定义的过时 CPU 型号列表中。预定义的列表在 CR 中不可见。
    2
    使用您要用于基本 CPU 功能的最低 CPU 型号替换这个值。如果没有指定值,则默认使用 Penryn