wiki:Servicos/Cyrus/Aggregator

Version 8 (modified by lucas.carraro, 13 years ago) (diff)

--

Cyrus IMAP Aggregator

O que é ?

É uma forma de você escalar horizontalmente o Cyrus IMAP entre vários servidores.
Para provedores com um número muito grandes de caixas o servidor IMAP se torna um componente muito crítico,
a falha de um servidor acaba afetando a milhares de usuários. A idéia do Aggregator é que você possa particionar
o problema distribuindo as caixas entre vários servidores.

Como funciona ?

Existem basicamente 3 tipos de servidores envolvidos:

Frontends - São os servidores em que os clientes IMAP/POP3 e MTAs(Mail transfer Agent ) se conectam.
Para os clientes eles funciona como se fosse um servidor imap/pop3/lmtp normal. Quando uma operação é disparada
ele verifica no MUPDATE em que Backend está localizada a caixa do usuário e dispara a operação neste Backend.
Se você move a caixa do usuário para um Backend diferente para o usuário é transparente já que o Frontend
sabe a nova localização da caixa do usuário através do MUPDATE.
Os Frontends funcionam de forma redundante.

Backends - São os servidores aonde fica localizado efetivamente a caixa do usuário, a diferença deste servidor para um servidor IMAP Cyrus normal é que toda a operação efetuada nele é commitada no servidor MUPDATE.

Mupdate - É o servidor que coordena as operações do ambiente, ele funciona como um tipo Banco de Dados.
Ele é responsável em informar aos Frontends a localização da caixa do usuário e em coordenar as operações efetuadas
pelos Backends.

Como o Expresso atualmente se comporta com um ambiente Murder

O Expresso funciona normalmente com o Cyrus Aggregator. A única adaptação necessária
é informar no /etc/imapd.conf os seguintes parâmetros:

.....
defaultserver:  backend1
defaultpartition: default
.....

Por enquanto no Expresso não é possível selecionar em que servidor IMAP
e em que partição você quer criar a caixa IMAP. Por isto estes dois parâmetros
devem ser informados. As caixas criadas pelo módulo Expresso Admin vão ser criadas
inicialmente neste servidor e partição, mas depois você pode movê-la entre qualquer
backend e partição do ambiente.

Como mover uma caixa entre os Backends

Basta usar o comando RENAME do IMAP.

cyradm --user admin frontend1
frontend1> rename user/joe user/joe backend2!default

Instalando e configurando um Frontend

Instalando e configurando um Mupdate

Instalando e configurando um Backend

Como otimizar a entrega LMTP para usar o Mupdate local e não o Master

Por padrão o lmtpproxyd utiliza para consultar aonde devem ser entregues a mensagem o mupdate_server: informado no arquivo
/etc/imapd.conf ou seja se você tem um número muito grande de entregas você acaba sobrecarregando o MUPDATE MASTER com as solicitações.