Winmail + Rsync + Nmap 实现 Winmail 邮件系统双机热备

目的: 在没有外置硬件存储设备的情况下,本方案利用两台服务器,可以实现数据自动备份,主邮件服务器故障时自动切换邮件服务到备用邮件服务器。

如果已有ISCSI等存储设备可以使用双机热备份集群等功能,双机集群可以参考: Winmail 群集安装(Win 2000) Winmail 群集安装(Win 2003)

实现原理:

    平时使用主服务器(192.168.0.1), 使用同步软件(cwRsync)把主服务器中的数据同步到备用服务器(192.168.0.2)。
    
    在主服务器出现服务故障时:

         主服务器(192.168.0.1)上由脚本自动把主服务器的内网IP(192.168.0.1)修改成其他临时IP地址(192.168.0.3), 从而让出原来主服务器使用的IP地址(192.168.0.1),并关闭 Winmail;
         备用服务器(192.168.0.2)上由脚本自动修改IP为原先主服务器IP(192.168.0.1), 并启动 Winmail 服务来代替原主服务器提供邮件服务。
        
     在主服务器修复 Winmail,服务正常启动后数分钟:

        备用服务器通过计算机名自动检测到主服务器已经正常(此时的主服务器使用临时IP 192.168.0.3),自动停止 Winmail 服务,让出原主服务器IP(192.168.0.1),改成自己原来的IP地址(192.168.0.2)。
        主服务器需要手工把IP修改回原主服务器IP地址(192.168.0.1),以便正常工作。    

安装准备:

1、一台主服务器(计算机名为serverA)的内网IP为192.168.0.1;一台备份服务器(计算机名为serverB)的内网IP为192.168.0.2,计算机名一定要正确配置(我的电脑右击属性>计算机名  中修改)。

2、在两台安装 Winmail 软件,安装路径要一致,建议安装到非系统盘。本例安装目录是 D:\Program Files\Magic Winmail

3、下载双机数据免费同步软件cwRsync。http://www.onlinedown.net/soft/99225.htm

4、下载免费Nmap软件,http://www.onlinedown.net/soft/69679.htm 官方下载:http://nmap.org/download.html

5、下载我们提供的脚步程序: easy_cluster.zip

6、主、备服务器上安装了防火墙或者设置了IP策略的话,要对外开放 TCP 873端口。

安装步骤:

    一、双机数据自动同步

1、如果是正式用户的话,请先在两台服务器分别输入注册码,再把备份服务器的 Winmail 关闭。

2、在主、备服务器上都安装CwRsync,安装保持默认的路径,本例默认为C:\Program Files\ICW\。安装中其他选项也默认即可。

3、将easy_cluster.zip解压,
     文件rsync.conf文件复制到主服务器的C:\Program Files\ICW\替换同名文件。
    文件rsync.bat文件复制到备份服务器的C盘根目录。

4、在主服务器 Windows 系统服务里, 将“RsyncServer”服务启动类型修改为自动,并重新启动此服务。

5、备份服务器上添加 Windows 的计划任务,每30分钟循环执行C:\rsync.bat 。

在 Winmail【管理工具】【系统设置】【高级设置】【系统参数】【基本参数】相关的邮件存储目录以及网络磁盘目录都保持默认路径。同步日志保存在C:\rsync.log。

     二、服务自动切换配置

            1、主、备服务器都要先安装软件 Nmap。

            2、将easy_cluster.zip中的

                文件ipA.txt 、ipB.txt、startwinmail.bat 复制到备份服务器的C盘根目录。
                文件chgip.txt、chkserv.bat 复制到主服务器的C盘根目录。

            3、修改上一步中复制的相关文件。

            关于三个IP配置文件(ipA.txt ipB.txt chgip.txt)的说明:

                修改ipA.txt,配置的为主服务器的IP,本例为192.168.0.1。
                修改ipB.txt,配置的为备份服务器的IP,本例为192.168.0.2。
                修改chgip.txt,配置的为主服务器服务故障后,为了让备服务器可以使用原有主服务器的IP而不产生冲突,先临时切换的IP,本例为192.168.0.3。
            
                文件中的“本地连接” 就是在桌面上右击“网上邻居”--“属性”看到的网卡名,如果你的有所不同请注意修改。

                set address name="本地连接" source=static addr=192.168.0.1 mask=255.255.255.0             //addr是使用的IP,mask是子网掩码
                set address name="本地连接" gateway=192.168.0.254 gwmetric=0                                         //gateway是网关地址
                set dns name="本地连接" source=static addr=8.8.8.8 register=PRIMARY                      //设置主DNS地址
                add dns name="本地连接" addr=8.8.4.4 index=2                                                                        //备用DNS地址
                set wins name="本地连接" source=static addr=none                                                               //这里不需要修改
             
            

             4、添加 Windows 计划任务

                 分别在主备服务器上添加 Windows 计划任务,设置计划任务不同时长循环:

                 主服务器上每1分钟循环执行 chkserv.bat 文件。
                 备份服务器上每5分钟循环执行 startwinmail.bat 文件。

            如果不想执行时跳出CMD窗口,可以在添加计划任务时让此计划任务使用其他用户执行即可。
            

测试方法:

             1、直接断开主服务器的网络,查看是否正常切换。
             2、断开的主服务器修改IP后连上网络6分钟后,看看备份服务器是否正常停止 Winmail 服务,并且切换IP到原始的备份机IP。
             3、不断开网络只停止 Winmail 的服务,测试主服务器是否自动切换临时IP,备份服务器是否正常切换并启动服务。

备注说明:

             1、已经使用的计算机名不要更改,以免设置不生效。
             2、在主服务器不断网的情况下,只要主服务器启动 Winmail 后等待五分钟,备份服务器会自动让出原主服务器的IP,并关闭 Winmail 服务, 此时再修改主服务器IP即可恢复。
             3、如果主服务器是因系统或者硬件出故障导致宕机时没有自动修改成临时IP的,修复后注意不要直接连接网络,以防和正在运行的备份机IP冲突。

做好后,备份服务器会每30分钟同步一次主服务器的数据。主服务器有问题不能正常使用时,主服务器会切换到临时IP, 备份服务器上将启动 Winmail,备份服务器上数据会是最后一次备份的数据。网关等其他设备设置不需要更改。本例中使用了系统批处理来自动切换和修改IP, 所以使用时还是有少数可能会有IP切换不成功或者IP冲突出现。如果发现服务不正常也请检查是否是切换IP不成功或者冲突了。