有没有办法在Ubuntu上镜像两个服务器?

前端之家收集整理的这篇文章主要介绍了有没有办法在Ubuntu上镜像两个服务器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道是否有可能镜像两台服务器,比如你可以将文件上传到一台服务器而且它们会推送到另一台服务器等等.我更好奇的是文件镜像,它不需要镜像包管理和设置(但那也很酷!)
这在很大程度上取决于手头的工作.

为什么需要文件镜像.您是否希望更新类似网站或内容存储库的内容,通常可以定期更新.或者您需要实时同步数据?

对于文件的定期异步镜像,通常就有一个可以将所有数据上传到的临时区域.从您将其分发到服务器的位置.
在您的情况下 – 使用两台服务器 – 您可以在srv1上创建一些暂存文件共享到您传输数据的位置(通过FTP,NFS,DAV,SFTP等),然后让cronjob将文件rsync到“实时”目录srv1和srv2.
在这种情况下,使用rsync的最简单方法生成一个ssh密钥对,用于数据传输,并在集群中的所有服务器上授权.

例:

srv1:/data/staging/  <= is where you upload your data
srv1:/data/production/ <= is where your servers get their production data from
srv2:/data/production/

srv1$cat /etc/cron.d/syncdata.cron
=====
*/5 * * * * syncuser rsync -a --delete /data/staging/ /data/production/
*/5 * * * * syncuser rsync -az --delete -e ssh /data/staging/ srv2:/data/production/
=====

这应该给你一个基本的想法.当然,您可能希望在某些脚本中包装rsync调用并实现正确的锁定,以便在同步超过5分钟等情况下它不会运行两次.此外,不言而喻,暂存区域不是必需的.您也可以直接将srv1:production同步到srv2:production.仅比srv2可能显示的数据比srv1早5分钟.这可能是一个问题,取决于你如何在两者之间取得平衡.

异步分发文件的另一种方法是将它们打包为rpm或在你的案例deb文件中.将它们放在一个中央存储库中,并通过cfengine,monkey或某些基于diy消息总线的解决方案安装/更新它们.这具有部署数据版本控制的良好副作用,但仅适用于您自己生成和部署的少量数据(如您自己软件的版本).你不希望用这种方式分发TB数据,也不适合镜像高频率变化的内容,就像每隔一分钟一样.

如果您需要近乎实时地复制数据但不一定是同步而不是经常调用cron,您可以使用一些基于inotify的方法(如已提到的incron)来调用同步脚本.另一个可能性是使用Gamin(如果存在于内核中也使用inotify)并编写自己的小同步守护进程.最后但并非最不重要的,如果所有文件都通过例如上传到一个服务器. SFTP您可以检查SFTP服务器是否允许您定义在某些事件(如文件上载)之后调用的挂钩.这样,您可以告诉服务器在上传新数据时触发同步脚本.

如果您需要实时同步镜像数据,则群集文件系统可能是有序的. DRDB已经命名.它非常适合在块级别进行复制,并且通常用于高可用性MysqL设置.您可能还想看看GFS2,OCFS2,Lustre和GlusterFS.虽然Lustre和GlusterFS并不适合两个服务器设置.

原文链接:/ubuntu/348722.html

猜你在找的Ubuntu相关文章