>From dovecot director point of view it does not make any difference if your 
>imap clusters have only one server each. mail_hosts takes IP addresses, DNS 
>names whatever, and you can assign tag per host if you want.

And yes, if you have only one server for a tag, then your clients are denied 
access.

Aki

> On 31/08/2021 12:28 Steven Varco <dovecot....@bbs.varco.ch> wrote:
> 
>  
> Hi Aki
> 
> Thanks for pointing  out the tag feature which sound really interesting in 
> the first place.
> 
> However, if I understand the documentation correctly:
> > With tags you can use a single director ring to serve multiple backend 
> > clusters. Each backend cluster is assigned a tag name, which can be 
> > anything 
> > you want. By default everything has an empty tag. A passdb lookup can 
> > return "director_tag" field containing the wanted tag name. If there aren't 
> > any 
> > backend servers with the wanted tag, it's treated the same as if there 
> > aren't any backend servers available (= wait for 30 secs for a backend and
> > then return temporary failure).
> 
> As of my understanding, this only helps if there are multiple IMAP _clusters_ 
> in the doveadm ring.
> In my case I have only one cluster (with two IMAP _servers_) and would want 
> to go to a specific server, failing over to another if that is unavailable.
> Now if I have the following scenario:
> 
> # Director Server
> (DEV) root@lb01 [~] # doveadm director status
> mail server ip tag  vhosts state state changed users
> mx01.example.com   mx01 100    up    -             0
> mx02.example.com   mx02 100    up    -             1
> 
> # IMAP Server
> (DEV) root@mx01 [~] # doveadm user 't...@example.com'
> field value
> uid   1025
> gid   12
> home  /srv/mail/example.com/test
> mail  maildir:~/Maildir
> maildir       example.com/test/
> mail_home     /srv/mail/example.com/test
> quota_rule    *:storage=20480
> sieve_dir     /srv/mail/example.com/test/sieve
> director_tag  mx01
> 
> Than user 't...@example.com‘ would go to the backend host mx01.example.com, 
> BUT, if mx01.example.com goes down, it would probably fail, because user 
> 't...@example.com‘ wants tag „mx01“, which is now down and the only server 
> with that tag?
> 
> 
> By the way, I did a quick live test and it does not even seem to work, when 
> both hosts are up, failing with the log entry on the dovecot server:
> Aug 31 11:11:11 lb01 dovecot: director: Error: director: User 
> t...@example.com host lookup failed: Timeout because no hosts - queued for 30 
> secs (Ring synced for 385 secs, hash=1561836376)
> 
> Do see what I’m missing out here?
> Using dovecot 2.2.36 (1f10bfa63) on both the directror and IMAP backend.
> 
> thanks,
> Steven
> 
> -- 
> https://steven.varco.ch/ 
> 
> > Am 30.08.2021 um 19:20 schrieb Aki Tuomi <aki.tu...@open-xchange.com>:
> > 
> > 
> >> On 30/08/2021 19:09 Steven Varco <dovecot....@bbs.varco.ch> wrote:
> >> 
> >> 
> >> Hi All
> >> 
> >> I have a dovecot cluster with directror and two IMAP Servers behind.
> >> 
> >> Since they are in geographical different locations I would like to have 
> >> users to go to a specific IMAP backend server (if both are up) and only 
> >> switch to the other if one goes down (failover).
> >> 
> >> As to my current knowledge the PassDB extra field „host=„ is not suitable 
> >> in this case as it would never route the client to a different backend, 
> >> even if the „user specific backend“ would be down.
> >> 
> >> Is their a way in dovecot to achive this? As far as I searched the 
> >> documentation I could not find any information on this so far.
> >> 
> >> If not, it may also help if I could get certain users to „initially" go to 
> >> a specific backend (since director usually routes a client/user to the 
> >> same backend server it initially connects) and therefore it would be 
> >> interesting to know how dovecot director chooses wether a user goes to 
> >> server1 or server2?
> >> And if a client already gets to server2, how to bring it „back“ to server1?
> >> 
> >> thanks in advance,
> >> Steven
> >> 
> >> -- 
> >> https://steven.varco.ch/ 
> >> https://www.tech-island.com/
> > 
> > 
> > Hi!
> > 
> > Use dovecot director tag feature. You can match users with tag= to a 
> > specific backend@tag.
> > 
> > Aki

Reply via email to