We are finally working on our off-site backup project, which will encompass Zimbra data as well as other user data.
Because we are required by our client to do a full backup of all data every three months, along with daily incremental backups, to the off-site location over the Internet, I am looking for ways to trim the size of the backup. One definite problem I can see is going to be the unique name of each Zimbra full and incremental backup. The off-site backup will try to copy these (large) data files and folders to the off-site location and it will take a lot longer than it would if it was just a differential / incremental backup of the same files.
So, I'm looking for ideas or suggestions for creating a workable off-site backup for the Zimbra data. One option may be to make a one-time backup of the current data and then duplicate all messages on the mail server to another server at our off-site location. Of course, this would not give us wiki, calendaring, and address book backups.
Has anyone else run in to this issue?
Let me bump this thread and open this up a little wider to see if anyone has any suggestions.
Does anyone do an off-site backup in any way of their Zimbra servers? I'm open to any ideas.
I'm not sure what options you have available to you, but I've always been a big fan of simple is better.
We accomplish off-site backups using rsync. rsync is capable of deltas even on binary files. It will save a ton of time. You can use this over SSH so that it's encrypted (recommended) and using host keys you won't need to supply a password either. This can be initiated by the backup client or the backup server.
Once the files are at the remote location, you can do whatever you need to them.
I'll leave it up to your research if you feel you should shut down certain services or not before a backup. You definitely do not want to restore to a live environment. Meaning if you're backing up MySQL to a remote server, MySQL shouldn't be running on that remote server, or it should be dumping to a folder that's outside of MySQLs view. It should go without saying that backing up a live MySQL box probably isn't the best idea either. :) For that, we cluster our production MySQL server with a read-only MySQL server. We then shut down that read-only server and make a backup of it. Works pretty well and it's all automated through simple shell scripts.
My recommendation is to create folders for each server you have on your off-site server. Use rsync to keep those folders and servers synchronized. Then run your backups (tape or whatever it may be) from that off-site servers view of the server in those folders.
Another great tool, which uses the rsync libraries, is rdiff-backup. I highly recommend this tool. It does the versioning for you automatically, restoring something from 10 days ago into a temp location is as simple as:
rdiff-backup -r 10D host.net::/remote-dir/file /tmp/file
If you just need the most recent backup, you can simply copy it from the remote host.
Nice to see someone else from the area... :)
Originally Posted by jbareMACS
There are a couple of ways you could do this. Is it a requirement for the off site backup to go over the wire? How much data are we talking? What kind of pipe do you guys have from the primary to backup site? These just need to be cold data backups right, not a redundant site?
You should just backup the /opt/zimbra to tape and use a company like Iron Mountain to send the tapes off site to a secure location (or just drive the tapes to your off site location, depending on your security protocols). If tape doesn't work for you, substitute that for a disc backup of some kind.
Most of the off site data backup we work with is with dedicated large pipes, so data transfer isn't an issue.