3.4. 配置 Compute 节点,为实例使用由文件支持的内存

您可以通过将 libvirt 内存后备目录中的文件分配为实例内存内存内存,使用文件支持的内存来扩展 Compute 节点内存容量。您可以配置可用于实例内存的主机磁盘量,以及实例内存文件磁盘上的位置。

Compute 服务向放置服务报告为文件支持的内存配置的容量,作为系统内存容量总量。这允许 Compute 节点托管比系统内存通常适合更多的实例。

要将文件支持的内存用于实例,您必须在 Compute 节点上启用由文件支持的内存。

限制

  • 您无法在启用了文件支持内存的 Compute 节点和没有启用文件支持的内存的 Compute 节点间实时迁移实例。
  • 文件支持的内存与巨页不兼容。使用巨页的实例无法在启用了文件支持的内存的 Compute 节点上启动。使用主机聚合来确保使用巨页的实例不会放在启用了文件支持内存的 Compute 节点上。
  • 文件支持的内存与内存过量使用不兼容。
  • 您不能使用 NovaReservedHostMemory 为主机进程保留内存。当使用文件支持的内存时,保留内存对应于没有为文件支持的内存设置磁盘空间。文件支持的内存作为系统内存总量报告给放置服务,RAM 用作缓存内存。

先决条件

  • NovaRAMAllocationRatio 必须在节点上设置为 "1.0",并且节点添加到的任何主机聚合。
  • NovaReservedHostMemory 必须设为 "0"。

流程

  1. 打开您的计算环境文件。
  2. 通过在 Compute 环境文件中添加以下参数,将主机磁盘空间(以 MiB 为单位)配置为可用于实例 RAM:

    parameter_defaults:
      NovaLibvirtFileBackedMemory: 102400
  3. 可选: 要将目录配置为存储内存后备文件,请在 Compute 环境文件中设置 QemuMemoryBackingDir 参数。如果没有设置,内存后备目录默认为 /var/lib/libvirt/qemu/ram/

    注意

    您必须将后备存储位于位于默认目录位置( /var/lib/libvirt/qemu/ram/ )的目录中。

    您还可以更改后备存储的主机磁盘。如需更多信息,请参阅 更改内存后备目录主机磁盘

  4. 保存对 Compute 环境文件的更新。
  5. 使用其他环境文件将计算环境文件添加到堆栈中,并部署 overcloud:

    (undercloud)$ openstack overcloud deploy --templates \
      -e [your environment files] \
      -e /home/stack/templates/<compute_environment_file>.yaml

3.4.1. 更改内存后备目录主机磁盘

您可以将内存后备目录从默认主磁盘位置移到替代磁盘。

流程

  1. 在替代的后备设备中创建文件系统。例如,输入以下命令在 /dev/sdb 上创建 ext4 文件系统:

    # mkfs.ext4 /dev/sdb
  2. 挂载后备设备。例如,输入以下命令将 /dev/sdb 挂载到默认 libvirt 内存后备目录中:

    # mount /dev/sdb /var/lib/libvirt/qemu/ram
    注意

    挂载点必须与 QemuMemoryBackingDir 参数的值匹配。