On 1/27/2012 2:57 PM, Timo Sirainen wrote:
On 27.1.2012, at 20.11, Simone Caruso wrote:
I have a customer with 3 different geographic locations.
Every locations have a mail server for the same domain (example.com).
If user1@example.com receive mail form external this mail going on every locations server.
I've a problem now, is it possible to syncronize the state (mail flag) of user1 imap folder mails on every mail locations server?
Syncronize your storage with DRBD, (or async replica like rsync) and use dovecot director for connection persistence.
There are a couple of problems with DRBD and most (all?) other filesystem based solutions when doing multi-master replication across wide geographic locations:
Multi-master requires synchronous replication -> latency may be very high -> performance probably is bad enough that the system is unusable.
Network outages are still common -> you can't handle split brain situations in filesystem level without either a) loss of availability (everyone's email down) or b) data loss/corruption (what do you do when multiple sites have modified the same file?)
With dsync-based replication it's possible to avoid both of these problems, because application-level replication can intelligently handle situations where asynchronous replication results in data conflicts. (This kind of conflict resolution is also what I hope to do with some nosql database in future when Dovecot supports them.) I've been working on dsync-based easy-to-use replication recently, and it's almost in a condition where I'm going to start using it myself (maybe this weekend).
Can you provide a basic diagram/high level description of how this dsync replication would be configured to work over a 2 node wide area network?
Are we looking at something like period scripts, something more automatic, a replication daemon?
-- Stan