永久内存 (PMem) 也称为非易失性内存 (NVM),它即使在断电之后也能够保持数据不丢失。对停机时间敏感并要求高性能的应用程序可以使用 PMem。

可将虚拟机配置为在独立主机或集群中使用 PMem。PMem 会被视为本地数据存储。永久内存可显著降低存储延迟时间。在 ESXi 中,您可以创建配置了 PMem 的虚拟机,由此带来的速度提升也可以让这些虚拟机内的应用程序受益。虚拟机首次打开电源后,无论虚拟机电源打开还是关闭,都将为其预留 PMem。此 PMem 将一直预留,直到虚拟机被迁移或移除为止。

虚拟机可在两种不同模式下消耗永久内存。旧版客户机操作系统仍可以利用虚拟永久内存磁盘功能。

  • 虚拟永久内存 (vPMem)
    使用 vPMem 时,内存将作为虚拟 NVDIMM 提供给客户机操作系统使用。这使客户机操作系统能够在字节可寻址随机模式下使用 PMem。
    注: 您必须使用虚拟机硬件版本 14 和支持 NVM 技术的客户机操作系统。
    注: 为 PMem 虚拟机配置 vSphere HA 时,必须使用虚拟机硬件版本 19。有关详细信息,请参见 配置 PMem 虚拟机的 vSphere HA
  • 虚拟永久内存磁盘 (vPMemDisk)

    使用 vPMemDisk 时,内存将以虚拟 SCSI 设备的形式供客户机操作系统访问,但虚拟磁盘存储在 PMem 数据存储中。

如创建带有 PMem 的虚拟机,系统会在硬盘创建时为虚拟机预留内存。在硬盘创建时还将执行准入控制。有关详细信息,请参见vSphere HA 准入控制 PMem 预留

在集群中,每个虚拟机都具有一部分 PMem 容量。PMem 的总量不能大于集群中的可用总量。已打开电源和已关闭电源的虚拟机均会消耗 PMem。如果虚拟机配置为使用 PMem,但您未使用 DRS,则必须手动选择具有足够 PMem 可放置该虚拟机的主机。

NVDIMM 和传统存储

NVDIMM 可作为内存访问。使用传统存储时,应用程序和存储设备之间存在软件,这可能会导致处理时间出现延迟。使用 PMem 时,应用程序将直接使用存储。这意味着 PMem 性能优于传统存储。存储位于主机本地。但是,由于系统软件无法跟踪所做的更改,因此备份等解决方案目前无法与 PMem 结合使用。

如果在不完全写入非 PMem 数据存储的模式下使用 vPMem,则 vSphere HA 等解决方案的范围有限。为启用了故障切换的 vPMem 虚拟机激活 vSphere HA 后,虚拟机可以故障切换到其他主机。发生这种情况时,虚拟机将使用新主机上的 PMem 资源。为了释放旧主机上的资源,垃圾数据收集器会定期识别和释放这些资源,以供其他虚拟机使用。

命名空间

PMem 的命名空间在 ESXi 启动之前配置。命名空间与系统中的磁盘相似。ESXi 读取命名空间,并通过写入 GPT 头将多个命名空间合并成一个逻辑卷。如果以前未配置命名空间,则默认情况下命名空间会自动格式化。如果已经格式化,ESXi 会尝试挂载 PMem。

GPT 表

PMem 存储中的数据损坏可能会导致 ESXi 发生故障。为避免这种情况,ESXi 会在 PMem 挂载期间检查元数据是否有误。

PMem 区域

PMem 区域是表示单个 vNVDIMM 或 vPMemDisk 的连续字节流。每个 PMem 卷仅属于一台主机。如果管理员必须管理具有大量主机的集群中的每台主机,则可能会面临管理难题。但是,您无需管理每个单独的数据存储。相反,您可以将集群中的整个 PMem 容量视为一个数据存储。

VC 和 DRS 将自动执行 PMem 数据存储的初始放置操作。请在创建虚拟机时或向虚拟机添加设备时,选择本地的 PMem 存储配置文件。系统将自动运行其余的配置操作。这么做有一个限制,那就是 ESXi 不允许将虚拟机主目录放在 PMem 数据存储上。因为这会占用宝贵的空间来存储虚拟机日志文件和统计信息文件。这些区域用于表示虚拟机数据,并且可以作为字节可寻址 NVDIMM 或 VpMem 磁盘被访问。

迁移

因为 PMem 是本地数据存储,因此想要移动虚拟机就必须使用 Storage vMotion。具有 vPMem 的虚拟机只能迁移到具有 PMem 资源的 ESX 主机,而具有 vPMemDisk 的虚拟机可迁移到没有 PMem 资源的 ESX 主机。

错误处理和 NVDIMM 管理

主机故障可能会导致未处于完全写入模式的 vPMem 虚拟机丧失可用性。如果出现灾难性错误,您可能会丢失所有数据且必须采取手动步骤重新格式化 PMem。

vSphere Client 的 vSphere 永久内存

有关永久内存的概念简介,请参阅:

在 vSphere Client 中使用 PMEM 增强功能

有关使用 PMem 时基于 HTML5 的 vSphere Client 中的增强功能的简要概述,请参见:

在 vSphere Client 中迁移和克隆使用 PMEM 的虚拟机

有关迁移和克隆使用 PMem 的虚拟机的简要概述,请参见:

配置 PMem 虚拟机的 vSphere HA

可以在完全写入模式下配置 PMem 虚拟机的 vSphere HA,以便在主机出现故障时,可以在另一台正常运行的主机上还原虚拟机。

前提条件

  • 必须选择硬件版本 19。
  • 不支持具有 vPMemDisk 的 PMem 虚拟机。

