RSYNC do Cygwin para grande transferência de dados

4

Estou usando o rsync do Cygwin para fazer uma transferência de dados em grande escala de um antigo HP MSA 1000 para um novo DAS anexado a um servidor diferente. Eu tenho um daemon em execução no servidor remoto no modo somente leitura e uma cópia local, gravando os arquivos em disco.

Um dos meus servidores é um repositório de imagens com mais de um milhão de arquivos espalhados por cerca de 300 diretórios. Cada arquivo tem em média apenas algumas centenas de kilobytes. Mais do que qualquer outra caixa, esta está se mostrando problemática.

O processo rsync funcionará por um tempo - algumas vezes 20 minutos, algumas vezes por hora - e então simplesmente sai e fica inativo em um determinado nome de arquivo.

Verifiquei que o arquivo não está corrompido no servidor remoto e que o arquivo foi criado com êxito na unidade local. Eu executei o cliente rsync no modo -vv, que não retorna nada. Eu verifiquei os logs criados pelo daemon. Eu olhei para a utilização da rede na interface, que está ociosa. Eu olhei para as configurações de AV para ver se algo poderia representar um problema lá. Eu até atualizei para o último lançamento do Cygwin.

O que eu preciso para manter essa conexão?

EDITAR:

O sistema do cliente está usando o comando

rsync.exe server::Drives/f/Repo/ /cygdrive/T/Repo --archive -P  -vv

O servidor está usando o comando     rsync.exe --daemon --no-detach --config "rsyncd.conf"

O conteúdo do rsyncd.conf:

use chroot = false
strict modes = false
hosts allow = 192.168.100.9
log file = c:/rsyncd.log
uid=0
gid=0

[Drives]
path = /cygdrive
read only = yes

EDITAR:

O servidor de arquivos é 2003, o tipo de disco na matriz é GPT e o tamanho da matriz é de aproximadamente 4 TB.

EDITAR:

Estranho .. Parece que o processo está confiantemente com erros em cerca de 175.000 arquivos. Rsync corre bem quando eu escolho o mesmo diretório que tem problemas com um de cada vez.

EDITAR:

rsync  version 3.0.9  protocol version 30
Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
    no socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes

Uma falha semelhante ocorreu ao passar do mesmo conjunto de arquivos com o Cygwin para uma instalação do Linux. Isso não aconteceu até várias horas depois do normal, no entanto.

    
por Tim Brigham 23.02.2012 / 17:15

1 resposta

0

Você não diz o volume total de dados, então não posso ter certeza, mas eu usei o rsync antes em repositórios de tamanho comparável. Até agora, não me deparei com esse problema em particular. A grande maioria do meu uso é em dispositivos Linux / Unix, com apenas algumas execuções ocasionais do Windows.

Para descobrir o que está realmente acontecendo, talvez você queira tentar executar o rsync com argumentos -v adicionais, veja se consegue obter detalhes suficientes para ver o que está fazendo quando ele é interrompido. Se isso não ajudar, você pode procurar executar o rsync em strace ou ltrace .

Como solução alternativa, você pode tentar --include-from=FILE para especificar uma lista de diretórios a serem incluídos e, em seguida, listar os 300 diretórios mencionados. Não tenho certeza se isso aconteceria no mesmo problema que você está vendo ou não.

Se isso não funcionar, você pode percorrer a lista de diretórios e rsync cada um individualmente com algo como:

for DIR in $(cat file_of_dirs); \
do rsync.exe server::Drives/f/Repo/$DIR /cygdrive/T/Repo --archive -P -vv; \
done

(escrito para bash / bourne shell, desde que você disse que tem o Cygwin instalado. Poderia ser feito uma linha sem as barras no final das linhas.)

Obviamente, isso não responde à pergunta de por que o rsync está esperando por você, mas deve sincronizar seus arquivos novamente.

    
por 27.03.2012 / 00:15