开发者社区> 问答> 正文

SLB下的多台ECS服务器双向同步技术讨论帖

SLB下的多台ECS服务器双向同步技术讨论帖
本帖希望能一直刷新到有完整的解决方案为止,因为本人是技术小白,对于服务器是半桶水,但相信万能的互联网与高手云集的阿里社区总能解决的。

问题需求:
我在SLB下建了6台ECS,其中两台是堡垒机。有4台是WEB服务器,数据库用了RDS
因为阿里还没有服务器间数据同步的功能,所以需要自己搭建服务器间的同步服务。
[attachment=76332]



解决方案:
1、rsync同步
我在网上看了几个rsync的同步方案,我理解的是rsync是主服务器->客户机 的单向同步,所以要实现双向同步,是不是要ECS-A做服务器又做客户端,不知道理解是否正确?

2015-06-04更新:非常感谢版主“云目录”的回复,而且版主做的教程也很详细,这个帖子也是早已拜读。


利用Rsync服务SLB下多台centos服务器网站文件同步更新


但是这个方法的内容是:

我们将SLB下面两台服务器分别为服务器A与服务器B,服务器A为主服务器,但需要注意的是必须在服务器A和服务器B上都安装RSYNC,其中A服务器是以服务器模式运行,而B是以客户端方式运行RSYNC。这样在WEB服务器A上运行RSYNC的守护进程,在B上定时运行客户端程序来备份A服务器上需要备份的内容。

所以,好像没有实现双向同步,所以才想问是不是要A做服务器又做客户端,这样来实现?


2、rsync+unison+inotify双向实时同步
      网上的解决方案:

我自己还没有实践,明天才能做,到时反馈!
希望有经验的同学能发一些回复,让后来者少走弯路!
本文未完……



【结帖了,最终发现SLB下不应该让程序有动态变化,而应该是无状态的。使用OSS来存贮附件,RDS来存储数据。】




展开
收起
李金东 2015-05-31 19:30:50 19761 0
11 条回答
写回答
取消 提交回答
  • 最佳回答:

    我看官方的OSS文档:OSS不支持涉及到需要服务器端处理的内容,例如PHP,JSP,APS.NET等。

    如果我是PHP的网站,如果我想使用OSS,是否必须将静态里面分离出来放在OSS上,然后将PHP保留

    这又涉及到改后端的PHP代码,开发估计是不会想改的

    所以目前我只能试着用unison来做双向同步了

    官方帮助文档地址:阿里云帮助中心

    更多参考: 阿里云官网(新用户需注册查看),可领上云红包

    2021-07-08 18:26:38
    赞同 展开评论 打赏
  • ReSLB下的多台ECS服务器双向同步技术讨论帖
    不用这么复杂  要么用阿里云的NAS  要么买一个地区的用阿里云ECS自建  NAS  然后另外一台挂载NAS  那么数据盘都是一样的啦
    2017-02-23 08:52:26
    赞同 展开评论 打赏
  • 回 10楼李金东的帖子
    双向同步也较容易实现,可以通过rsync+sersync或者rsync+inotify或者inofity+unison的方式都可以实现

    -------------------------

    回 10楼李金东的帖子
    那个人根本解决不了,不要理会
    2016-10-22 20:24:47
    赞同 展开评论 打赏
  • ReSLB下的多台ECS服务器双向同步技术讨论帖
    论坛或者动态写入缓存等程序,建议使用 http://oss.linbit.com/csync2/  实现双向同步. 这程序很多大型论坛在使用
    2015-08-07 14:29:31
    赞同 展开评论 打赏
  • ReSLB下的多台ECS服务器双向同步技术讨论帖
    我看官方的OSS文档:OSS不支持涉及到需要服务器端处理的内容,例如PHP,JSP,APS.NET等。
    如果我是PHP的网站,如果我想使用OSS,是否必须将静态里面分离出来放在OSS上,然后将PHP保留
    这又涉及到改后端的PHP代码,开发估计是不会想改的
    所以目前我只能试着用unison来做双向同步了
    2015-07-28 09:20:52
    赞同 展开评论 打赏
  • ReSLB下的多台ECS服务器双向同步技术讨论帖
    附件或 上传目录用oss挂载到服务器上,实现实时同步,数据库用rds,
    页面程序可以用rsync,单向增量同步,例如A是服务器 B是客户机,页面程序更新到A A再定时同步到B
    现在问题来了 rsync,如果有A B C三台esc服务器,如何实现A同步到B A同步到C,我看到的rsync案例一直都是只有A B两台机器的
    2015-06-30 17:11:41
    赞同 展开评论 打赏
  • ReSLB下的多台ECS服务器双向同步技术讨论帖
    没那么麻烦,用oss存储文件就搞定了。
    2015-06-11 17:29:46
    赞同 展开评论 打赏
  • 回2楼chinaoc的帖子
    谢谢2楼的提醒!,,SLB!

    -------------------------

    非常感谢

    -------------------------

    Re回3楼mytsing520的帖子
    我们将SLB下面两台服务器分别为服务器A与服务器B,服务器A为主服务器,但需要注意的是必须在服务器A和服务器B上都安装RSYNC,其中A服务器是以服务器模式运行,而B是以客户端方式运行RSYNC。这样在WEB服务器A上运行RSYNC的守护进程,在B上定时运行客户端程序来备份A服务器上需要备份的内容。


    这样貌似还没有办法实现双向同步,因为我问过SLB,他们说SLB是均衡负载,不是主从服务器的概念,所以即使设A服务器的权重为100,B服务器为10,用户也有可能先访问到B服务器,如果这时候用户的访问产生一些文件,那就无法同步到A服务器了。。

    所以解决方案是不是要ECS-A做服务器又做客户端,ECS-B也做服务器又做客户端?这样来实现双向同步,但似乎这样有点繁琐,因为如果是多台服务器的话不就很多的主从。不知道RSYNC本身有没有双向同步的方法?

    -------------------------

    Re:回 7楼(李金东) 的帖子
    引用第8楼云目录于2015-06-08 11:50发表的 回 7楼(李金东) 的帖子 :
    发现你偏激了,SLB和同步是没有多少关系的。

    现在问题解决了:最终没有实现双向同步的问题,而是使用OSS来存贮附件,让程序保持无状态。修改了一些程序,之前总是不愿意改自己的程序,后面发现改自己的程序可以省掉好多麻烦。多台ECS的同步是按照版主的帖子做的。感谢!
    2015-06-04 10:55:05
    赞同 展开评论 打赏
  • http://bbs.aliyun.com/read/245376.html?spm=5176.7189909.0.0.cLA8D5
    这里有同步教程。

    -------------------------

    回 7楼(李金东) 的帖子
    发现你偏激了,SLB和同步是没有多少关系的。
    2015-06-03 18:33:38
    赞同 展开评论 打赏
  • SLB,不是SBL
    2015-06-03 12:10:58
    赞同 展开评论 打赏
  • 用心服务
    用 CloudFS 试一试
    2015-06-02 17:55:44
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载