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

目的:

在没有外置硬件存储设备的情况下,本方案利用两台服务器,可以实现数据自动备份, 主邮件服务器故障时自动切换邮件服务到备用邮件服务器。如果已有ISCSI等存储设备可以使用双机热备份集群等功能, 双机集群可以参考: Winmail 群集安装(Win 2003) Winmail 群集安装(Win 2008)

实现原理:

平时使用主服务器(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,计算机名一定要正确配置(我的电脑右击属性>计算机名 中修改)。
    要求在主机上ping serverb有正确回应,备机上ping servera有正确回应。
  2. 在两台安装 Winmail 软件,安装路径要一致。本例安装目录是 C:\Program Files\Magic Winmail
  3. 下载双机数据免费同步软件cwRsync。 www.onlinedown.net/soft/99225.htm
  4. 下载免费Nmap软件,www.onlinedown.net/soft/69679.htm 官方下载:nmap.org/download.html
  5. 下载我们提供的脚步程序:easy_cluster.zip
  6. 主、备服务器上安装了防火墙或者设置了IP策略的话,要对外开放 TCP 873端口。

安装步骤:

  1. 双机数据自动同步
    1. 如果是正式用户的话,请先在两台服务器分别输入注册码,再把备份服务器的 Winmail 关闭。
    2. 在主、备服务器上都安装CwRsync,安装保持默认的路径,本例默认为C:\Program Files\ICW\【64位操作系统中请按本例修改安装路径】。安装中其他选项也默认即可。
    3. easy_cluster.zip解压,文件rsyncd.conf复制到主服务器的C:\Program Files\ICW\替换同名文件。文件rsync.bat复制到备份服务器的C盘根目录,文件中192.168.0.1修改为你使用的主机IP。
    4. 在主服务器 Windows 系统服务里, 将“RsyncServer”服务启动类型修改为自动,并重新启动此服务。
    5. 备份服务器上添加 Windows 的计划任务,每30分钟循环执行C:\rsync.bat 。
    6. 在Winmail【管理工具】【系统设置】【高级设置】【系统参数】【基本参数】相关的邮件存储目录以及网络磁盘目录都保持默认路径。同步日志保存在C:\rsync.log。

      本例中winmail的相关的数据存储目录没有修改,如果实际配置中有修改,请注意:主、备上都必须有此目录。
      比如:把“邮件存储目录”改到D:\winmail\store目录,那么主机、备机D:\winmail\store的目录都必须先建立好。
      并且要修改rsync.bat、rsyncd.conf,将文件中默认的winmail相关目录修改。
  2. 服务自动切换配置
    1. 主、备服务器都要先安装软件 Nmap。安装路径指定:C:\Program Files\Nmap\【64位操作系统中请按本例修改安装路径】
    2. easy_cluster.zip中的文件ipA.txt、ipB.txt、startwinmail.bat复制到备份服务器的C盘根目录。
      文件chgip.txt、chkserv.bat 复制到主服务器的C盘根目录。
    3. 修改上一步中复制的相关文件。压缩包中的文件都使用记事本打开:
      192.168.0.1修改为你使用的主机IP;
      192.168.0.2修改为你使用的备机IP;
      192.168.0.3修改为你使用的临时IP;

    4. 关于三个IP配置文件(ipA.txt、ipB.txt、chgip.txt)的说明:
      • 查看网络连接属性中有IPv4和IPv6区分的[通常为win7、win2008以上系统],删除#pushd interface ipv4行前的#号;
        网络连接属性中有(TCP/IP)的系统[通常为Xp win2003],删除#pushd interface ip行前的#号
      • 修改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="本地连接" static 192.168.0.1 255.255.255.0 192.168.0.254 1      //192.168.0.1是使用的IP,255.255.255.0是子网掩192.168.0.254是网关地址
    5. 添加 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,只要主服务器的winmail是正常启动,不管其主机IP是多少,备机执行批处理时,都将停止自身的winmail服务。所以要调试主机,请断开主机网络。

做好后,备份服务器会每30分钟同步一次主服务器的数据。主服务器有问题不能正常使用时,主服务器会切换到临时IP, 备份服务器上将启动 Winmail,备份服务器上数据会是最后一次备份的数据。网关等其他设备设置不需要更改。