Melhor Prática: Migrando Caixas de E-mail (formato maildir)

2

Então aqui está a situação.

Eu tenho cerca de 20.000 contas de e-mail maildir ocupando várias centenas de GB de espaço em nosso servidor de e-mail. O Maildir, por natureza, mantém milhares de pequenos arquivos ******, em vez de um arquivo .mbox ou algo semelhante ...

Por isso, preciso migrar todos esses vários milhões de arquivos de um servidor para outro, por motivos de espaço e de ciclo de vida.

os métodos convencionais eu usaria todo o trabalho muito bem. O rsync é a opção que vem imediatamente à mente, no entanto, eu queria ver se há outras opções "melhores" por aí.

O Rsync não manipula transferências multi-thread nesta situação é uma droga, pois na verdade nunca acelera e satura minha conexão de rede, por isso a transferência de um servidor para outro levará horas além das horas, quando não deveria tome mais de um ou dois.

Eu sei que isso é altamente opinativo e subjetivo e, portanto, será marcado como wiki da comunidade.

    
por GruffTech 09.01.2011 / 10:31

2 respostas

3

considere um tubo de alcatrão como este:

tar cf - . | ssh remote "cd /backup; tar xf -"

Eu também gostaria de ver o bbcp. Percebo que a página sobre bbcp é enorme e confusa, mas aproveito para lê-la porque acho que é provavelmente a melhor solução aqui.

link

Eu fiz transferências de bbcp em várias redes e encontrei com as configurações corretas de thread que você normalmente pode saturar qualquer rede.

Pense cuidadosamente sobre o sistema de arquivos que você está usando, pois o ext3 provavelmente será muito ineficiente para muitos arquivos pequenos. Eu estaria usando o XFS.

    
por 09.01.2011 / 13:04
0

Dependendo dos seus requisitos de serviço, você também pode considerar usar uma combinação de proxies IMAP e imapsync do nginx.

O proxy que o IMAP solicita dinamicamente (usando a pesquisa de autenticação para determinar a qual servidor de backend o usuário deve se conectar). Iterar sobre sua lista de usuários com o imapsync. Depois que o usuário migrar para o novo servidor, bloqueie a conta, execute uma sincronização final e atualize um registro em algum lugar para que a pesquisa de autenticação retorne o novo servidor.

Desta forma, você não gera indisponibilidade visível para o usuário final.

O imapsync também é bastante inteligente em como faz sincronizações incrementais.

Eu fiz isso para migrar usuários do Courier para o Cyrus e entre back-ends do mailstore.

    
por 10.01.2011 / 09:03