Cyrus IMAPD: Separando os meta-arquivos

Publicado por Fabio Soares Schmidt em 08/05/2012

[ Hits: 5.704 ]

 


Cyrus IMAPD: Separando os meta-arquivos



Por padrão, o Cyrus IMAP armazena as mensagens e meta-arquivos na mesma estrutura de diretório.

O armazenamento de mensagens é constituído por diversos arquivos pequenos, que não são acessados tão frequentemente, uma mensagem é acionada somente quando o usuário abre a mesma, os meta-arquivos são separados em arquivos por caixa postal (pasta): header, index, cache, expunge e squat.

- Sendo, os três primeiros para indexação e recuperação dos cabeçalhos das mensagens.

- O expunge para controle de remoção atrasada, se essa opção estiver habilitada.

- O arquivo squat contém uma indexação específica para pesquisa de mensagens, com ganho de 20 a 30% em relação à indexação padrão para operações que envolvam pesquisa, sendo o maior dos meta-arquivos. Se a mensagem não estiver referenciada neste arquivo será recuperada através da indexação normal, porém com desempenho inferior.

Sabendo que os meta-arquivos são acessados com mais frequência e ocupam um espaço relativamente pequeno, cerca de 10% para toda a estrutura de caixas postais do usuário (esse resultado foi obtido a partir e estudos com implementações reais até 1000 usuários).

É uma boa estratégia configurar o Cyrus IMAP para separar esses arquivos em meta-partições que utilizam discos mais rápidos para obter um melhor desempenho das operações de I/O no servidor IMAP.

A partir da versão 2.3 dessa configuração, é possível utilizando os parâmetros metadata do Cyrus IMAP, como conceito, cada partição pode ter somente uma meta-partição e a definição de quais arquivos serão separados é global, ou seja, é definido quais meta-arquivos ficarão separados em meta-partição e essa configuração é compartilhada para todas as partições.

Vejamos o exemplo abaixo com as configurações no arquivo "/etc/imapd.conf":
  • metapartition_files: header index cache expunge squat
  • metapartition-default: /var/spool/cyrus
  • metapartition-splitmeta: /var/spool/splitmeta/metadata
  • partition-default: /var/spool/cyrus/
  • partition-splitmeta: /var/spool/splitmeta/partition

Vemos que com o parâmetro "metapartion_files", estamos definindo que todos os 5 meta-arquivos devem ser armazenados na meta-partição, neste cenário, já temos uma partição em funcionamento: a partição default, que é a padrão do Cyrus IMAP e precisamos separar os meta-arquivos das caixas postais já existentes.

Como a configuração de separação de meta-arquivos é global, precisamos informar que os meta-arquivos da partição default estão localizados no mesmo diretório da estrutura de mensagens, como pode ser visto nos parâmetros partition-default e metapartition-default.

Já para a nova partição, nomeada 'splitmeta', os meta-arquivos serão armazenados em outro diretório, definido com a diretiva metapartition-splitmeta, onde 'slipmeta' deve ser substituído com o nome de cada partição do servidor IMAP.

Após efetuar as modificações, execute o comando abaixo para criar a estrutura necessária para a nova partição e meta-partição:

# su -s /bin/bash – cyrus -c ‘/usr/lib/cyrus/bin/mkimap /etc/imapd.conf

Será necessário efetuar o Reload do serviço do Cyrus IMAP, para utilizar as novas configurações:

# /etc/init.d/cyrus-imapd restart

Para movimentar os usuários para a nova partição, é necessário utilizar o comando 'rename', na shell do Cyrus (cyradm), conforme abaixo, durante a movimentação para a nova partição os meta-arquivos serão separados na meta-partição:

cyradm> renamemailbox user/fabio user/fabio splitmeta

Com este comando, estamos movimentando o usuário 'fabio' com toda sua estrutura de caixas postais para a nova partição 'splimeta'.

Obrigado.

Fabio S. Schmidt: http://respirandolinux.wordpress.com

Outras dicas deste autor

Cyrus IMAP: Eliminar mensagens "fetching user deny" no código

Zimbra - Copiando base de SPAM/HAM para outro servidor

SpamAssassin - Melhorando a eficácia do seu anti-spam

Liberar o MSN para usuários determinados

Dovecot: Adicionando mais informações na entrega da mensagem

Leitura recomendada

Apagando "Frozen Message" na fila de email do Exim

Erro em livro de Qmail da O'reilly

Configuração do Maildrop para criar pasta Spam e aparecer no squirrelmail

Debian Wheezy - Erro: Return-Path nulo no Sieve scripts [Resolvido]

Postfix - Ativando porta 587 SMTP

  

Comentários
[1] Comentário enviado por xflavio em 14/05/2012 - 15:27h

bacana sua dica fábio, me diga, o que você recomenda para uma migrar postfix+cyrus usando maildir?

[2] Comentário enviado por fs.schmidt em 23/05/2012 - 11:44h

Olá xflavio !

Costumo utilizar o ImapSync para migração de caixas postais, funciona muito bem !

Abraço

[3] Comentário enviado por xflavio em 14/06/2012 - 11:34h

Certo,

Fiz uma buscar na internet não achei o imapsync, se for de server to new server? pode ser usado também para sincronizar todas as coisas dos usuários, arquivos de conf, etc etc... ?

[4] Comentário enviado por fs.schmidt em 15/06/2012 - 08:50h

Ola novamente xflavio !

O Imapsync agora eh pago, voce paga um valor relativamente pequeno e tem atualizacao por 12 meses, funciona muito bem para migracao de caixas postais via IMAP.

Ele sincroniza somente caixas postais e mensagens nas contas IMAP, ok?

Abraco



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts