On 8.7.2010, at 10.48, Brandon Davidson wrote: >> Yes, we will have two hardware balancers in front of proxies. Thus, the >> director service will detect failures of backend servers and not forward >> sessions them? how detects if a backend server it's alive or not? > > IIRC, it does not detect failures of backend servers. It's up to you to > detect outages and react appropriately. > > The folks that sponsored Director development apparently have a monitoring > script that removes downed nodes by running something like 'ssh directorhost > doveadm director remove backendhost', and then re-adds them when they come > back up.
Yes. It was also much simpler to implement that way :) Maybe it wouldn't be hugely difficult to implement internally though: - notify-connection is already used to send notifications about what user connections exist. the same api could be used to send a notification that 'backend x is down'. but a single "connection refused" probably shouldn't bring down the host without at least a few tries within several seconds.. removal would be done by setting vhost_count=0 - adding hosts back up automatically would require more code in director where it would automatically try to connect to them every once in a while. probably save the pre-removal vhost count and then add it back with that vhost count. - the proxy itself should also have some code to deal with connect failures by doing another passdb lookup a while after sending the 'host is down' notification and then reconnecting to the new host. - then some settings how long to try to connect to a backend until it's declared dead. either a hanging connect(), hanging existing connections or connect() refused attempts tried for that long time. > I am not aware of a way to get Dovecot to output the director ring status. > That would be nice though, to be able to list the directors and how many > connections they're each proxying. Yeah. Any good naming ideas for the doveadm director command? :)
