Eu ficaria tentado a responder "pare de abusar do sistema de arquivos tratando-o como um banco de dados", mas tenho certeza de que isso não ajudaria muito;)
Primeiro, você precisa entender que, se sua limitação estiver na largura de banda disponível na leitura, não há nada que você possa fazer para melhorar o desempenho usando um simples comando de sincronização. Nesse caso, você terá que dividir os dados quando forem gravados, alterando a maneira como os arquivos são criados (o que significa, como você adivinhou corretamente, pedindo que os desenvolvedores alterem o programa de origem) ou usando um produto que faz geo-espelhamento (como, por exemplo, double-take : verifique como eu ' Você certamente encontrará alternativas, isso é apenas um exemplo).
Em casos semelhantes, a principal causa do problema não é normalmente os dados do arquivo, mas sim o acesso aos metadados. Sua primeira estratégia, portanto, será dividir a carga em vários processos que agem em diretórios (completamente) diferentes: isso deve ajudar o sistema de arquivos a acompanhar os metadados que você precisa.
Outra estratégia é usar seu sistema de backup para isso: reproduzir seus últimos backups incrementais no destino para manter o banco de dados em sincronia.
Finalmente, existem mais estratégias exóticas que podem ser aplicadas em casos específicos. Por exemplo, eu resolvi um problema semelhante em um site do Windows, escrevendo um programa que carregava os arquivos no sistema de arquivos a cada poucos minutos, mantendo assim o FS limpo.