当 file_roots 中有大量文件时,salt-master 非常慢

问题描述 投票:0回答:1

我想使用 file.recurse 从 /opt 复制主根之外的目录:

file_roots:
  base:
    - /data/salt/roots
    - /opt

这确实有效,但它使得调用即使是像这样的简单状态也非常非常慢,即使仅应用于 salt master 本身 - 每次约 25 秒:

local-groups:
  group.present:
   - name: apache

打开 salt master 上的跟踪显示 salt-master 每次应用任何状态时都会检查整个 /opt 树中的每个文件 - 在我的情况下,各个 /opt 子目录中约有 50,000 个文件;从列表中删除 /opt 使状态应用程序恢复到正常速度。

为什么要这么做?

有没有办法让master在每次应用状态时停止检查或重新索引file_roots?

操作系统:Rocky 8

Salt 版本:3006.3(来自 Salt Project yum 存储库的 rpm)

salt-stack
1个回答
1
投票

编译状态时,它使用所有可用状态的列表来检查包含情况。不幸的是,这涉及扫描整个文件服务器来构建列表。

如果不进行一些核心重写,就无法避免它。唯一的解决方案是避免使用非常大的 Salt 文件服务器,而是使用例如

http
ftp
s3
将您的内容提供给小黄人。

https://github.com/saltstack/salt/issues/65348


请注意,文件根目录下的任何内容不仅可供所有小黄人使用,而且还有可能用恶意内容覆盖您的配置。因此,您应该始终避免在不考虑适当的访问控制的情况下将文件系统的任意块添加到 salt 中。

© www.soinside.com 2019 - 2024. All rights reserved.