Hi All,

I am also in a similar environment. I also stuck here. 

I have 2 test servers with the below configuration.
 
==========================
Linux OS        -  Red Hat Enterprise Linux Server release 7.7 (Maipo)
Dovecot version -  2.2.36 (1f10bfa63)
Postfix version -  2.10.1 
========================== 

Trying to create High Availability. 

I have added both of the above servers behind a F5 load balancer. I have got a Load Balancer FQDN "intl-dev-imaptest.testorg.com". I have enabled/opened the ports (25/110/143/993/995) on the above  "intl-dev-imaptest.testorg.com".

When I send 10 emails to  "intl-dev-imaptest.testorg.com", then those 10 emails are getting distributed between the above 2 backend servers (5 emails to each server). I see those 5 emails each in both the servers.

From Outlook I have configured the email address using "POP and IMAP", when I gave the IMAP server as  "intl-dev-imaptest.testorg.com" ,then it shows only 5 emails from server1 in outlook and after a few seconds/minutes, automatically it shows/refreshes the other 5 emails from server2. But I am not seeing all the 10 emails at the same time. why? 

So I tried the sync command. When I execute sync command like below from server1, it reflects the same emails in other server2 also. Then I see the same number of emails in both the servers. Is it not possible to access the both servers emails at one time with the "sync" command? Do we need to run this on all the email boxes on both servers? don't we miss/lose any emails during this sync process multiple times?

"doveadm sync -f -u kishore@test.testorg.com remote:vmail@bal3200dev002.testorg.com"

Is "replication" and "sync" are same?

Why are we not able to see all the emails at one time without the "sync" command? 
 
What is the best and easiest way to create High Availability with just 2 servers, like emails should travel to both servers equally and if one server goes down also, another server should take care of the emails/functionality. This is my requirement. 

My current real time environment: I have around 10 email domains and each domain is having 10 imap emails. In total around 100 email boxes/addresses. We receive around 50K emails in a day to those email addresses. We are using the "Maildir" format in our environment. Want to move to the High Availability option with 2 servers. 

Please help me to fix the issue. 

Thanks & Regards,
Kishore Potnuru

On Thu, Jul 16, 2020 at 2:33 PM Gerald Galster <list+dovecot@gcore.biz> wrote:
With DNS this happens automatically because ips are rotated by resolvers
and the mailclient gets the same ip for all its connections. Failover
is builtin as mailclients just connect to the second ip when the first
is not reachable.

I don't trust DNS load balancing. I saw too many times a client stuck
with the wrong (down) IP... This is my experience ;-)

Interesting, I have deployed that dns-based approach where two dovecot servers
are replicating between two distant datacenters. A few years ago one datacenter
had a major outage and new connections quickly failed over to the remaining
server. Maybe this is client specific and/or has improved over time.

If the loadbalancer/director approach works for you, that's ok.

Replication works reliable with mdbox/sdbox but you should avoid maildir.

I'm using and I like Maildir. There are some documentation about to
don't use it with replication? Which are the drawbacks?

Maildir is probably the most robust mail storage format, but it is very
demanding on your disks because flags like "Seen" are encoded in the
filename. Every flag change needs IO as well as copying/moving/deleting
mails, quota, ... A maildir with 100k+ mails can impact the servers overall
performance, but as you use all flash storage that may not be a problem.

I remembered something about replication and maildir, took me some time
to find it:

https://dovecot.org/pipermail/dovecot/2017-February/107125.html

Timo said (Mon Feb 20 10:09:48 UTC 2017):

"There seems to be something weird with using Maildir and replication.
Haven't had time to debug it and it's likely not an easy bug to fix,
so for now the solution would be to use only sdbox/mdbox with replication."

I don't know if that is still the case, I can just tell mdbox works for me.


Best regards,
Gerald