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