从共享挂载挂载应用程序二进制文件的优缺点是什么?

Bre*_*ire 3 application-server mount

在应用程序节点集群中,将应用程序二进制文件放置在共享安装上并让每个节点安装该文件,而不是在每个节点上安装单独的二进制文件副本,有什么优点/缺点?

有没有什么使一种方法或另一种方法特别糟糕?

谢谢

eww*_*ite 6

当我开始从事金融行业时,我运行的系统由消费/按摩数据的网关系统、做出交易决策的计算节点、为应用程序提供服务/集中日志记录的 NFS 服务器以及将它们绑定在一起的大量网络组成。我们还集中了 crontab 调度和应用程序监控配置,并将它们放置在 NFS 挂载上。

这是基于 NFSv3 的,好处是,嗯...

  • 轻松的应用程序分发:一个安装。一处进行更改。
  • 与这些应用程序相关的数据的简单管理。

缺点:

  • 容易出错:一个安装。一处搞砸更改的地方。
  • 可扩展性:除非您还将存储集群化,否则中央安装将对其可以有效服务的客户端数量设置上限。
  • 单点故障 (SPOF):同样,集群存储可以缓解这种情况,但这是一个考虑因素。假设使用 NFS,如果您需要重新启动服务器会发生什么?如果 NFS 服务器丢失或不可用,集群节点是否会在启动时挂起?
  • 权限:您将如何跨集群节点管理权限。本地服务帐户?匹配 UID/GID?就我而言,我使用了 NIS,后来又使用了 LDAP。目录服务在这里会很有帮助。
  • 性能:您在这里依赖网络和交换基础设施。本地磁盘上的应用程序加载、日志记录等性能将比在线速度更快。
  • 调整 NFS 很难,而且大多数人都做得不好:)

这些天来,你可以部署,并通过配置管理系统管理软件(木偶厨师Ansible等等)。或者更好的是,使用操作系统的原生打包方式(RPM、.deb)并通过配置管理进行部署:

  • 这将删除 SPOF。
  • 本地化应用程序应该具有性能优势。
  • 简化网络:例如,如果您扩展到多个位置怎么办?
  • 可以提供更精细的控制:例如,将二进制文件分发到系统的子集,而不是整个集群。
  • 自我记录。

鉴于此,我可能会推荐应用程序的单独副本,而不是使用共享挂载。

  • 我不同意你的结论,但关于 NFS 调优的主题——#1 建议是询问供应商/检查你的 NFS 服务器的文档,你的客户端应该使用哪些 NFS 挂载选项。#2 建议是使用带有巨型帧的专用网络。(我想你可能知道所有这些,但希望它对读者有用。) (2认同)