LVM + MongoDB. Caindo na velocidade da criação de backup

2

Até recentemente, fizemos backups do mongo arquivando o instantâneo do LVM em um servidor SECONDARY oculto com o RAID10 em discos SAS.

Atualmente, a operação de fazer um snapshot a partir do volume com 500 Gb de dados demora pouco.

O arquivo final é de cerca de 100 Gb, e após a criação dos primeiros 35 Gb durante 30 minutos, a velocidade do disco diminui incrivelmente. Até o momento em que o arquivo atingiu 52 Gb, estava funcionando por mais de 6 horas. Eu sei que fazer o snapshot do LVM durante a E / S ativa no volume principal pode desacelerar as operações do disco, mas não consegui imaginar que ele poderia atrasá-lo em dezenas de vezes!

Agora estou pensando em como melhorar a velocidade de backup .

Como uma possível solução, vejo como paramos o mongodb no servidor de backup e executamos o snapshot do LVM a partir do servidor / volume "offline". Em seguida, habilite-o novamente e sincronize novamente com o replicaSet principal.

Mas isso pode causar um problema quando o php-mongo-driver não reage adequadamente nas alterações da lista de servidores no replicaSet. E precisamos reiniciar o php-fpm em todos os clientes conectados para consertar isso e fazer o php ver novas mudanças rapidamente.

Por favor, nos recomende as melhores maneiras de como fazer um backup do mongo em dados 500Gb + sob carga de E / S ativa.

Obrigado antecipadamente!

    
por user76667 23.03.2013 / 10:41

1 resposta

0

Com relação à lentidão do snapshot do LVM, se você estiver fazendo muitas gravações distribuídas aleatoriamente em um grande número de arquivos, o que seria se estivesse inserindo / udando documentos em um grande conjunto de dados do MongoDB, então o LVM pode realmente lutar para manter-se. Um reparo / compact no banco de dados (ou um ressincronização do node do zero) pode ajudar em termos do número de arquivos alterados (o compact "desfragmentará" os dados nos arquivos, o repair / resync irá reescrever os dados a partir do zero), mas isso pode ser apenas uma melhoria incremental.

Em termos de sua solução proposta, parece uma boa, mas eu aconselho você a fazer o nó que você está fazendo backup de um nó oculto , então você pode eliminar a preocupação com o driver e definir as alterações. Os drivers usam o comando isMaster para determinar o layout de um conjunto e, quando um nó está oculto, não é retornado por esse comando.

Você pode desligar o nó, fazer o seu instantâneo e reiniciar uma vez para permitir que ele seja sincronizado novamente.

    
por 19.06.2013 / 12:37