Pular para o conteúdo

Cyrus IMAPD: Separando os meta-arquivos

Dica publicada em Linux / Correio Eletrônico
Fabio Soares Schmidt fs.schmidt
Hits: 6.076 Categoria: Linux Subcategoria: Correio Eletrônico
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Otimizando o squid: Abortando solicitações interrompidas

Postfix - Erro: fatal: no SASL authentication mechanisms [Resolvido]

Cyrus IMAP: Muitas mensagens "fetching user_deny" no log

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

Forçando o cache do Windowsupdate com Squid

Vacuum no SQLite - melhorando a performance do Evolution

Zimbra Desktop no Ubuntu 12.04 LTS

Problemas ao abrir anexos do tipo 'winmail.dat' no Evolution (MS Outlook)

Compilando o Cyrus Imap 2.4.8 no Debian, sem Kerberos

Evitando problemas no servidor SMTP para quem usa sendmail

#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

Entre na sua conta para comentar.