Uma maneira de acelerar o rsync no processo de duas fases

1

Aqui está o que eu faço:

rsync everything
enter maintenance
rsync changes since first rsync
leave maintenance

O primeiro rsync está sincronizando as alterações do prefeito sem bloquear o sistema. Pode correr muito tempo e está bem.

Mas o segundo rsync deve terminar o mais rápido possível e normalmente não encontra nenhuma ou apenas algumas alterações. No entanto, como esses arquivos são muitos, demora bastante.

Existe algum truque que eu possa usar porque sei que o sincronizei antes?

Aqui estão os sinalizadores de rsync:

rsync --partial --progress --delete --archive --verbose --compress --links --times
    
por Torge 25.05.2017 / 18:26

3 respostas

2

Algumas dicas:

  • ao sincronizar muitos arquivos, o processo de mapeamento uid-to-username pode levar um tempo significativo; Então, tente adicionar a opção --numeric-ids à sua invocação rsync
  • em ambos os lados, programe um find <path> > /dev/null algum tempo antes da manutenção rsync ; isso pré-carregará os caches de metadados em ambos os nós, acelerando muito a rsync execution
por 25.05.2017 / 18:58
2

Acelerando o rsync por ssh

Você pode utilizar um cliente diferente que é multi-threaded que irá dividir seu trabalho em tantas conexões quanto o ssh no final remoto permitir e que você especificar.

Dê uma olhada no Rsync sobre o SFTP usando o cliente LFTP e seu espelho subsistema

Você pode usar a opção --loop para continuar a sincronização (re-sincronizar) até que nada seja alterado.

Eu uso isso em vários sistemas que replicam backups e logs de banco de dados para destinos remotos a cada hora. É extremamente rápido. Seus únicos limites serão a largura de banda e as conexões máximas permitidas para a autenticação no terminal remoto de uma só vez, o número máximo de arquivos que podem ser abertos de uma só vez.

Este método também pode ser mais seguro que o rsync + ssh, já que o SFTP do Chroot é suportado. Não há necessidade de fornecer um shell para o cliente, se você preferir.

    
por 25.05.2017 / 23:27
0

Eu prefiro adicionar uma segunda etapa do rsync antes de colocar o sistema em manutenção. Se o primeiro passo levar as idades, o segundo passo pode levar minutos / horas antes de colocar o sistema em manutenção. Então o último leva segundos / minutos, em vez de horas.

    
por 25.05.2017 / 18:47

Tags