我有大量的 apache 服务器,它们都服务于各种 Rails 应用程序。所有服务器的代码库都是相同的,但应用程序允许用户上传。
问题是,我如何在这里最好地管理文件系统?我只想将代码部署到一个位置,并且还希望集群上的任何节点都可以使用用户上传。
本质上,我想我正在寻找一个所有服务器都可以工作的单一文件系统。这甚至是高性能的吗?镜像是更好的选择,还是某种共享网络文件系统?
你会怎么做?
服务器都是 Ubuntu Linux。
我有大量的 apache 服务器,它们都服务于各种 Rails 应用程序。所有服务器的代码库都是相同的,但应用程序允许用户上传。
问题是,我如何在这里最好地管理文件系统?我只想将代码部署到一个位置,并且还希望集群上的任何节点都可以使用用户上传。
本质上,我想我正在寻找一个所有服务器都可以工作的单一文件系统。这甚至是高性能的吗?镜像是更好的选择,还是某种共享网络文件系统?
你会怎么做?
服务器都是 Ubuntu Linux。
如果用户上传的性能很关键,请使用镜像。否则,使用 nfs。如果你有大量的服务器和大量的应用程序,我假设你在 Rails 中实现了某种缓存。
安德斯
您可以查看集群文件系统,例如 GFS 或 OCFS。其他明智的 NFS,也许 - 虽然我怀疑你可能有过时的文件句柄的问题,因为我们试图为我们使用 NFS 来做类似的事情。这取决于您的应用程序如何工作。
我们有三个 Web 服务器和一个暂存箱。stagin 框将文件推送到 NFS 上的网站内容。
我对这个问题的理解(这是粗略的,因为我没有参与调查或修复)是网络服务器会打开一个文件,比如 index.html,而登台服务器会推出一个新的 index.html 副本。新版本会覆盖旧版本,但是当网络服务器去读取它时,他们得到了陈旧的文件句柄错误,因为他们仍然引用了旧版本的文件,它已经被覆盖并替换为新文件。所以他们试图引用一个他们有文件句柄但不存在的文件。