Hi everyone,
short version:
Is there no built in failover mechanism for the director service to
handle a backend failure?
Long version:
I have a frontend server running the director service and two backends.
Due to maintenance I had to shut down one of the backends which caused
connection errors for the users being directed to this backend.
I was very surprised as I expected the director to redirect these users
to the remaining backend.
Am I wrong or is the director not working as expected?
Regards
Patrick
# 2.1.6: /usr/local/etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.5
auth_mechanisms = plain login
director_mail_servers = 172.17.1.1 172.17.1.2
director_servers = 172.17.1.3 172.17.1.4
lmtp_proxy = yes
log_path = /var/log/dovecot.log
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date ihave
protocols = imap pop3 lmtp sieve
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
unix_listener auth-userdb {
user = dovecot
}
}
service director {
fifo_listener login/proxy-notify {
mode = 0666
}
inet_listener {
address = 172.17.1.3
port = 9090
}
unix_listener director-userdb {
mode = 0600
}
unix_listener login/director {
mode = 0666
}
}
service imap-login {
executable = imap-login director
}
service lmtp {
inet_listener lmtp {
address = 172.17.1.3
port = 24
}
}
service managesieve-login {
executable = managesieve-login director
inet_listener sieve {
port = 4190
}
}
service pop3-login {
executable = pop3-login director
}
ssl_cert = </etc/ssl/certs/imap.xx.crt
ssl_key = </etc/ssl/private/imap.xx.key
protocol !smtp {
passdb {
args = proxy=y nopassword=y starttls=any-cert
driver = static
}
}
protocol smtp {
passdb {
args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
userdb {
args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
}
protocol lmtp {
auth_socket_path = director-userdb
}
Patrick Westenberg wrote:> Is there no built in failover mechanism for the director service to > handle a backend failure?No, the director's job is to keep a hash table and direct the connection for each user to its associated backend. Currently, there is no built-in backend monitoring. In order to handle maintenance of backends, you will need the poolmon daemon, which enables/disables backends in the director depending on their availability: https://github.com/brandond/poolmon Regards Daniel -- https://plus.google.com/103021802792276734820
Hi, no one here who is able to reply to my questions? Regards Patrick Patrick Westenberg schrieb:> Hi everyone, > > short version: > Is there no built in failover mechanism for the director service to > handle a backend failure? > > Long version: > I have a frontend server running the director service and two backends. > Due to maintenance I had to shut down one of the backends which caused > connection errors for the users being directed to this backend. > > I was very surprised as I expected the director to redirect these users > to the remaining backend. > > Am I wrong or is the director not working as expected? > > Regards > Patrick > > > > # 2.1.6: /usr/local/etc/dovecot/dovecot.conf > # OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.5 > auth_mechanisms = plain login > director_mail_servers = 172.17.1.1 172.17.1.2 > director_servers = 172.17.1.3 172.17.1.4 > lmtp_proxy = yes > log_path = /var/log/dovecot.log > managesieve_notify_capability = mailto > managesieve_sieve_capability = fileinto reject envelope > encoded-character vacation subaddress comparator-i;ascii-numeric > relational regex imap4flags copy include variables body enotify > environment mailbox date ihave > protocols = imap pop3 lmtp sieve > service auth { > unix_listener /var/spool/postfix/private/auth { > group = postfix > mode = 0666 > user = postfix > } > unix_listener auth-userdb { > user = dovecot > } > } > service director { > fifo_listener login/proxy-notify { > mode = 0666 > } > inet_listener { > address = 172.17.1.3 > port = 9090 > } > unix_listener director-userdb { > mode = 0600 > } > unix_listener login/director { > mode = 0666 > } > } > service imap-login { > executable = imap-login director > } > service lmtp { > inet_listener lmtp { > address = 172.17.1.3 > port = 24 > } > } > service managesieve-login { > executable = managesieve-login director > inet_listener sieve { > port = 4190 > } > } > service pop3-login { > executable = pop3-login director > } > ssl_cert = </etc/ssl/certs/imap.xx.crt > ssl_key = </etc/ssl/private/imap.xx.key > protocol !smtp { > passdb { > args = proxy=y nopassword=y starttls=any-cert > driver = static > } > } > protocol smtp { > passdb { > args = /usr/local/etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > userdb { > args = /usr/local/etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > } > protocol lmtp { > auth_socket_path = director-userdb > }