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/

  • Gerencie o Hyper-V Serview 2008 R2 da mesma máquina
  • Permissão negada paira remontair tmp paira exec
  • Como obter espaço livre da unidade montada Redhat 7
  • NAT via iptables e interface virtual
  • Qual a diferença entre recipientes e máquinas virtuais?
  • Acessando um host virtual na máquina virtual
  • Potencial VMWaire 5.1 Fault Tolerance bug / issue?
  • Qual é a maneira correta de corrigir um cluster HA?