Une simple répartition de charge en round-robin casse IMAP. Deux backends qui servent le même utilisateur produisent des index contradictoires, des messages manquants et des incohérences de UIDVALIDITY qui font retélécharger des boîtes mail entières.
Le rôle du director : associer chaque utilisateur à un seul backend à la fois, avec une bascule qui reste stable.
[ Client ] → [ Director cluster ] → consistent-hashes user → [ Backend N ]
Deux façons de le déployer :
- Director en proxy dédié : le director tourne sur des hôtes dédiés et relaie IMAP/POP3 vers les backends.
- Director sur les backends : chaque backend fait tourner le director. Plus simple, moins de pièces en mouvement.
La plupart des installations en production choisissent la n° 2.
Éléments indispensables :
- Tous les backends partagent la même authentification (passdb renvoie la même userdb).
- Tous les backends montent le même stockage des messages (NFS, GlusterFS, Ceph ou réplication).
- Les directors forment un cluster entre eux via
director_servers.
Connectez-vous pour garder une trace de ce que vous avez lu.