过程

  1. 新建虚拟机向导中创建新的虚拟机时,选择自定义硬件
    1. 单击添加新设备,然后从下拉菜单中选择添加 NVDIMM
    2. 单击允许在另一个主机上对所有 NVDIMM 设备进行故障切换复选框。
    3. 单击下一步并完成新建虚拟机向导。
      在主机出现故障时,NVDIMM PMem 数据无法恢复。默认情况下,HA 不会尝试在另一台主机上重新启动此虚拟机。如果允许 HA 在主机发生故障时对虚拟机进行故障切换,将在具有新的空 NVDIMM 的另一台主机上重新启动虚拟机。
  2. 要在现有虚拟机上启用 HA,请浏览到该虚拟机。
    1. 虚拟机硬件下,单击编辑
    2. 选择 NVDIMM。
    3. 单击允许在另一个主机上对所有 NVDIMM 设备进行故障切换复选框。
    4. 单击确定
      主机出现故障时,HA 将在另一个主机上使用新的空 NVDIMM 重新启动此虚拟机。

vSphere HA 准入控制 PMem 预留

准入控制是 vSphere HA 用于确保集群内的故障切换容量的一种策略。

增加允许的潜在主机故障数将增加可用性限制和预留容量。可以预留一定比例的永久内存作为主机故障切换容量。这是被阻止且在主机关闭电源时必须考虑在内的实际存储容量。

编辑集群设置下,可以选择准入控制以指定主机允许的故障数。

如果选择通过以下项定义的 CPU/内存预留:

  • 集群资源百分比,即使集群中的虚拟机当前未使用永久内存,集群中的部分永久内存容量也会专用于故障切换用途。此百分比可以通过替代指定,也可以根据允许的主机故障数设置自动计算得出。启用 PMem 准入控制后,即使有虚拟机使用 PMem 作为磁盘,也会在集群中预留 PMem 容量。
  • 插槽策略 (已打开电源的虚拟机),永久内存准入控制将“插槽策略”替代为“集群资源百分比”策略,仅适用于永久内存资源。百分比值根据集群允许的主机故障数目设置自动计算得出,无法替代。
  • 专用故障切换主机,专用故障切换主机的永久内存专用于故障切换用途,且无法在这些主机上置备具有永久内存的虚拟机。
注: 选择准入控制策略后,还必须单击 预留永久内存故障切换容量复选框才能启用 PMem 准入控制。

vSphere 内存监控和修复

vMMR 收集数据并显示性能统计信息,以便您可以确定应用程序工作负载是否因内存模式而出现性能下降问题。

可以在应用直接访问模式或内存模式下,在 BIOS 设置中配置 Intel Optane 永久内存。在应用直接访问模式下,永久内存可以作为字节可寻址永久内存和 DRAM 一起访问。在内存模式下,DRAM 将成为硬件缓存,较大的 PMem 将变为易失性内存并显示为系统内存。

内存模式对虚拟机不可见且透明。在内存模式下配置系统后,系统将显示为具有 DRAM 的传统系统。一个集群可以包含一组具有不同配置的主机。vSphere 显示有关处于内存模式的系统的其他信息。ESXi 可对用于收集主机级别和虚拟机级别统计信息的相关信息的性能计数器进行编程。这些性能统计信息用于创建警报。还可以在性能图表中跟踪统计信息。

可以通过主机摘要选项卡下的内存分层: 硬件和一些其他详细信息了解系统是否处于内存模式。

屏幕截图在主机“摘要”选项卡下的“内存分层: 硬件”中显示系统处于内存模式,并显示其他详细信息。

还可以在配置 > 硬件 > 概览 > 内存下查看 DRAM 和 PMEM 的大小。

屏幕截图在“配置”>“硬件”>“概览”>“内存”下显示 DRAM 和 PMEM 的大小。

ESXi 收集并公开两种内存统计信息:

  • 主机级别统计信息:内存子组件通过对性能计数器进行编程衡量 DRAM 和 PMem 性能。主机级别统计信息包括不同内存类型(DRAM、PMem)的总计、读取/写入带宽、读取/写入延迟和丢失率。
  • 虚拟机级别统计信息:vSphere 监控性能计数器,获取有关虚拟机的 DRAM 和 PMEM 读取带宽数据。

主机和虚拟机的性能图表下都有新的“内存”窗格。该窗格将显示内存详细信息,如“内存利用率”、“内存回收”以及新的统计信息。在 ESXi 主机级别上,可以监控内存带宽和内存丢失率图表。在虚拟机级别,可以查看 PMem 读取带宽和 DRAM 读取带宽。

ESXi 主机的虚拟机选项卡中,可以查看包含驻留在该主机上的所有虚拟机的性能信息的列表。要显示有关内存模式对虚拟机的影响的信息,请单击视图列 (“视图列”图标) 图标,然后选择“活动内存”、“DRAM 读取带宽”和“PMem 读取带宽”衡量指标。

有两个预配置的默认警报,一个在主机级别(主机内存模式活动 DRAM 使用情况较高),另一个在虚拟机级别(虚拟机 PMem 带宽使用情况较高)。如果满足警报条件,将发布事件以触发相应的警报。您还可以根据性能衡量指标创建自定义警报。vMMR 警报仅适用于配置了内存模式的主机。

在集群中启用并完全自动化 DRS 时,如果主机的活动内存利用率高于 DRAM 缓存大小的一定百分比,则 DRS 可能会将某些虚拟机移出主机以均衡负载。

有关详细信息,请参见《vSphere 监控和性能》

注: Intel Broadwell、 Skylake、 Cascade Lake 和 Ice Lake 平台支持 vMMR。主机级别的 DRAM 统计信息在这些平台上可用。主机和虚拟机级别的 PMem 统计信息仅在内存模式下配置的 Cascade Lake 和 Ice Lake 主机中可用。