Transferencia de una gran cantidad de datos entre continentes [duplicado]

12

Posible duplicado: ¿
forma gratuita de compartir archivos grandes a través de Internet?
¿Cuáles son algunas opciones para transferir archivos grandes sin usar Internet?

El laboratorio de mi esposa está haciendo un proyecto aquí en los Estados Unidos con colaboradores en Singapur. En ocasiones necesitan transferir una gran cantidad de datos de imágenes de alta dimensión (~ 10 GB comprimidos) a través de los continentes. Con las tecnologías actuales, ¿cuál sería una buena solución para este escenario de uso?

Se me ocurren algunos, pero ninguno parece ideal:

  • Conexión directa a través de Internet: la velocidad de transferencia es de aproximadamente 500 KB / s, también carece de una herramienta para manejar errores / retransmisiones.
  • Cargar a un servidor o servicio común como Dropbox: doloroso de cargar para un colaborador no estadounidense.
  • Grabar discos o copiarlos en HD y enviarlos a través de Courier: la latencia es importante, además del trabajo adicional para hacer una copia local.

¿Alguna sugerencia?

Actualización: ninguna de las partes de la colaboración son usuarios expertos en tecnología.

Franco
fuente
¿Imagen como en imágenes, o imagen como en un archivo que representa un DVD?
Daniel Beck
Imágenes de alta dimensión, generadas por microscopios.
Frank
1
¿Entonces son varios archivos muy grandes? ¿Podría darnos más información sobre el recuento de archivos, el tamaño de archivo individual y cuántos de esos cambios entre transferencias? ¿Son todos ellos, algunos, etc.?
Daniel Beck
Suena como un trabajo para Sneakernet o IPoAC .
Naftuli Kay

Respuestas:

20

Le sugiero que use rsync . Rsync admite el algoritmo de transferencia delta, por lo que si sus archivos se cambian solo parcialmente o si la transferencia anterior se finalizó de manera anormal, Rsync es lo suficientemente inteligente como para sincronizar solo las novedades / cambios.

Hay varios puertos del Rsync original para Windows y otros sistemas no compatibles con Unix, tanto gratuitos como no gratuitos. Consulte el artículo de Rsync Wikipedia para más detalles.

Rsync sobre SSH es muy utilizado y funciona bien. 10 GB es una cantidad relativamente pequeña de datos hoy en día, y no especificó qué significa "ocasionalmente". ¿Semanal? ¿Diario? ¿Cada hora? Con una velocidad de transferencia de 500 KB / seg, tomará alrededor de 6 horas, en realidad no mucho tiempo. Si necesita transferir los datos con frecuencia, probablemente sea mejor crear una tarea cron para iniciar rsync automáticamente.

haimg
fuente
¿No rsyncrequiere su propio protocolo para deltas, que requiere un sistema homólogo capaz en el otro extremo?
Daniel Beck
@DanielBeck: No hay nada en los documentos que diga que rsync sobre SSH no puede usar deltacopy ... Básicamente, el cliente rsync ejecuta otra copia rsync en el servidor a través de ssh, así que no veo por qué no funcionaría.
Haimg
+1 Tienes un punto allí. Sin embargo, ¿eso deja el requisito de Linux en el servidor?
Daniel Beck
¿ rsyncFunciona el algoritmo delta cuando se transfieren datos comprimidos binarios ( .zipo .jpg)?
Aditya
@DanielBeck: agregué un enlace al artículo de Wikipedia con varios puertos rsync de Windows. Aparentemente, al menos algunos de ellos funcionan como un servidor, incluido ssh. Sin embargo, nunca he usado ninguno de ellos.
Haimg
12

La conexión a través de Internet puede ser una opción viable y un programa como Bittorrent es exactamente adecuado para este propósito, ya que dividirá los archivos en partes lógicas para enviarlas a través de Internet y reconstruirlas en el otro extremo.

Bittorrent también le brinda corrección automática de errores, reparación de piezas dañadas y si más personas necesitan los archivos, obtendrán el beneficio de poder recibir el archivo de tantas fuentes como ya hayan descargado (partes del) archivo.

Las personas reconocidas lo ven como una buena manera de descargar películas y cosas por el estilo, pero tiene muchos más usos legales.

Muchos clientes de bittorrent también tienen rastreadores integrados para que no tenga que tener un servidor dedicado para alojar los archivos.

Mokubai
fuente
2
Gracias por el aporte. El uso de BitTorrent dentro de las redes académicas puede poner nerviosos a sus administradores. Además, la configuración y el mantenimiento de un servidor de seguimiento puede no ser tan fácil para un usuario promedio de computadoras.
Frank
2
Ese es un buen punto, bittorrent está activamente prohibido en muchas redes corporativas y académicas. Sin embargo, con una administración adecuada, puede configurar una lista blanca dentro de las redes de usuarios o máquinas que pueden usar Bittorrent, aunque esto significaría vínculos muy estrechos con los departamentos de TI respectivos para que funcionen correctamente. Como mencioné, no necesariamente necesita tener un servidor dedicado, ya que puede integrarse en muchos programas cliente. Sin embargo, si no es adecuado para su situación, no se preocupe, me pareció razonable teniendo en cuenta sus requisitos.
Mokubai
Si estaba usando bitorrent, también usar una semilla web parece una idea inteligente
Journeyman Geek
(Como ejemplo de uno de los 'usos más legales' mencionados en la respuesta, Facebook utiliza bittorrent para implementar su sitio, 1GB binario, en miles de servidores de producción. Qué desafortunado que una tecnología se descarte principalmente debido a uno de sus usos).
Anton Strogonoff
6

