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


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

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

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

对实例使用文件支持内存有限制:

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

先决条件

  • ram_allocation_ratio 必须设置为节点上的 "1.0",并且节点的任何主机聚合都添加到其中。
  • reserved_host_memory_mb 必须设为 "0"。
  • oc 命令行工具已安装在您的工作站上。
  • 以具有 cluster-admin 权限的用户身份登录 Red Hat OpenStack Services on OpenShift (RHOSO)。
  • 您已选择 OpenStackDataPlaneNodeSet CR,用于定义哪些节点对实例使用文件支持内存。有关创建 OpenStackDataPlaneNodeSet CR 的更多信息,请参阅 Deploying Red Hat OpenStack Services on OpenShift 指南中的使用预置备节点创建 OpenStackDataPlaneNodeSet CR

流程

  1. 创建或更新名为 nova-extra-config.yamlConfigMap CR,并在 [libvirt] 下设置参数的值:

    apiVersion: v1
    kind: ConfigMap
    metadata:
       name: nova-extra-config
       namespace: openstack
    data:
       30-nova-file-backed-memory.conf: |
          [libvirt]
          file_backed_memory = 1048576

    有关创建 ConfigMap 对象的更多信息,请参阅 创建和使用配置映射

  2. 可选: 要将目录配置为存储内存后备文件,请设置 memory_backing_dir 参数。默认内存后备目录为 /var/lib/libvirt/qemu/ram/

    [libvirt]
    file_backed_memory = 1048576
    memory_backing_dir = <new_directory_location>
    • <new_directory_location > 替换为内存后备目录的位置。

      注意

      您必须在位于 或默认目录位置 /var/lib/libvirt/qemu/ram/ 的某一目录中找到您的后备存储。您还可以更改后备存储的主机磁盘。如需更多信息,请参阅 更改内存后备目录主机磁盘

  3. 创建新的 OpenStackDataPlaneDeployment CR,以在 data plane 节点上配置服务并部署数据平面,并将它保存到工作站上名为 compute_file_backed_memory_deploy.yaml 的文件中:

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneDeployment
    metadata:
       name: compute-file-backed-memory
  4. compute_file_backed_memory_deploy.yaml 中,指定 nodeSets 以包含您要部署的所有 OpenStackDataPlaneNodeSet CR。确保包含您选择的 OpenStackDataPlaneNodeSet CR。该 OpenStackDataPlaneNodeSet CR 定义您要为文件支持内存指定的节点。

    警告

    您只能配置整个节点集。不支持在节点集合中重新配置节点的子集。如果您需要在节点集合中重新配置节点子集,您必须缩减节点设置,并从之前删除的节点创建新节点集。

    警告

    如果您的部署有多个节点集,对 nova-extra-config.yaml ConfigMap 的更改可能会直接影响多个节点集,具体取决于节点集和 DataPlaneServices 的配置方式。要检查节点集是否使用 nova-extra-config ConfigMap,因此会受到重新配置的影响,请完成以下步骤:

    1. 检查节点集的服务列表,并查找指向 nova 的 DataPlaneService 的名称。
    2. 确保 DataPlaneServiceedpmServiceType 字段的值设置为 nova

      如果 DataPlaneServicedataSources 列表包含名为 nova-extra-configconfigMapRef,则此节点会使用此 ConfigMap,因此会受到此 ConfigMap 中的配置更改的影响。如果某些受影响的节点集合不应重新配置,您必须创建一个指向这些节点集的单独 ConfigMap 的新 DataPlaneService

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneDeployment
    metadata:
       name: compute-file-backed-memory
    spec:
       nodeSets:
         - openstack-edpm
         - compute-file-backed-memory
         - ...
         - <nodeSet_name>
    • <nodeSet_name > 替换为您要包含在 data plane 部署中的 OpenStackDataPlaneNodeSet CR 的名称。
  5. 保存 compute_file_backed_memory_deploy.yaml 部署文件。
  6. 部署数据平面:

    $ oc create -f compute_file_backed_memory_deploy.yaml
  7. 验证 data plane 是否已部署:

    $ oc get openstackdataplanenodeset
    
    NAME                       STATUS MESSAGE
    compute-file-backed-memory True   Deployed
  8. 访问 openstackclient 的远程 shell,并验证部署的 Compute 节点是否在 control plane 上可见:

    $ oc rsh -n openstack openstackclient
    
    $ openstack hypervisor list

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

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

流程

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

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

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

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

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部