Eu tenho um único diretório raiz (em um NAS) que eu preciso fazer backup para outro servidor. A hierarquia do diretório tem várias camadas de profundidade e a maioria dos dados é composta de coleções de arquivos extremamente grandes dentro de uma dúzia de diretórios localizados em vários locais da hierarquia. Se eu fizer um rsync no diretório pai, posso obter uma taxa de transferência de cerca de 100MB / s. Eu testei a execução de vários processos rsync manualmente em diretórios diferentes e posso obter um throughput maior (350-500MB / s). Estou executando o rsync do servidor de destino.
Eu implementei uma solução ingênua, onde ele apenas divide os rsyncs usando os diretórios diretamente sob o diretório pai, mas ele precisa ser mais direcionado do que isso, já que alguns desses diretórios contêm mais dados do que outros. Idealmente, cada processo seria responsável por sincronizar aproximadamente a mesma quantidade de dados.
Existe uma maneira de usar o rsync para dividir uma tarefa em processos n rsync, cada um com um número (aproximadamente) igual de arquivos.
Tags process rsync filesystems threads