Esto parece relacionado con este , pero es algo diferente.
Existe este enlace WAN entre dos sitios de la compañía, y necesitamos transferir un solo archivo muy grande (volcado de Oracle, ~ 160 GB).
Tenemos un ancho de banda completo de 100 Mbps (probado), pero parece que una sola conexión TCP no puede maximizarla debido a cómo funciona TCP (ACK, etc.). Probamos el enlace con iperf , y los resultados cambian drásticamente al aumentar el tamaño de la ventana TCP: con la configuración básica obtenemos un rendimiento de ~ 5 Mbps, con un WS más grande podemos obtener hasta ~ 45 Mbps, pero no más que eso. La latencia de la red es de alrededor de 10 ms.
Por curiosidad, ejecutamos iperf utilizando más de una conexión, y descubrimos que, al ejecutar cuatro de ellas, alcanzarían una velocidad de ~ 25 Mbps cada una, llenando todo el ancho de banda disponible; entonces la clave parece estar en ejecutar múltiples transferencias simultáneas.
Con FTP, las cosas empeoran: incluso con configuraciones TCP optimizadas (tamaño de ventana alto, MTU máximo, etc.) no podemos obtener más de 20 Mbps en una sola transferencia. Intentamos FTPing algunos archivos grandes al mismo tiempo, y de hecho las cosas mejoraron mucho más que al transferir uno solo; pero luego el culpable se convirtió en E / S de disco, porque leer y escribir cuatro archivos grandes de los mismos cuellos de botella del disco muy pronto; Además, parece que no podemos dividir ese único archivo grande en archivos más pequeños y luego fusionarlo de nuevo, al menos no en momentos aceptables (obviamente, no podemos pasar el empalme / fusión del archivo un tiempo comparable al de transfiriéndolo).
La solución ideal aquí sería una herramienta multiproceso que pudiera transferir varios fragmentos del archivo al mismo tiempo; Algo así como los programas peer-to-peer como eMule o BitTorrent ya lo hacen, pero desde una sola fuente a un solo destino. Idealmente, la herramienta nos permitiría elegir cuántas conexiones paralelas usar y, por supuesto, optimizar la E / S de disco para no saltar (también) locamente entre varias secciones del archivo.
¿Alguien sabe de tal herramienta?
O, ¿alguien puede sugerir una mejor solución y / o algo que ya no probamos?
PD: Ya pensamos en hacer una copia de seguridad en cinta / disco y enviarlo físicamente al destino; esa sería nuestra medida extrema si WAN simplemente no lo corta, pero, como dijo AS Tanenbaum, "nunca subestimes el ancho de banda de una camioneta llena de cintas que se precipitan por la carretera".
fuente
Respuestas:
La búsqueda de "transferencia de archivos de alta latencia" trae muchos éxitos interesantes. Claramente, este es un problema en el que tanto la comunidad CompSci como la comunidad comercial se han puesto a pensar.
Algunas ofertas comerciales que parecen encajar en la factura:
FileCatalyst tiene productos que pueden transmitir datos a través de redes de alta latencia, ya sea utilizando UDP o múltiples transmisiones TCP. También tienen muchas otras características (compresión sobre la marcha, transferencias delta, etc.).
La "tecnología" de transferencia de archivos fasp de Aspera también parece ajustarse a la factura de lo que está buscando.
En el mundo de código abierto, el proyecto uftp parece prometedor. En particular, no necesita sus capacidades de multidifusión, pero la idea básica de enviar un archivo a los receptores, recibir NAK por bloques perdidos al final de la transferencia y luego eliminar los bloques NAK (espuma, enjuague, repetición) Parece que haría lo que necesita, ya que no hay ACK'ing (o NAK'ing) del receptor hasta que la transferencia de archivos se haya completado una vez. Asumiendo que la red está latente y no tiene pérdidas, esto también puede hacer lo que necesita.
fuente
Sugerencia realmente extraña. Configure un servidor web simple para alojar el archivo en su red (sugiero nginx, por cierto), luego configure una PC con firefox en el otro extremo e instale la extensión DownThemAll .
Es un acelerador de descargas que admite fragmentación y reensamblaje.
Puede dividir cada descarga en 10 fragmentos para volver a ensamblar, ¡y en realidad hace las cosas más rápidas!
(Advertencia: nunca lo he probado en algo tan grande como 160 GB, pero funciona bien con archivos iso de 20 GB)
fuente
El transporte UDT es probablemente el transporte más popular para comunicaciones de alta latencia. Esto lleva a su otro software llamado Sector / Sphere, un "Sistema de archivos distribuidos de alto rendimiento y un motor de procesamiento de datos en paralelo" que podría valer la pena echarle un vistazo.
fuente
Mi respuesta es un poco tardía, pero acabo de encontrar esta pregunta, mientras buscaba fasp. Durante esa búsqueda también encontré esto: http://tsunami-udp.sourceforge.net/ , el "Protocolo UDP Tsunami".
Desde su sitio web:
En cuanto a la velocidad, la página menciona este resultado (usando un enlace entre Helsinki, Finlandia a Bonn, Alemania a través de un enlace de 1GBit:
Si desea utilizar un acelerador de descargas, eche un vistazo a lftp, este es el único acelerador de descargas que puede hacer un espejo recursivo, que yo sepa.
fuente
La utilidad bbcp de la página muy relevante 'Cómo transferir grandes cantidades de datos a través de la red' parece ser la solución más simple.
fuente