21 votos

¿Cuál es la mejor manera de transferir un solo archivo grande a través de una alta velocidad, alta latencia del enlace WAN?

Esto se ve relacionado con este, pero es algo diferente.

No es este enlace WAN entre los dos sitios de la empresa, y tenemos la necesidad de transferir un solo archivo muy grande (Oracle volcado, ~160 GB).

Tenemos 100 Mbps de ancho de banda (probado), pero se ve como una única conexión TCP no puede max a cabo debido a la forma de TCP obras (Ack, etc.). Hemos probado el vínculo con iperf, y los resultados cambian drásticamente al aumentar el Tamaño de la Ventana TCP: con configuración de base obtenemos ~5 Mbps de rendimiento, con un mayor WS podemos llegar hasta a ~45 Mbps, pero no más que eso. La latencia de la red es de alrededor de 10 ms.

Por curiosidad, que corrió iperf el uso de más de una sola de las conexiones, y hemos encontrado que, cuando se ejecuta cuatro de ellos, de hecho, alcanzar una velocidad de ~25 Mbps cada uno, llenando todo el ancho de banda disponible; por lo que la clave parece estar en la ejecución de múltiples transferencias simultáneas.

Con FTP, las cosas se ponen peor: incluso con la optimización de los ajustes TCP (alta Tamaño de la Ventana, max MTU, etc.) no podemos conseguir más de 20 Mbps en una sola transferencia. Hemos intentado FTPing algunos archivos de gran tamaño al mismo tiempo, y, de hecho, las cosas se pusieron mucho mejor que cuando la transferencia de uno solo; pero entonces el culpable se convirtió en el disco I/O, ya que la lectura y la escritura de los cuatro archivos de gran tamaño de la misma cuellos de botella de disco muy pronto; también, que no parecen ser capaces de dividir ese único archivo de gran tamaño en otros más pequeños, y luego se funden de nuevo, al menos no en tiempos aceptables (obviamente no podemos pasar de empalme/fusión el archivo de un tiempo comparable a la de la transferencia).

La solución ideal en este caso sería una herramienta de multiproceso que se podría transferir varios trozos de archivos al mismo tiempo; algo así como peer-to-peer programas como eMule o BitTorrent ya lo hacen, pero a partir de una sola fuente a un destino único. Idealmente, la herramienta nos permitiría elegir el número de conexiones paralelas a utilizar, y, por supuesto, optimizar la e/S de disco para no saltar (demasiado) locamente entre las diferentes secciones del archivo.

¿Alguien sabe de una herramienta de este tipo?

O, ¿puede alguien sugerir una mejor solución y/o algo que ya no probar?

P. S. ya Hemos pensamiento de respaldo en cinta/disco y físicamente envío a destino; esa sería nuestra medida extrema si WAN simplemente no se corte, pero, como A. S. Tanenbaum, dijo, "Nunca subestimes el ancho de banda de una vagoneta llena de cintas bajando por la carretera."

15voto

Evan Anderson Puntos 118832

La búsqueda de "alta latencia de transferencia de archivos" trae un montón de interesantes visitas. Claramente, este es un problema que tanto el CompSci de la comunidad y la comunidad comercial ha puesto thougth.

Un par de ofertas comerciales que parecen encajar el proyecto de ley:

  • FileCatalyst tiene productos que pueden transmitir datos a través de redes de alta latencia, ya sea usando UDP o varios flujos TCP. Ellos tienen un montón de otras características, también (on-the-fly de compresión, delta transferencias, etc).

  • El fasp archivo de transferencia de "tecnología" de Aspera parece encajar el proyecto de ley para lo que usted está buscando, también.

En el open-source mundo, el uftp proyecto se ve prometedor. No tienen necesidad particular de su multidifusión capacidades, pero la idea básica de la voladura de un archivo a los receptores, que reciben NAKs para el incumplimiento de bloques al final de la transferencia y, a continuación, voladura de la NAK había bloques (espuma, enjuague, repita) suena como que podría hacer lo que usted necesita, ya que no hay CONFIRMACIÓN ing (o NAK ing) desde el receptor hasta después de la transferencia de archivos se ha completado una vez. Suponiendo que la red es sólo latente, y no tiene pérdida, esto podría hacer lo que usted necesita, también.

9voto

Pablo Venturino Puntos 1660

Realmente extraña sugerencia a este.. Crear un sencillo servidor web para alojar el archivo en la red (sugiero nginx, por cierto), a continuación, configurar un pc con firefox en el otro extremo, y instalar el DownThemAll extensión.

Es un acelerador de descargas que soporta fragmentación y reensamblaje.
Usted puede romper cada descarga en 10 pedazos para volver a montar, y lo hace en realidad hacer las cosas más rápido!

(advertencia: nunca he probado nada tan grande como la de 160GB, pero funciona bien con 20 gb de archivos de la iso)

7voto

Steve-o Puntos 651

La UDT de transporte es probablemente el más popular de transporte de alta latencia de las comunicaciones. Esto conduce a su otro software llamado Sector/Ámbito de un "Alto Rendimiento del Sistema de Archivos Distribuido y Paralelo Motor de Procesamiento de Datos", que podría ser vale la pena mirar.

5voto

user27476 Puntos 1544

Mi respuesta es un poco tarde, pero acabo de encontrar esta pregunta, buscando fasp. Durante esa búsqueda también encontré esto : http://tsunami-udp.sourceforge.net/ , el "Tsunami Protocolo UDP".

Desde su página web :

Rápido de usuario-espacio de transferencia de archivos el protocolo que utiliza el control de TCP y UDP los datos para la transferencia a través de muy alta velocidad de larga distancia, redes (≥ 1 Gbps y incluso 10 GE), diseñado para proporcionar más el rendimiento que sea posible con TCP a través de las mismas redes.las mismas redes.

En cuanto a velocidad se va, la página menciona este resultado (mediante un vínculo entre Helsinki, Finlandia en Bonn, Alemania, a través de una 1GBit enlace:

Figura 1 - transferencia internacional a través de Internet, con un promedio de 800 Mbit/segundo

Si desea utilizar un acelerador de descargas, eche un vistazo a lftp , este es el único acelerador de descargas que puede hacer un recursiva espejo, que yo sepa.

5voto

Robert Polson Puntos 21

El bbcp utilidad de la muy relevante a la página de "Cómo transferir grandes cantidades de datos a través de la red' parece ser la solución más simple.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: