14.5. 激活内核相同的页面合并 (KSM)
当节点过载时,OpenShift Virtualization 可以激活内核相同的页面合并 (KSM)。KSM 去除在虚拟机 (VM) 的内存页面中找到的相同数据。如果您有类似的虚拟机,则 KSM 可以在单个节点上调度更多虚拟机。
您必须只使用带有可信工作负载的 KSM。
14.5.1. 先决条件 复制链接链接已复制到粘贴板!
- 确保管理员已在您希望 OpenShift Virtualization 激活 KSM 的任何节点上配置了 KSM 支持。
14.5.2. 关于使用 OpenShift Virtualization 激活 KSM 复制链接链接已复制到粘贴板!
当节点遇到内存过载时,您可以将 OpenShift Virtualization 配置为激活内核相同的页面合并(KSM)。
14.5.2.1. 配置方法 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Web 控制台或编辑 HyperConverged
自定义资源(CR)来启用或禁用所有节点的 KSM 激活功能。HyperConverged
CR 支持更精细的配置。
CR 配置
您可以通过编辑 HyperConverged
CR 的 spec.configuration.ksmConfiguration
小节来配置 KSM 激活功能。
-
您可以通过编辑
ksmConfiguration
小节来启用功能和配置设置。 -
您可以通过删除
ksmConfiguration
小节来禁用该功能。 -
您可以通过在
ksmConfiguration.nodeLabelSelector
字段中添加节点选择语法来允许 OpenShift Virtualization 只在节点子集上启用 KSM。
即使 OpenShift Virtualization 中禁用了 KSM 激活功能,管理员仍然可以在支持它的节点上启用 KSM。
14.5.2.2. KSM 节点标签 复制链接链接已复制到粘贴板!
OpenShift Virtualization 识别配置为支持 KSM 并应用以下节点标签的节点:
kubevirt.io/ksm-handler-managed: "false"
-
当 OpenShift Virtualization 在遇到内存过载的节点上激活 KSM 时,该标签被设置为
"true"
。如果管理员激活 KSM,则该标签没有设置为"true"
。 kubevirt.io/ksm-enabled: "false"
-
当节点上激活 KSM 时,此标签被设置为
"true"
,即使 OpenShift Virtualization 没有激活 KSM。
这些标签不适用于不支持 KSM 的节点。
14.5.3. 使用 Web 控制台配置 KSM 激活 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Web 控制台允许 OpenShift Virtualization 在集群中的所有节点上激活内核相同的页面合并 (KSM)。
流程
-
在侧边菜单中点 Virtualization
Overview。 - 选择 Settings 选项卡。
- 选择 Cluster 选项卡。
- 扩展 资源管理。
为所有节点启用或禁用功能:
- 将 内核同页合并(KSM) 设置为 on。
- 将 内核同页合并(KSM) 设置为 off。
14.5.4. 使用 CLI 配置 KSM 激活 复制链接链接已复制到粘贴板!
您可以通过编辑 HyperConverged
自定义资源(CR)来启用或禁用 OpenShift Virtualization 内核相同的页面合并(KSM)激活功能。如果您希望 OpenShift Virtualization 只在某个节点子集上激活 KSM,则使用此方法。
先决条件
-
已安装 OpenShift CLI(
oc
)。
流程
运行以下命令,在默认编辑器中打开
HyperConverged
CR:oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
ksmConfiguration
小节:要为所有节点启用 KSM 激活功能,请将
nodeLabelSelector
值设置为{}
。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要在节点的子集上启用 KSM 激活功能,请编辑
nodeLabelSelector
字段。添加与 OpenShift Virtualization 启用 KSM 的节点匹配的语法。例如,以下配置允许 OpenShift Virtualization 在<first_example_key>
和<second_example_key>
被设置为"true"
的节点上启用 KSM。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要禁用 KSM 激活功能,请删除
ksmConfiguration
小节。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 保存该文件。