The end of Dovecot Director?

hi at zakaria.website hi at zakaria.website
Fri Oct 21 10:50:54 UTC 2022


On 2022-10-21 10:51, Zhang Huangbin wrote:
>> On Oct 21, 2022, at 5:23 PM, hi at zakaria.website wrote:
>> 
>> I was wondering if one can achieve the same implementation with 
>> haproxy without dovecot director?
> 
> The most important part of Director is it makes sure same mail user 
> always proxied to same backend IMAP server.
> 
> If mailbox is in Maildir format (and stored on shared storage like 
> NFS), accessing it from different server may corrupt Dovecot index 
> files and mailbox becomes unaccessible. Director perfectly avoids this 
> issue.
> 
> HAProxy can proxy mail user from same client IP to same backend IMAP 
> server, but not same mail user from different IPs.
> 
> Quote (https://doc.dovecot.org/admin_manual/director/dovecotdirector/):
> 
> "Director can be used by Dovecot’s IMAP/POP3/LMTP proxy to keep a 
> temporary user -> mail server mapping. As long as user has simultaneous 
> connections, the user is always redirected to the same server. Each 
> proxy server is running its own director process, and the directors are 
> communicating the state to each others. Directors are mainly useful for 
> setups where all of the mail storage is seen by all servers, such as 
> with NFS or a cluster filesystem."
> 
> ----
> Zhang Huangbin, founder of:
> - iRedMail: Open source email server solution: 
> https://www.iredmail.org/
> - Spider: Lightweight, on-premises Email Archiving Software: 
> https://spiderd.io

Aha makes sense, although I was not able to see how can index files be 
corrupted when its if will going to be updated, its in same manner as 
from different connection, e.g. opening email account from different app 
clients, with different connections, does not corrupt the index files?

Also, Is it the issue Director resolving as well its with maintaining 
the logged in dovecot connection to same backend? Anyhow, thanks for 
your valuable efforts in clearing this :)

I wondered if there is any other solution to avoid corrupting index 
files? Perhaps if dovecot offer database indexing as well as login 
sessions, it seems that this would eliminate Director requirement, and 
offer better high availability, as for now userdb/authdb is only 
available per my knowledge, and using database cluster resolves the 
issue with user and auth queries during simultaneous connections to a 
different backends.

Otherwise, it seems in large enterprise deployment with high 
availability a Director implementation will be needed, hopefully we will 
find an alternative solution by the time Dovecot 3 is released.

I might need to get my head around building dovecot with customised 
modules and review the code which was removed and return it back, if 
anyone is planning to this, and well off ahead of me, please let me 
know, we might be able to help one another.

With thanks.

Zakaria.


More information about the dovecot mailing list