Quero replicar na região de 10 TB de dados ( muitos arquivos pequenos, baixo nível de rotatividade) em uma WAN com impacto mínimo na infraestrutura disponível.
Embora eu possa simplesmente usar o rsync, isso significa procurar as alterações e comparar os dados locais e remotos (E/S de disco, largura de banda de rede e custos de CPU), embora o rsync faça isso com eficiência, gostaria de saber se existe uma solução mais eficiente que pode rastrear alterações e propagá-los (de preferência bidirecionalmente).
O armazenamento em si é iSCSI em dispositivos HP NAS. Examinamos anteriormente o uso de seus recursos de replicação integrados, mas descobrimos que eles são lentos e não confiáveis.
Os espelhos DRBD exigiriam hardware adicional em ambas as extremidades. O que seria bastante caro. Eu também fui mordido por falhas de replicação DRBD no passado.
Glusterfs seria mais eficiente? Seria realmente estúpido ir com uma configuração de 2 nós? Existe uma solução melhor?
No nível do bloco, a sincronização pode ser feita usando o Starwind que faz um disco espelhado em ambas as extremidades. Ele pode ser executado em iSCSI LUNs, tornando o armazenamento ativo-ativo. Nenhum hardware adicional necessário. https://www.starwindsoftware.com/blog/storage-ha-on-the-cheap-fixing-synology-diskstation-flaky-performance-with-starwind-free-part-3-failover-duration
No nível do arquivo, lsyncd e rsync fazem um espelhamento sincronizando arquivos entre servidores. Essas ferramentas podem exigir ajustes nos arquivos de configuração para garantir que o mecanismo de bloqueio de arquivos funcione conforme o esperado e que não ocorra divisão do cérebro. https://linoxide.com/tools/setup-lsyncd-sync-directories/
Você pode usar
lsyncd
para ter uma sincronização constante de arquivos entre sistemas.lsyncd
instala inotify watchs em diretórios que são sincronizados. Sempre que os arquivos forem alterados nos diretórios, ele transferirá as alterações para o servidor remoto usandorsync
.Você pode usar ionice para limite de carga de io e argumento bwlimit em rsync para limite de rede io. Existem também alguns outros métodos: Rsync enorme conjunto de dados de arquivos pequenos de 5 TB, + M de arquivos pequenos
Se você estiver disposto a tentar algo novo, o IPFS pode ser uma ótima ferramenta para você experimentar.
https://ipfs.io/
O uso de um cluster IPFS privado pode fornecer ótimos resultados, dependendo das suas necessidades de replicação de arquivos.
https://cluster.ipfs.io/
No entanto, tenha em mente, isso é muito novo, mas está amadurecendo muito rapidamente.