vps双机热备方案之:sersync2实现服务器文件实时同步

项目地址:http://code.google.com/p/sersync/

sersync主要用于服务器同步,web镜像等功能。基于boost1.43.0,inotify api,rsync command.开发。目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google开源项目Openduckbill(依赖于inotify- tools),这两个都是基于脚本语言编写的。相比较上面两个项目,本项目优点是:

sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。
相比较上面两个项目,sersync配置起来很简单,其中bin目录下已经有基本上静态编译的2进制文件,配合bin目录下的xml配置文件直接使用即可。
另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。
本项目有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则按设定时长对同步失败的文件重新同步。
本项目自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。无需再额外配置crontab功能。
本项目socket与http插件扩展,满足您二次开发的需要。

Sersync安装和配置具体步骤:

虾爷的环境是centos 5.x 32位 所以这里就用centos做演示了,其他系统请大家自己补完

1. 从服务器_0x配置(可以多台,01,02,03):

首先,在两台服务器A和B同时装上rsync:

然后定义rsync的配置文件:

上面配置文件,表明允许主服务器(假设ip为192.168.0.100)访问,rsync同步模块名为[tongbu],将同步过来的文件放入path指定的目录/wwwroot/tongbu.com/
如果有多台从服务器,则每一台都需要进行类似的配置。

配置好之后,使用如下命令,开启rsync守护进程:

2. 在主服务器上安装配置sresync

配置xml文件:

修改如下位置:

表明要将主服务器上本地的 /wwwroot/tongbu.com/ 路径下的文件,同步到远程服务器 192.168.0.104 与 192.168.0.105 上的tongbu 模块。

具体文件详细解释:

接着执行:

通常情况下,对本地到远程整体同步一遍后,在后台运行实时同步。

3.还可以下载sersync 进程监控脚本:http://sersync.googlecode.com/files/checksersync.sh

使用crontab命令来设置监控脚本,监测sersync运行:

执行前请先设置修改 checksersync.sh 中目录参数.

遇到的问题:
启动时提示:

使用指令:

重启已经在运行的rsync:

评论 (1)
  1. 沙发
    卫衣套装 2013-02-05 10:19

    来过。。。。。。。。。