可以指定客户机交换文件的位置、当内存超额分配时预留交换空间以及删除交换文件。

vmmemctl 驱动程序不可用或未响应时,ESXi 主机会使用交换从虚拟机中强制回收内存。

  • 从未安装。
  • 它已明确被停用。
  • 未运行(例如,客户机操作系统正在引导时)。
  • 暂时无法以足够快的速度回收内存来满足当前系统需求。
  • 正常工作,但是已经达到最大膨胀大小。

当虚拟机需要页面时,标准需求分页技术会重新换入页面。

交换文件位置

默认情况下,会在与虚拟机配置文件相同的位置中创建交换文件,该位置可以位于 VMFS 数据存储、vSAN数据存储或 VMware vSphere® Virtual Volumes™ 数据存储中。在 vSAN数据存储或 vVols 数据存储中,交换文件可作为独立的 vSAN 或 vVols 对象进行创建。

打开虚拟机电源时,ESXi主机会创建交换文件。如果无法创建该文件,则无法打开虚拟机电源。除了接受默认值以外,您还可以:

  • 使用每个虚拟机配置选项将数据存储更改为另一个共享的存储位置。
  • 使用主机-本地交换在主机上指定存储在本地的数据库存储。这样就可以在每个主机级别上进行交换,从而节省 SAN 上的空间。但是,对于 vSphere vMotion,可能会导致性能稍有下降,因为交换到源主机上的本地交换文件的页面必须通过网络传输到目标主机。当前无法为主机-本地交换指定 vSAN和 vVols 数据存储。

为 DRS 集群启用主机-本地交换

主机-本地交换允许将存储在主机本地的数据存储指定为交换文件位置。可以为 DRS 集群启用主机-本地交换。

过程

  1. vSphere Client 中,浏览到集群。
  2. 单击配置
  3. 配置下,选择常规以查看交换文件位置,然后单击编辑对其进行更改。
  4. 选择由主机指定的数据存储选项,然后单击确定
  5. vSphere Client 中,浏览到集群中的主机之一。
  6. 单击配置
  7. 在“虚拟机”下,选择交换文件位置
  8. 单击“编辑”,选择要使用的本地数据存储,然后单击确定
  9. 对集群中的每台主机重复 步骤 5步骤 8

结果

现在已为 DRS 集群启用主机-本地交换。

为独立主机启用主机-本地交换

主机-本地交换允许将存储在主机本地的数据存储指定为交换文件位置。可以为独立主机启用主机-本地交换。

过程

  1. vSphere Client 中,浏览到主机。
  2. 单击配置
  3. 虚拟机下,选择交换文件位置
  4. 单击编辑,然后选择所选数据存储
  5. 从列表中选择本地数据存储,然后单击确定

结果

现在已为独立主机启用主机-本地交换。

交换空间和内存过载

必须在每个虚拟机交换文件中为任何未预留的虚拟机内存预留交换空间(预留和配置内存大小之间的差值)。

需要该交换预留来确保 ESXi 主机在任何情况下均能预留虚拟机内存。实际上,只有一小部分主机级别的交换空间可能会用到。

如果正在通过 ESXi 使内存过载以支持由膨胀导致的客户机内部交换,请确保客户机操作系统还有足够的交换空间。该客户机级别交换空间必须大于或等于虚拟机配置内存大小与其“预留”之间的差值。

小心: 如果内存过载且客户机操作系统配置的交换空间不足,则虚拟机中的客户机操作系统可能会出现故障。

为了避免虚拟机出现故障,请增加虚拟机中交换空间的大小。

  • Windows 客户机操作系统 — Windows 操作系统将其交换空间称为分页文件。如果有足够的可用磁盘空间,一些 Windows 操作系统会尝试自动增加分页文件的大小。

    请查看 Microsoft Windows 文档或搜索 Windows 帮助文件来了解“分页文件”。按照说明更改虚拟内存分页文件的大小。

  • Linux 客户机操作系统 — Linux 操作系统将其交换空间称为交换文件。有关增加交换文件的信息,请参见以下 Linux 手册页:
    • mkswap — 设置 Linux 交换区。
    • swapon — 针对分页和交换启用设备和文件。

