在 AWS-EC2 中,我设置了一个由 NFS 文件服务器和许多客户端组成的 Linux 虚拟机集群。如果客户端数量超过 20 个,在 I/O 繁忙的情况下,我会遇到文件完整性受损的情况:例如,客户端写入服务器的 gzip 文件已损坏。
我想知道增加哪一组 NFS 参数最好可靠性在此环境中进行数据传输。
目前的挂载标志为:
Flags: rw,vers=3,rsize=262144,wsize=262144,hard,proto=tcp,timeo=600,retrans=2
MTU 大小为 1500,NFS 守护进程的数量为 8。
我是否应该将 rsize 和 wsize 减小到 MTU 以下,并增加 NFS 守护进程的数量?
还有什么可以改进的吗?
非常感谢。
答案1
对于正在使用的集群大小,考虑迁移到并行文件系统可能是一个好主意,例如格鲁斯特或者,如果集群配置正确,则每个节点都应该通过 DNS 或查找了解每个其他节点,/etc/hosts
并且应该具有适当的 ssh 密钥,以便无需密码即可访问它们。
如果是这样,每个节点可以在完成计算/压缩后简单地复制文件,这样就不需要 NFS 了。虽然这种解决方案可能不会提供最佳性能,但根据计算节点、网络和存储虚拟化的性质,它可能是一个不错的选择。
您使用的是哪种集群管理/配置系统?通常在设置头节点时,还会设置用于计算节点的适当共享存储。使用类似沃尔伍尔夫或者岩石可能有助于确保计算节点正确配置,并且有许多使用这些工具在线提供的集群的指南和参考设计。