【问题标题】:Is puppet efficient in synchronizing large files?puppet 在同步大文件方面效率高吗?
【发布时间】:2015-07-28 17:47:39
【问题描述】:

puppet 处理大文件的效率如何?给你一个具体的例子:

假设我们正在处理以千兆字节为单位的配置数据(存储在文件中)。 Puppet 需要确保文件在每次代理运行时都是最新的。

问题:puppet 是预先执行某种文件摘要类型的操作,还是只是在代理运行期间虚拟复制每个配置文件?

【问题讨论】:

    标签: puppet


    【解决方案1】:

    使用file { 'name': source => <URL> }时,文件内容不会通过网络发送,除非master和agent之间存在校验和不匹配。默认校验和类型为 md5。

    注意filecontent 属性。它的价值是目录的一部分。不要通过file()template() 函数为其分配大文件的内容。

    所以是的,您可以通过 Puppet 从技术上管理任意大小的文件。在实践中,我尽量避免它,因为 Puppet 的所有文件都应该是 git repo 或类似文件的一部分。不要把你的 tarball 推到里面。 Puppet 可以通过其他方式(包、HTTP 等)部署它们。

    【讨论】:

    • 大文件其实是配置文件,应用启动时会加载到内存中。
    • @LiviuChircu 出于好奇:什么样的软件会使用这么大的配置文件?
    • 好吧,也许“配置”这个词不好。让我们称它们为“数据库文件”。将每个 DB 文件存储在每个节点上并在运行时将其缓存,而不是在每次应用程序重启时通过网络读取数据,这根本不昂贵。 SQLite 或将数据打包到 RPM 等替代方案太过分了。
    【解决方案2】:

    我现在不完全确定 puppets 文件服务器在最新更新中工作,但在以前的版本中,Puppet 将文件读入内存,这就是为什么不建议使用文件服务器传输大于 1gb 的文件的原因。我建议你仔细阅读这些答案,看看是否有意义https://serverfault.com/a/398133

    【讨论】:

    • 不,如果可能的话,现在文件是流式传输的。
    猜你喜欢
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多