利用Rsync实现EMOS双机互备

假设邮件服务器已经搭建完毕(参考:企业级开源邮件系统搭建的全过程 ),另一个问题来了,如何保证服务器的安全性及高可用?同步?Rsync?一个很好的同步软件,今天就分享下如何利用Rsync实现EMOS的双机热备,说的双机热备,其实不然,原则上还是冷备。因为当主服务器down了,需要手动切换下,这个其实无所谓,因为服务器嘛,都会做监控报警的,当有报警时,立即更换备服务器的ip即可继续提供服务了。

要想真正意义上实现双机热备,提供思路:

1、首先搭建一台一样的邮件服务器,利用rsync+inotify实现/home目录的实时同步(保证邮件的安全)
2、利用keepalived实现两台mysql双机热备(保证帐号及别名的安全)
3、前台做lvs调度器,来实现负载均衡

好了,言归正传~开始实现把。。

假设我们邮件服务器主机名为mail (192.168.0.1),备份主机名为mailbak(192.168.0.2),则需要做的工作如下:
1. 在两台服务器上分别装上rsync(yum -y install rsync),再一个就是确保提供邮件服务功能;
2. 在备机192.168.0.2上配置rsync服务(服务包系统已经自带,只需配置两个文件 rsyncd.conf 和 rsyncd.secrets 即可)
#vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 4
strict modes =yes
port = 873

[mailbak-update-mysql-extmail]
path = /var/lib/mysql/
comment = This is a test
ignore errors
read only = no
list = no
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.0.1
[mailbak-update-home]
path = /home/
comment = This is a test
ignore errors
read only = no
list = no
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.0.1
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
上述文件的作用是将备份服务器本地的/home/domains目录及/var/lib/mysql/extmail/目录作为同步操作的对象供邮件主服务器实时写入更新的资料
#vim rsyncd.secrets
root:123456                 #认证信息,随意即可,但两端要保持一致

3. 在邮件备份服务器上将同步服务开启,方法是在/etc/rc.d/rc.local文件中加入一行:
/usr/bin/rsync --daemon

这样,备份服务器上的工作完成,然后我们登陆到邮件主服务器192.168.0.1上来操作:
1. 创建一个同步数据的脚本/root/rsync-to-mailbak.sh内容如下(两行):
rsync -rlptgoDvHS --progress --delete --force --password-file=/etc/rsyncd.secrets /home/ root@192.168.0.2::mailbak-update-home
rsync -rlptgoDvHS --progress --delete --force --password-file=/etc/rsyncd.secrets /var/lib/mysql/ root@192.168.0.2::mailbak-update-mysql-extmail

2. 将这个新建的脚本权限变为可执行744或755:
chmod 744 /root/rsync-to-mailbak.sh

3. 在主服务器上创建密码文件/etc/rsyncd.secrets,使其内容和备份服务器上的密码一致。

现在可以试运行一下这个脚本看看效果了,如果是第一次,正常情况你会看到很多数据在拷贝。第二次则很少了,因为所做的是差异对比同步,相同的文件不会再次拷贝。

4. 将这个脚本放到计划任务中,设定每5分钟执行一次:
crontab -e
添加一行命令如下:
0,5 * * * * /root/rsync-to-mailbak.sh
保存,退出即可立即生效。

现在如果你的邮件主服务器192.168.0.1突然发生硬件故障当机,所需要做的只是立即将备份主机的IP地址192.168.0.2改为主服务器192.168.0.1后运行一下/sbin/service network restart或重新启动一下即可,用户丢失的信件仅仅是在最近5分钟内的内容(<=5分钟)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/99b0ab77332a2e7088a5eaddb7244938.html