在 Ubuntu 上从镜像文件树运行多个应用程序

在 Ubuntu 上从镜像文件树运行多个应用程序

我有大量 Apache 服务器,它们都为各种 Rails 应用程序提供服务。所有服务器的代码库都相同,但应用程序允许用户上传。

问题是,我如何才能最好地管理这里的文件系统?我只想将代码部署到一个位置,并且还希望用户上传的内容可供集群上的任何节点使用。

本质上,我猜我正在寻找一个所有服务器都可以使用的单一文件系统。这个文件系统性能好吗?镜像是更好的选择吗,还是某种共享网络文件系统?

你会怎么办?

服务器都是Ubuntu Linux。

答案1

您可以查看集群文件系统,例如 GFS 或 OCFS。其他方面,NFS 可能适用 - 不过我怀疑您可能遇到了过时文件句柄的问题,因为我们曾尝试使用 NFS 来处理类似的事情。这取决于您的应用程序如何工作。

我们有三个网络服务器和一个临时服务器。临时服务器将文件推送到 NFS 上的网站内容。

我对这个问题的理解(因为我没有参与调查或修复,所以理解得比较粗略)是,网络服务器会打开一个文件,比如 index.html,然后临时服务器会推出一份新的 index.html 副本。新版本会覆盖旧版本,但当网络服务器读取它时,它们会收到过时文件句柄错误,因为它们仍然引用了旧版本的文件,而旧版本已被新文件覆盖并替换。因此,它们试图引用一个它们有文件句柄的文件,但该文件并不存在。

答案2

如果用户上传的性能至关重要,请使用镜像。否则,请使用 nfs。如果您有大量包含大量应用程序的服务器,我假设您在 Rails 中实施了某种缓存。

安德斯

相关内容