分类: LINUX
2010-05-05 17:29:15
好久没有在百度这里与看官们分享了,写完这篇文章之后我要准备去医院接受脚的手术。希望很快恢复正常以后继续跟看官们分享文章。 在Extmail的论坛上有大大小小一堆的备份脚本和方法,有人用压缩整个邮件目录然后归档,有人按照时间进行压缩归档,有的用rsync定时同步目录。 之前有留意过新核心上可以使用inotify这模块来记录一些文件改变的状态,更加有外国友人写了inotify-tools 来触发脚本。这种备份方式的确节省管理成本、配置比较容易相比起使用DRBD+HA的方法。 为什么要使用sersync2.4进行热备份呢? 大家到这里先看看作者johntech的介绍 废话不多说了,现在马上开始。 先准备了两台机器安装上EMOS 1.5 x86_64 [i386 可以按照本方案实现的] hostname R1 Private IP 192.168.1.122 hostname R2 Private IP 192.168.1.123 1. 同步MySQL 数据库 [如果你只是需要备份用户邮箱数据跳过这一步,我练功而已] R1 设定数据库配置档 my.cnf server-id=1 log-bin=mysql-bin 然后添加用户 MYSQL>grant all privileges on *.* to mysql_rsync@'%' identified by '123456#'; 记得需要MySQL网络端口3306进行同步通信. R2 设定数据库配置档 my.cnf server-id = 2 查看日志看看是否同步成功 100418 8:16:33 [Note] Slave SQL thread initialized, starting replication in log 'FIRST' at position 0, relay log './s2-relay-bin.000001' position: 98 这里看官会想为何不用sersync同步数据呢?是这样的Mysql的数据不是立即写入MYD/MYI文件内的,所以使用sersync是不可能同步数据的。 2. 使用sersync同步邮箱数据 R1 是数据源 R2 是备份源 R1 与 R2 安装 rsync-3.0.7-1.el5.rf.x86_64.rpm R2 备份源 设定同步目录 # vi /etc/rsyncd.conf max connections=36000 gid = root [domains] *注 目前sersync2.4对于rsync用户认证有 -r 参数 bug,所以不采用认证。 如果用认证方式是以下的配置 max connections=36000 uid = root
# chmod 600 /etc/rsync.secrets # vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 873 -j ACCEPT R1 数据源 # vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 873 -j ACCEPT# echo '123456#' >> /etc/rsync.pas # mkdir /usr/local/sersync2.5b1/ # 下载 然后解压 看见 2个文件 配置档案 confxml.xml 启动档案 sersync2 第一步复制配置档 # cp -a confxml.xml domains.xml 修改内容 启动服务 ./sersync2 -d -r -n 4 -o ./domains.xml * 如果服务器是8核开启 -n 20 ,如果像我这台牛机服务器当然是 -n 4 因为sersync 十分吃cpu负载。 测试 建立了 1万用户,每个用户邮箱大小为1GB。然后向R1 服务器不停掉10MB - 1MB 随机邮件 最后发现机器实在太难了,测试没有结果。 但一些可以预知的东西,sersync 占用CPU资源十分高,管理员需要考虑pop3 收取信件 与 SMTP 发送信件的密度来判断使用sersync是否应付到数据频密的改变。 |