conexão rsync fechando em torno de uma hora

3

Estou executando algum comando no cron que faz um rsync em dois data centers. A taxa de conexão entre os data centers é de cerca de 1Mbps. Notei que o rsync continua a falhar em torno de 2,7 GB para 2,9 GB de dados transferidos, o que poderia ser equivalente a cerca de uma hora ou mais na referida conexão. Eu sei no passado que nosso firewall está configurado para fechar conexões inativas que foram abertas por mais de uma hora.

Mas uma transferência de rsync seria realmente ociosa? O que posso fazer para corrigir isso?

Erro:

rsync: connection unexpectedly closed (2987596424 bytes received so far) [receiver]

rsync error: error in rsync protocol data stream (code 12) at io.c(605) [receiver=3.0.9]

rsync: connection unexpectedly closed (523 bytes received so far) [generator]

rsync error: error in rsync protocol data stream (code 12) at io.c(605) [generator=3.0.9]

Eu já tenho isso no meu ~ / .ssh / config (mas talvez esses valores precisem ser aumentados?):

Host *
  ServerAliveInterval 60
  ServerAliveCountMax 15
    
por Bradford 28.07.2013 / 15:34

1 resposta

4

Conexão de rede inativa durante a transferência do rsync:

Sim, rsync poderia ficar quieto durante a leitura do disco e enquanto eles não tiverem nenhum pacote para enviar ...

Você disse. nosso firewall está configurado para fechar conexões inativas que foram abertas por mais de uma hora , mas nada sobre a duração inativa contínua .

rsync process em ambas as extremidades, lendo arquivos inteiros para procurar diferenças entre pacotes, com base em checksums previamente computados.

Embora não haja diferença entre os arquivos nas duas extremidades, eles podem não ser trocados entre as duas extremidades até que as diferenças sejam encontradas.

Há um pequeno gráfico representando uma única execução de rsync entre minha área de trabalho e seu backup:

Em que podemos ver alguns segundos decorridos sem datas:

TIME                     BLOCKS           BYTES
                        IN  OUT      IN     OUT
...
Jul 28 15:00:07 2013   449   41   23443 1526403
Jul 28 15:00:08 2013     0    0       0       0
Jul 28 15:00:09 2013     0    0       0       0
Jul 28 15:00:10 2013   143  182   21348 1123986
Jul 28 15:00:11 2013   112  142    6966  523326
Jul 28 15:00:12 2013    31   30    1942    1890
Jul 28 15:00:13 2013    30   28    1853   88038
Jul 28 15:00:14 2013     0    0       0       0
Jul 28 15:00:15 2013    57   66    3954   38301
...

Solução alternativa:

Como solução alternativa, você pode usar o compartilhamento ssh baseado em soquete :

Primeiro, execute um ssh simples para conectar o soquete e a conexão

ssh -M -o ControlPath=$HOME/.ssh/socket_test destHost ping -n localhost

Do que em outra janela:

rsync -e 'ssh -e none -S $HOME/.ssh/socket_test' /src/file destHost:/dst/file

Desta forma, apenas uma conexão será usada para ambas as sessões ssh . O ping garantirá (muito) tráfego contínuo, do que rsync poderia funcionar tranquilamente, usando a mesma conexão de rede.

    
por 28.07.2013 / 16:15