Parece relacionado a este , mas é um pouco diferente.
Há esse link WAN entre dois sites da empresa e precisamos transferir um único arquivo muito grande (despejo do Oracle, ~ 160 GB).
Temos largura de banda total de 100 Mbps (testada), mas parece que uma única conexão TCP não pode ser maximizada devido a como o TCP funciona (ACKs, etc.). Testamos o link com o iperf , e os resultados mudam drasticamente ao aumentar o tamanho da janela TCP: com as configurações básicas, obtemos uma taxa de transferência de ~ 5 Mbps, com um WS maior podemos obter até 45 Mbps, mas não mais do que isso. A latência da rede é de cerca de 10 ms.
Por curiosidade, rodamos o iperf usando mais de uma conexão única e descobrimos que, ao executar quatro delas, elas realmente alcançariam uma velocidade de ~ 25 Mbps cada, preenchendo toda a largura de banda disponível; portanto, a chave parece estar na execução de várias transferências simultâneas.
Com o FTP, as coisas pioram: mesmo com configurações TCP otimizadas (tamanho da janela alto, MTU máx. Etc.), não podemos obter mais de 20 Mbps em uma única transferência. Tentamos fazer o FTP de alguns arquivos grandes ao mesmo tempo e, de fato, as coisas ficaram muito melhores do que ao transferir um único; mas o culpado se tornou a E / S do disco, porque a leitura e gravação de quatro arquivos grandes dos mesmos gargalos do disco muito em breve; Além disso, parece que não conseguimos dividir esse único arquivo grande em arquivos menores e, em seguida, mesclá-lo novamente, pelo menos em horários aceitáveis (obviamente, não podemos gastar splicing / mesclando o arquivo em um tempo comparável ao de transferência).
A solução ideal aqui seria uma ferramenta multithread que pudesse transferir vários pedaços do arquivo ao mesmo tempo; programas semelhantes ao eMule ou BitTorrent já fazem, mas de uma única fonte para um único destino. Idealmente, a ferramenta nos permitiria escolher quantas conexões paralelas usar e, é claro, otimizar a E / S do disco para não pular (muito) loucamente entre várias seções do arquivo.
Alguém conhece essa ferramenta?
Ou alguém pode sugerir uma solução melhor e / ou algo que já não tentamos?
PS: Já pensamos em fazer o backup em fita / disco e enviá-lo fisicamente ao destino; essa seria nossa medida extrema se a WAN simplesmente não resolver, mas, como AS Tanenbaum disse: "Nunca subestime a largura de banda de uma caminhonete cheia de fitas rolando pela estrada".
fonte
Respostas:
A busca por "transferência de arquivos de alta latência" traz muitos hits interessantes. Claramente, esse é um problema que tanto a comunidade CompSci quanto a comunidade comercial colocaram.
Algumas ofertas comerciais que parecem se encaixar na conta:
O FileCatalyst possui produtos que podem transmitir dados por redes de alta latência usando UDP ou vários fluxos TCP. Eles também têm muitos outros recursos (compactação dinâmica, transferências delta etc.).
A "tecnologia" fasp de transferência de arquivos da Aspera também parece ser adequada para o que você procura.
No mundo do código aberto, o projeto uftp parece promissor. Você não precisa particularmente dos recursos de multicast, mas da idéia básica de enviar um arquivo para os receptores, receber NAKs por blocos perdidos no final da transferência e depois explodir os blocos NAK (ensaboar, enxaguar, repetir) Parece que faria o que você precisa, pois não há ACK'ing (ou NAK'ing) do receptor até que a transferência do arquivo seja concluída uma vez. Supondo que a rede seja apenas latente e sem perdas, isso também pode fazer o que você precisa.
fonte
Sugestão realmente estranha: configure um servidor Web simples para hospedar o arquivo na sua rede (sugiro o nginx, aliás), depois configure um PC com o Firefox na outra extremidade e instale a extensão DownThemAll .
É um acelerador de download que suporta chunking e remontagem.
Você pode dividir cada download em 10 blocos para remontagem, e isso realmente torna as coisas mais rápidas!
(ressalva: eu nunca tentei em algo tão grande quanto 160 GB, mas funciona bem com arquivos iso de 20 GB)
fonte
O transporte UDT é provavelmente o transporte mais popular para comunicações de alta latência. Isso leva ao outro software chamado Setor / Esfera, um "Sistema de Arquivos Distribuídos de Alto Desempenho e um Mecanismo de Processamento de Dados Paralelo", que vale a pena dar uma olhada.
fonte
Minha resposta está um pouco atrasada, mas acabei de encontrar esta pergunta, enquanto procurava por fasp. Durante essa pesquisa, também encontrei o seguinte: http://tsunami-udp.sourceforge.net/ , o "Tsunami UDP Protocol".
No site deles:
Quanto à velocidade, a página menciona esse resultado (usando um link entre Helsinque, Finlândia e Bonn, Alemanha, através de um link de 1 GBit:
Se você deseja usar um acelerador de download, dê uma olhada no lftp, este é o único acelerador de download que pode fazer um espelho recursivo, tanto quanto eu sei.
fonte
O utilitário bbcp da página muito relevante 'Como transferir grandes quantidades de dados via rede' parece ser a solução mais simples.
fonte