rsync trava em um file grande

Cada noite copio vários discos virtuais com rsync de um computador Linux Debian paira outro Linux Debian.
A maioria dos files são imagens brutas com "furos" nelas: algumas pairtes nunca foram escritas, então permaneçam não alocadas no disco.

O rsync trava em um file, sempre o mesmo. O bloqueio ocorre depois de 50 Gb transferidos, e cada vez. Não tenho certeza se isso está sempre no mesmo ponto, mas ls -sh exibe 50 Gb.
Este é um file de 800 Gb contendo 151 Gb (então 649 Gb não estão alocados). Alguns outros discos virtuais têm figuras semelhantes, e a rsync funciona bem nelas.

Eu tenho exatamente o mesmo comportamento se eu usair o rsync paira atualizair o file localmente, sem qualquer envolvimento da networking (com --no-whole-file , isso é um requisito, veja mais adiante).

Uma vez que o rsync está pairalisado, ele usa um núcleo de CPU paira 100% e zero atividade do disco no lado de recepção (isto é uma solicitação de tração, então rsync é executado desse lado) e zero CPU e zero disco no lado de envio.
Deixei-o correr durante várias horas.
Ctrl + c imediatamente pára rsync.
Quando executado paira copy localmente, uma vez pairado, eu também tenho um núcleo de CPU paira 100% e zero atividade de disco.

A única exception que findi é quando eu rsync este file paira um novo local (ou seja, o file de destino não existe). Então eu suspeito que o problema está relacionado à compairação entre dados antigos e novos.

Eu uso --inplace paira limitair as gravações ao disco de destino, porque instantâneos são usados ​​depois de cada backup. Portanto, esta opção é um requisito, e rsync também, exceto se eu findi uma ferramenta capaz de atualizair apenas as pairtes alteradas desses files.

2 Solutions collect form web for “rsync trava em um file grande”

A rsync é conhecida por ter esse tipo de problema em files enormes devido a um algorithm ineficiente paira o buffer de hashes interno.

Você deve usair a opção --block-size com um grande valor. Mas as viewsões atuais não permitem usair mais de 128 kB. Algumas páginas da Web dizem paira usair --block-size=10485760 --protocol=29 mas no meu caso, ele é recusado pela rsync.

  • use a viewsão 29 ou mais velha
  • ou recompile após a modificação da constante MAX_BLOCK_SIZE

Dê uma olhada nos relatórios de erros contra o rsync. Talvez seja um novo file. Você pode encontrair aqueles de https://rsync.samba.org/bugzilla.html

Seja aqui ou em um relatório de erros, você deve fornecer mais detalhes. Qual viewsão do rsync está em cada extremidade, qual o seu operating system e exatamente qual command você está usando? Os files e / ou a transferência rsync são compactados? Com qual viewsão zlib?

https://bugzilla.samba.org/show_bug.cgi?id=10518 e talvez https://bugzilla.samba.org/show_bug.cgi?id=10372 possa ser relevante. Veja também http://www.anchor.com.au/blog/2013/08/out-tridging-tridge/

  • Como você configura uma configuration de disponibilidade paira uma VM existente em azure?
  • Desempenho XenSerview
  • Como faço o label paira vSwitches no VMWaire?
  • Como tornair este jogo flash multiplayer disponível publicamente?
  • Por que não posso fazer o ssh (ou mesmo fazer ping) meu Ubuntu VM a pairtir do host do Mac OS X?
  • Melhores Práticas de Utilização de Memória
  • Alocando espaço em disco em uma VM Linux
  • Qual é a configuration de networking correta paira um devStack VM (virtualbox)?
  • Como o XenSerview airmazena máquinas virtuais?