Migrating from 2 to 3 (and to a new server) by hand
There's some good notes here http://www.howtoforge.com/forums/showthread.php?t=43245
I have just done pretty much the same thing with similar numbers as well.
My dns is handled by outside service however, its NOT on the server being migrated.
- I would suggest reducing TTL for domains, MX records, A host records etc right down to a minimum, eg 300 seconds. Do this in plenty of time before making any changes to records themselves.
- ensure new server fully working with respect to email, web, ispconfig etc. I had a test domain that I pointed MX records and A host records for a site. Check and recheck everything is working as its supposed to. I put a copy of roundcube on this test domain... useful for checking new mailboxes created. I also put a copy of phpmyadmin on there to be able to manipulate databases as necessary.
- On the new server I created all the websites and mailboxes. It doesn't matter at all as MX is still pointing to old server. I logged in to each mailbox through roundcube to create the structure as necessary.
- I used rsync to copy contents of vmail folder from old server into a temporary location on new server. Its quite easy as permissions are identical for each mail folder, mostly vmail:vmail. To flip between courier and dovecot there a number of recognised scripts out there some of which have been discussed on here. Be wary that the script may or may not handle switching any mail filter rules that you might have in place and you might have to manually edit these.
- After rsync of data I stopped courier and postfix on the old server. This was to stop any further changes on mailbox data either by new emails being received or users logging into their mailboxes. At this time the websites were still accessible.
- On the new server I ran courier > dovecot migration script on mail data held in the temporary folder. This reworks the folder paths for dovecot compatibilty. I then moved that data into "proper" vmail folder and confirmed access by logging into mailboxes again.
- Following that I used phpmyadmin to change the password of the NEW mailboxes to match the password in /etc/passwd file. As the sysadmin I knew some of those passwords anyway so was able to confirm the mailboxes were indeed intact. Keep in mind that the users will have to log in with their full email address, this may be different than on the old server so they will have to slight alter their mail client configuration.
- I flipped DNS after that to point MX records and webmail.mydomain.tld to new server and got clients using POP3S/IMAPS to change their config (login username).
- Website data slightly trickier, as per link above the entire structure is different. However, I still used rsync to move data across and manually moved files and folders into new site folders created, paying attention to permissions etc as appropriate.
- Depending on what CMS you are using, be aware that the APS installer might help you on the new server. It will create the databases and raw website structure for you to populate. from within the CMS package itself you could then perform a "backup/restore" of files as necessary.
- Dont forget before changing actual DNS records you can use your local "hosts" file to point your client to new server to test websites.
I've probably left out a lot here but the above is broadly what I did on mine. YMMV!