具有大量内存和较小虚拟磁盘的客户机操作系统(例如,具有 8 GB 内存和 2 GB 虚拟磁盘的虚拟机)更容易出现交换空间不足的情况。

注: 不要将交换文件存储在精简置备的 LUN 上。运行交换文件存储在精简置备的 LUN 上的虚拟机会导致交换文件增长失败,从而可能会导致虚拟机终止。

创建大型交换文件(例如,大于 100 GB 的文件)时,打开虚拟机电源所花的时间会显著增加。为避免出现这种情况,请为大型虚拟机设置较大的预留。

还可使用主机-本地交换文件将交换文件置于开销较小的存储器中。

配置主机的虚拟机交换文件属性

可通过配置主机的交换文件位置来确定虚拟机交换文件在 vSphere Client 中的默认位置。

默认情况下,虚拟机的交换文件位于数据存储上包含其他虚拟机文件的文件夹中。但是,可将主机配置为将虚拟机交换文件置于备用数据存储上。

可以使用该选项将虚拟机交换文件放到成本较低或性能较高的存储上。也可替换单一虚拟机的此主机级设置。

设置备用交换文件位置可能会导致使用 vMotion 迁移速度缓慢。为获得最佳 vMotion 性能,请将虚拟机存储在本地数据存储中,而不是与虚拟机交换文件存储在同一目录中。如果虚拟机存储在本地数据存储中,存储交换文件和其他虚拟机文件将无法提高 vMotion 的性能。

前提条件

所需特权:主机.配置.存储分区配置

过程

  1. vSphere Client 中,浏览到主机。
  2. 单击配置
  3. 虚拟机下,单击交换文件位置

    此时会显示选定的交换文件位置。如果选定主机不支持交换文件位置的配置,则此选项卡将指示该功能不受支持。

    如果主机属于集群的一部分,且集群设置指定交换文件与虚拟机存储在同一目录中,则无法从配置下的主机编辑交换文件位置。要更改此类主机的交换文件位置,请编辑集群设置。

  4. 单击编辑
  5. 选择存储交换文件的位置。
    选项 描述
    虚拟机目录 将交换文件存储在与虚拟机配置文件相同的目录中。
    使用特定数据存储 在您指定的位置存储交换文件。

    如果无法将交换文件存储到主机指定的数据存储中,则交换文件必须与虚拟机存储在同一文件夹中。

  6. (可选) 如果选择使用特定数据存储,请从列表中选择数据存储。
  7. 单击确定

结果

虚拟机交换文件将存储在选定位置。

配置集群的虚拟机交换文件位置

默认情况下,虚拟机的交换文件位于数据存储上包含其他虚拟机文件的文件夹中。但是,您可以配置集群内的主机,将虚拟机交换文件置于自己选择的替代数据存储上。

根据您的需求,可以配置备用交换文件位置,以将虚拟机交换文件置于成本较低或性能较高的存储上。

前提条件

在配置集群的虚拟机交换文件位置之前,必须按照配置主机的虚拟机交换文件属性中的说明配置集群内主机的虚拟机交换文件位置。

过程

  1. 浏览到集群。
  2. 单击配置
  3. 选择配置 > 常规
  4. 在“交换文件位置”旁,单击编辑
  5. 选择存储交换文件的位置。
    选项 描述
    虚拟机目录 将交换文件存储在与虚拟机配置文件相同的目录中。
    由主机指定的数据存储 将交换文件存储在主机配置中指定的位置。

    如果无法将交换文件存储到主机指定的数据存储中,则交换文件必须与虚拟机存储在同一文件夹中。

  6. 单击确定

删除交换文件

如果主机失败,并且该主机所具有的正在运行的虚拟机使用交换文件,则这些交换文件会继续存在并消耗数 GB 的磁盘空间。您可以删除这些交换文件,从而消除此问题。

过程

  1. 重新启动故障主机上的虚拟机。
  2. 停止该虚拟机。

结果

该虚拟机的交换文件即会删除。