文件 /etc/pve/virtual-guest/cpu-models.conf 用于存储自定义的CPU模型,虚拟机可以使用这些模型来访问高级CPU功能(例如自定义CPU标志)。

文件格式

每种CPU型号在文件中都有自己的部分,从以下标题开始:

cpu型号: <名称>

请注意,<name> 不包括 custom- 前缀,在虚拟机配置中需要用此前缀来表示自定义CPU模型。

例如,如果<name>是’foobar',则VM的CPU需要配置为’custom-foobar'。

每个部分可以指定多个选项。它们通过一个TAB字符或多个空格进行缩进。每个选项及其值之间用一个空格分隔,例如:

reported-model qemu64

请参阅下方所有可用选项。

空白行和那些以 # 开头的行会被忽略。

选项

flags`: `<+FLAG[;-FLAG…​]>

附加CPU标志列表,用';'分隔。使用'+FLAG’来启用标志,'-FLAG’来禁用标志。自定义CPU模型可以指定QEMU/KVM支持的任何标志,出于安全原因,VM特定标志必须来自以下集合:pcid, spec-ctrl, ibpb, ssbd, virt-ssbd, amd-ssbd, amd-no-ssb, pdpe1gb, md-clear, hv-tlbflush, hv-evmcs, aes

hidden`: <boolean> (default = 0)

不要识别为KVM虚拟机。

hv-vendor-id`: `<vendor-id>

Hyper-V 供应商ID。一些Windows客户系统内部的驱动程序或程序需要特定的ID。

phys-bits`: `<8-64|host>

报告给客户操作系统的物理内存地址位。应该小于或等于主机的地址位。设置为’host’以使用来自主机CPU的值,但请注意,这样做会破坏迁移到具有其他值的CPU的实时迁移功能。

reported-model`: <486 | Broadwell | Broadwell-IBRS | Broadwell-noTSX | Broadwell-noTSX-IBRS | Cascadelake-Server | Cascadelake-Server-noTSX | Cascadelake-Server-v2 | Cascadelake-Server-v4 | Cascadelake-Server-v5 | Conroe | Cooperlake | Cooperlake-v2 | EPYC | EPYC-Genoa | EPYC-IBPB | EPYC-Milan | EPYC-Milan-v2 | EPYC-Rome | EPYC-Rome-v2 | EPYC-Rome-v3 | EPYC-Rome-v4 | EPYC-v3 | EPYC-v4 | GraniteRapids | Haswell | Haswell-IBRS | Haswell-noTSX | Haswell-noTSX-IBRS | Icelake-Client | Icelake-Client-noTSX | Icelake-Server | Icelake-Server-noTSX | Icelake-Server-v3 | Icelake-Server-v4 | Icelake-Server-v5 | Icelake-Server-v6 | IvyBridge | IvyBridge-IBRS | KnightsMill | Nehalem | Nehalem-IBRS | Opteron_G1 | Opteron_G2 | Opteron_G3 | Opteron_G4 | Opteron_G5 | Penryn | SandyBridge | SandyBridge-IBRS | SapphireRapids | SapphireRapids-v2 | Skylake-Client | Skylake-Client-IBRS | Skylake-Client-noTSX-IBRS | Skylake-Client-v4 | Skylake-Server | Skylake-Server-IBRS | Skylake-Server-noTSX-IBRS | Skylake-Server-v4 | Skylake-Server-v5 | Westmere | Westmere-IBRS | athlon | core2duo | coreduo | host | kvm32 | kvm64 | max | pentium | pentium2 | pentium3 | phenom | qemu32 | qemu64> (default = kvm64)

报告给客户机的CPU型号和供应商。必须是QEMU/KVM支持的模型。只对自定义CPU模型定义有效,默认模型将始终报告它们自己给客户操作系统。

示例文件

cpu-model: avx
flags +avx;+avx2
phys-bits host
hidden 0
hv-vendor-id proxmox
reported-model kvm64