Hi John

Thanks for you input.

So you basically state that („physically“) separating the director servers from 
keepalive/haproxy servers is the only option?
I would like to avoid setting up two additional machines for that whenever 
possible, as any node more in the chain potentially is another point of 
failure… ;)

I’m curious to hear of any others how they did their dovecot IMAP HA setup, 
maybe raising som new ideas. :)

BTW: Why was never such a simple thing added to the direcotors code to .i.ex. 
just specifiy which is the IP of a director server itsels?
Example with a new configuriony option „my_director_sever“:

both directors:
-----
director_servers: 192.168.1.10 192.168.1.20 
-----

on director-2:
-----
my_director_sever: 192.168.1.20 
-----

cheers,
Steven

-- 
https://steven.varco.ch/ 


> Am 14.03.2021 um 20:14 schrieb Paterakis E. Ioannis <j...@uoc.gr>:
> 
> On 14/3/2021 6:52 μ.μ., Steven Varco wrote:
> 
>> Hi All
>> 
>> I’m trying to establish a dovecot HA setup with two loadbalancers, running 
>> keepalived for sharing a virtual public IP.
>> On the same machines I’m running a dovecot director which proxies the 
>> requests to two underlying mail servers (on seperate machines).
>> 
>> Now I’m hitting the issue with the way director determines his „Self IP“ by 
>> trying to bind to all configured director_servers IPs, taking the first one 
>> possible.
> 
> Each Director has to listen only on the static IP address of each machine. 
> Then you have to configure the 2 directors in the HAproxies. The floating ip 
> with keepalived will work along with the 2 HAproxies.
> 
>> However this approach only works, when the sysctl setting is: 
>> net.ipv4.ip_nonlocal_bind=0
>> On the other side keepalived needs net.ipv4.ip_nonlocal_bind=1 in order to 
>> bind the VIP.
> 
> You don't have to mess with these settings.
> 
>> Other possible solutions I could think about:
>> - Configure each director as „independent“ by setting only one IP in 
>> director_servers.
>>   => With this aporach you would loose the user to mailserver mapping, 
>> although only in a a case of a failover on the loadbalancer, which might can 
>> be neglected (or are there any other fallbacks?)
> 
> The two directors have a connection to each other, so both know at the same 
> time where's a user mapped. You don't have to worry about that. The 
> user->dovecot mapping will work without any problems even if there is a 
> failover.
> 
>> - Putting director on seperated intermediate machines and proxing the 
>> requests through haproxy on the keepalived servers (keepalived -> haproxy -> 
>> director -> IMAP
>>    => Besides the disadvantage of having another bunch of servers in the 
>> chain, also some special configuration on the directory servers might be 
>> neccessary to assure director works neatly with haproxy.
> 
> The identical scenario will be to have keepalived along with haproxy on same 
> machine, and directors on another. But can work with all three on the same as 
> well. I use the keepalived, haproxy on two machines, with 2 directors 
> underneath each one on different machine/hardware for the high availability's 
> sake, and below them there are 3 dovecot servers.
> 
>> So 2021, what is the „correct“ (best practive) way of having a reduntant HA 
>> setup for dovecot?
> 
> Cheers :-)
> 
> John
> 
> 

Reply via email to