I have a server running dovecot using the maildir format with a fairly large userbase (10k users or so) with each user having around a GB quota.
The actual mail directories are stored on a separate storage system that our email server mounts via NFS.
Due to performance issues on our storage system, we are upgrading to a new storage system. We have been rsyncing data from the old system to the new system directly, but this process still takes a rather lengthy amount of time (16+ hrs).
Our plan is to run rsyncs back to back, after the second one finishes, immediately take down dovecot/qmail/etc on the mail server, switch mount locations to the new system, and bring email back up. That'd only total a minute or two for downtime with luck. The problem is any E-Mail that came in while the last rsync was running is still not going to be copied over. So, to alleviate this, after the switch we would rsync again without the --delete flag we typically use. There are some issues with this, but the biggest from my perspective is users not having access to email they JUST had right before the switch.
Does anyone have a suggestion on how to do this with having very minimal downtime still and NOT losing out on the data for any amount of time? The old storage system is a NetApp, the new system is just a freebsd box with a large san attached, and the email server is Ubuntu.
It feels to me like there should be a way to overlap the storage systems from the user's perspective until the migration is complete, but I simply don't have the knowledge on how to do such a thing if it's even possible.