I’ve recently configured live active replication from my Zimbra e-mail server to a backup server. This is really slick – in the event of primary server failure, I can bring up my secondary in a matter of minutes with no data loss. I used the Zimbra live sync scripts on Gitlab to accomplish this.
These are my notes on things I needed to do in addition to the readme to get things to work properly on my Zimbra 8.8.15 Open Source Edition installs on CentOS 7 boxes.
Install atd (at package):
sudo yum install atd
Make sure the backup server has the same firewall rules as the primary: https://wiki.zimbra.com/wiki/Ports
On the backup server, configure DNS for the mail server to resolve to the Backup server’s IP address. hostname: mail.server.dns -> mirror mail server.
Disable DNS forwarding for primary mail server domain if configured (to ensure mail goes to backup server in the event of switchover.)
Clone over prod mail server, spin up and change network settings:
- keep hostname (important)
- change IP, DNS, hosts to use new IP address/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/hosts
/etc/resolv.conf
Ensure proper VLAN settings in backup VM (may be different than primary)
Systemd service:
add Environment=PATH=/opt/zimbra/bin:/opt/zimbra/common/lib/jvm/java/bin:/opt/zimbra/common/bin:/opt/zimbra/common/sbin:/usr/sbin:/sbin:/bin:/usr/sbin:/usr/bin
WorkingDirectory=/opt/zimbra
Remove start argument from ExecStart: ExecStart=/opt/zimbra/live_sync/live_syncd
This is the complete systemd unit for live sync:
[Unit]
Description=Zimbra live sync - to be run on the mirror server
After=network.target
[Service]
ExecStart=/opt/zimbra/live_sync/live_syncd
ExecStop=/opt/zimbra/live_sync/live_syncd kill
User=zimbra
Environment=PATH=/opt/zimbra/bin:/opt/zimbra/common/lib/jvm/java/bin:/opt/zimbra/common/bin:/opt/zimbra/common/sbin:/usr/sbin:/sbin:/bin:/usr/sbin:/usr/bin
WorkingDirectory=/opt/zimbra
[Install]
WantedBy=multi-user.target
Time limit
It looks like there’s a time limit for how long Zimbra keeps redo logs. It means you will get a lost mail situation if you try to bring your primary server back up after it’s been offline for too long (more than a few weeks.) If you’ve been failed over to your secondary mail server for more than two weeks, you’ll want to do the reverse procedure – clone the backup to the primary, edit IP addresses, then run the zimbra live sync. Log into the restored server to ensure mails from greater than 2 weeks ago are all there.