rsync não sincroniza arquivos

4

Eu enfrentei um problema estranho. Eu costumo usar rsync para sincronizar arquivos entre servidores e agora este utilitário se comporta de uma maneira estranha.

Em primeiro lugar, aqui está o comando que eu uso:

server1# rsync -av -e ssh ./server1_dir/ [email protected]:/server2_dir/

Inicia o processo de sincronização como deveria, mas nenhum arquivo é sincronizado, apenas diretórios. Nem todos os diretórios, na verdade, já que o processo rsync foi desligado por um longo tempo, resultando no erro de tempo limite.

Se eu matar o processo e fizer outra tentativa, ele não será iniciado. A única mensagem que vejo:

sending incremental file list

O primeiro pensamento foi - firewall. Mas os dois servidores não têm instalado. Eu até tentei compilar manualmente a versão mais recente do rsync sem sucesso.

Alguém poderia me ajudar nesse problema? Muito obrigado.

Atualizar. saída strace no servidor1

root@server1 [~]# ps auxf|grep [r]sync
root     13958  0.0  0.0  70676  1232 pts/0    S+   23:29   0:00  |       \_ rsync -avv -e ssh directory1 [email protected]:/home
root     13959  0.0  0.2  58436  3256 pts/0    S+   23:29   0:00  |           \_ ssh -l root 192.168.1.1 rsync --server -vvlogDtpre.isf . /root

root@server1 [~]# strace -p 13959
Process 13959 attached - interrupt to quit
select(7, [3 4], [], NULL, NULL
    
por Andrew 15.06.2012 / 00:07

2 respostas

1

Finalmente, o problema foi resolvido. É difícil acreditar, mas a MTU estava incorreta na interface de rede principal. Depois de alterar o MTU para 1460, o processo de sincronização foi iniciado e concluído imediatamente. Obrigado a todos por respostas.

    
por 15.06.2012 / 02:17
1

Eu encontrei os mesmos sintomas recentemente. Ambos os lados strace mostraram que estavam em select () esperando pelo outro lado. Então percebi que o servidor tinha uma grande fila de envio no netstat, então comecei a procurar soluções em nível de rede. Eu tentei reduzir o MTU como acima, mas isso não fez diferença. Então eu desabilitei o SACK em ambos os lados e o rsync começou a funcionar novamente:

echo 0 > /proc/sys/net/ipv4/tcp_sack

Há alguma discussão sobre bugs da Cisco com ack seletivo e aleatorização do número de sequência, o que é pelo menos uma razão plausível para isso fazer a diferença.

    
por 09.08.2012 / 20:07

Tags