Divida el archivo en trozos de, por ejemplo, 50 MB (usando, por ejemplo split). Calcular sumas de comprobación para todos ellos (por ejemplo md5sum). Cargue directamente utilizando FTP y un cliente FTP tolerante a errores, como lftpen Linux. Transfiera todos los fragmentos y un archivo que contenga todas las sumas de verificación.

En el sitio remoto, verifique que todos los fragmentos tengan la suma de comprobación deseada, vuelva a cargar los que fallaron y vuelva a ensamblarlos en el archivo original (por ejemplo, usando cat).

Revierta la ubicación del servidor (publiqué bajo el supuesto de que el sitio de destino proporcionó el servidor y usted inicia la transferencia localmente cuando los archivos están listos) según sea necesario. Su cliente FTP no debería importarle.


He tenido problemas similares en el pasado y el uso de un cliente FTP tolerante a errores funcionó. Nunca se voltearon los bits, solo se cancela la conexión regular, por lo que podría omitir la creación de fragmentos y simplemente cargar el archivo. Todavía proporcionamos una suma de verificación para el archivo completo, por si acaso.

Daniel Beck
fuente
3
Sin embargo, debe tener en cuenta que lftpno cancela una transferencia en curso por ningún motivo. Asegúrese de tener siempre suficiente espacio libre en el disco en el sitio de destino.
Daniel Beck
3

Una variación de la respuesta de Daniel Beck es dividir los archivos en trozos del orden de 50 MB a 200 MB y crear archivos de paridad para todo el conjunto.

Ahora puede transferir los archivos (incluidos los archivos de paridad) con FTP, SCP u otra cosa al sitio remoto y hacer una verificación después de la llegada de todo el conjunto. Ahora, si hay partes dañadas, pueden ser reparadas por los archivos de paridad si hay suficientes bloques. Esto depende más o menos de cuántos archivos están dañados y cuántos archivos de paridad ha creado.

Los archivos de paridad se usan mucho en Usenet para enviar archivos grandes. La mayoría de las veces se dividen como archivos RAR en ese momento. No es raro enviar datos de hasta 50 a 60 GB de esta manera.

Definitivamente, debe consultar el primer enlace y también puede echar un vistazo a QuickPar , una herramienta que se puede utilizar para crear archivos de paridad, verifica los archivos descargados e incluso puede restaurar archivos dañados con los archivos de paridad proporcionados.

Martijn B
fuente
+1: este enfoque funciona bien en Usenet, y los archivos de paridad pueden reparar una cantidad asombrosa de datos faltantes. La desventaja es el tiempo de procesamiento requerido para dividir y generar archivos de paridad y para verificar y extraer archivos de paridad después de la recepción.
deizel
1

¿Es un gran archivo de 10 GB? ¿Podría ser fácilmente dividido?

No he jugado mucho con esto, pero me pareció un concepto interesante y relativamente simple que podría funcionar en esta situación:

http://sendoid.com/

Craig H
fuente
Sendoid es bastante bueno, pero desafortunadamente subir aún será doloroso. Por otra parte, el problema persiste para todos los tipos, creo, a menos que envíe un HDD por correo. +1 ya que es fácil de usar.
DMan
0

Haga que los datos estén disponibles a través de ftp / http / https / sftp / ftps (que requieren credenciales de inicio de sesión) y use cualquier administrador de descargas en el lado del cliente.

Los gestores de descargas están diseñados específicamente para recuperar datos independientemente de los errores que puedan ocurrir, por lo que se ajustan perfectamente a su tarea.

En cuanto al servidor, un servidor FTP suele ser el más fácil de configurar. Puede consultar una lista en Wikipedia. HTTPS, SFTP y FTPS permiten el cifrado (en FTP / HTTP puro, la contraseña se envía en texto claro), pero SFTP / FTPS son menos compatibles con el software del cliente y la configuración del servidor HTTP / HTTPS es complicada.

ivan_pozdeev
fuente
1
El problema con el uso de http o ftp es que si hay errores de transmisión, debe enviar todo de nuevo. rsync, bittorrent y otros protocolos pueden verificar que los archivos coincidan y solo retransmitir las piezas dañadas. Los datos de paridad, como QuickPar genera, también pueden ayudar.
Afrazier
Tanto FTP como HTTP incluyen una capacidad de reanudación de transferencia como una extensión opcional que es compatible con la mayoría de los servidores y prácticamente todos los administradores de descargas.
ivan_pozdeev
Ellos pueden reanudar, y teóricamente TCP se asegura de que los datos llegan en orden y con una suma de comprobación válida. Sin embargo, cualquiera que haya corrompido una gran transferencia HTTP o FTP ha aprendido el valor de protocolos más robustos o algún tipo de ECC.
Afrazier