我想要有 2 个相同的 Web 服务器:一个主服务器和一个从服务器。主服务器上新修改/创建的文件应立即复制到从服务器上(在一分钟内)。
我不想使用 rsync,因为它会扫描所有文件来计算要发送的增量。我不想使用像 GLUSTER 这样的分布式文件系统,因为我担心它可以接受大量小写入。不过,我可以接受等待一分钟将所有修改刷新到从属服务器。
您知道我应该使用什么工具吗?
答案1
我还没有尝试过,但这可能会满足你的要求。
答案2
我不明白您为什么不想使用 rsync;毕竟,这正是它的用途……
既然您说不想使用集群文件系统,那么使用 ServerA 上的 www 文件夹(共享/导出)将其作为 wwwRoot 安装到 ServerB 上怎么样?ServerB 不使用复制,而是使用完全相同的文件。
答案3
如果你将 Web 应用程序的文件保留在版本控制中,(你做如果您的文件已放入版本控制中,不是吗?),您可以编写一个脚本从 VCS 中拉取这些文件并重新启动 Web 服务器服务(Apache、NGINX 等)。您甚至可以在 cron 下运行此脚本,这样每次更新 repo 时(我建议检查标签而不是分支或仅检查主控),它都会自动更新网站。
答案4
drbd 允许块级复制,但是,如果您在从服务器上执行任何写入操作,则可能需要使用 OCFS2 或 GFS 来支持集群锁定。如果您可以从从服务器上 NFS 挂载主服务器,并且可以将写入直接发送到 NFS 挂载,则可以避免使用集群锁定文件系统。
GlusterFS 会更加无缝,但是,很多微小的写入似乎有时会积压。OpenAFS 类似,但几乎任何分布式文件系统都符合要求。双节点 HDFS 可能也能满足您的需要。
@gwaldo,至于不使用 rsync,如果您有数十万个文件,遍历树来找到修改的文件可能需要一分钟以上的时间。