I learned that simultaneously migrating an existing Zimbra server to new server hardware and upgrading the version (from 4.0.1 to 4.5.3) at the same time can be either really easy, or really hard. You get to decide. The best part is that if you fail, you get to start over… and over… and over… 😉
First off, migrating *any* groupware system is always going to be harder than migrating a more simple email system. It’s like the difference between moving an old classic house down the street (like they do on This Old House) , and moving a convention center… with a convention going on! If all the people are missing when you get the convention center to it’s destination, you failed.
Though I did struggle with the migration(s) a bit, in the end – if I would have validated a few things first – it could/should have gone very smoothly. I’ll cut to the chase and give you the exact simple steps to do it right, followed by what went wrong for me…
This is specific for migrating Zimbra v4.0.1 on Opensuse 10.1 on host1 (existing source system), ultimately to Zimbra v4.5.3 running Opensuse 10.2 on host2 (new target system).
- Setup host2 with nice big /opt/zimbra partition, since that’s all Zimbra really cares about
- Make sure host2 has EXACTLY the same name(s), both in the /etc/hosts file and in other config files (easiest way is to set the “hostname” parameter in Yast)
- Install v4.0.1 (same version as source) on host2
- Remove the new Zimbra data area on host2 with “rm -r /opt/zimbra”
- Shut down all Zimbra services on host1 (and be SURE) . You might want to do “chkconfig zimbra off” and reboot host1, and maybe even stop all the cron jobs for the Zimbra user with (crontab -e -u zimbra)
- Use Rsync or tar to copy the /opt/zimbra from host1 to host2
- Run the “install.sh” for Zimbra v4.5.3 on host2, making sure to choose “upgrade” when prompted. You probably are missing a couple required packages, no biggie. Go install them, and re-run the script
- Follow the excellent recommendations on this thread of the Zimbra forum
Now *if* you failed, it could be due to a bunch of reasons, but the best part is this: You can just remove uninstall Zimbra on host2 (with “install.sh -u”), delete all contents of /opt/zimbra again, and start over. The reason(s) mine failed my first couple attempts were:
- corrupt backup – I had been Rsyncing /opt/zimbra for about a year as a backup method. Guess what folks… validate your backups! For me, the ldap store was getting foobarred somehow during the nightly Rsync job. In hind sight, I thing it’s because the ldap daemon takes soooooo loooong to shut down and release the database after a “zmcontrol stop” as the zimbra user. I have to revisit this, but I think a nice long “sleep” gap in the script will fix it… In the end, I just had to delete the enire /opt/zimbra on the target system and re-Rsync it over entirely…
- mismatched host name – Even though the entries in /etc/hosts matched exactly between hosts, it’s the field that gets set by Yast in the Network -> hostname setting that matters… they MUST match between systems…
Now I have a nice, new Zimbra 4.5.3 on Opensuse10.2 system; the way it should be. And if you send me a question to questions@yourLinuxGuy.com, they will go to my Zimbra system, and probably get flagged as spam… be patient, I’m still getting the “feel” for my new spam tagging settings…