Cyrus IMAPD: Separando os meta-arquivos

Publicado por Fabio Soares Schmidt em 08/05/2012

[ Hits: 5.435 ]

 


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

Zimbra: Melhorando eficácia do seu anti-Spam

Recuperando arquivos skiplist corrompidos

Thunderbird: Removendo (de fato) mensagens do servidor IMAP

SpamAssassin e PostgreSQL: Erro: sintaxe de entrada é inválida para tipo bytea [Resolvido]

Utilizando NAT em containers Openvz: Iptables: No chain/target/match by that name

Leitura recomendada

Cliente de e-mail que funciona com Hotmail no Linux

Fazendo seu sendmail autenticar em outro sendmail

Configurando o Thunderbird para trabalhar com contas Hotmail

Whitelist e blacklist globais no Amavis-new

Compactando pastas do Thunderbird

  

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