首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使多台服务器保持同步文件的水平?

如何使多台服务器保持同步文件的水平?
EN

Server Fault用户
提问于 2012-12-11 18:18:49
回答 3查看 5.5K关注 0票数 3

我目前正在管理一个PHP服务器集群,所有这些服务器都不同步。我在应用服务器(Magento)之上使用的应用程序允许管理员修改系统上的各种文件,但是现在站点处于群集设置中,修改文件只会在集群中的各个计算机的单个实例(在一个应用服务器上)上进行修改。

是否有一个开放源码的Linux应用程序可以使所有这些服务器保持同步?我不介意创建一个小型VM实例,它可以侦听从机器到同步的更改。理论上,完美的应用程序将有在每台机器上运行的小型客户机进行同步,这些客户机将与主服务器对话,主服务器将决定如何/如何从每台计算机同步。

我已经研究过运行集中式文件服务器的可能性,但不幸的是,我的应用服务器分散在EC2和物理机器之间,这使得这是不可行的。由于有多个应用服务器(其中一些是根据站点的负载动态创建的),因此简单地设置rsync cron作业是不有效的,因为cron作业必须在每台机器上进行修改,才能将文件发送到集群中的每台其他计算机,而这只是一堆不必要的数据传输/ssh连接。

EN

回答 3

Server Fault用户

发布于 2012-12-12 00:45:07

您可能需要考虑使用木偶或CFEngine对服务器进行更改。这样的工具允许您对所有服务器进行受控更改。它们非常有助于保持多台服务器的配置保持同步。

票数 5
EN

Server Fault用户

发布于 2012-12-11 18:31:49

看看GlusterFS。AFAIK它可以在EC2上使用。

它的复制/镜像是基于文件的,并且非常容易设置。文件驻留在节点的本地文件系统上的本地目录中。

特别是在您的情况下,您可以在所有应用服务器和安全地访问此本地目录以读取之间设置镜像,以绕过FUSE开销(但您必须通过glusterfs挂载编写,以便在所有节点上复制文件)。

票数 3
EN

Server Fault用户

发布于 2013-02-02 01:06:55

由于非常熟悉,我不知道有任何Magneto安装会通过正常使用以外的其他方式更改文件或目录

代码语言:javascript
复制
./var/cache   <-- should be on a distributed cache like Redis or Memcache
./var/report  <-- doesn't need to be network replicated
./var/log     <-- doesn't need to be network replicated
./var/locks   <-- the admin node should operate on a single server
./var/session <-- should be on a distributed cache like Redis or Memcache
./media/catalog/product/cache <-- doesn't need to be network replicated

在任何情况下,像NFS这样的网络文件系统都不是一个可靠的选择--除非您有丰富的经验在WAN上保护和优化它。

网络块复制,如。Gluster/DRBD也不是一个好的选择。对于Gluster来说,性能很弱(配置起来也很复杂),DRBD必须使用像OCFS2这样的多主文件系统--这并不理想。

Magento的新版本也支持媒体的DB存储,尽管这不太理想,也不是一个好主意。

版本控制软件(Git/SVN)将照顾您的代码级需求。您可以很容易地添加一个钩子到您的分期机,以执行一个没有触摸的多个拉生产系统。但不会迎合管理员上传(图片等)。

如果只是将所有的管理流量和生产卷重定向到单个节点,然后从该源复制到其余的节点,这就更有实际意义了。

唇同步是一个应用程序,可以满足您的"Dropbox样式“要求,并在必要时执行更改。我们曾多次在Magento集群中使用它。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/457142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档