Estoy tratando de transferir aproximadamente 100k archivos con un total de 90gb. En este momento estoy usando rsync daemon pero es lento 3.4mb / sy necesito hacerlo varias veces. Me pregunto qué opciones tengo que maximicen una conexión de 100mbit a través de Internet y sean muy confiables.
rsync
file-transfer
incógnito2
fuente
fuente
Respuestas:
¿Has considerado Sneakernet ? Con grandes conjuntos de datos, el envío nocturno a menudo será más rápido y más barato que la transferencia a través de Internet.
fuente
¿Cómo? O TL; DR
El método más rápido que he encontrado es una combinación de
tar
,mbuffer
yssh
.P.ej:
Con esto, he logrado transferencias de red locales sostenidas de más de 950 Mb / s en enlaces de 1 Gb. Reemplace las rutas en cada comando tar para que sean apropiadas para lo que está transfiriendo.
¿Por qué? mbuffer!
El mayor cuello de botella en la transferencia de archivos grandes a través de una red es, con mucho, la E / S de disco. La respuesta a eso es
mbuffer
obuffer
. Son en gran medida similares perombuffer
tiene algunas ventajas. El tamaño predeterminado del búfer es de 2 MB parambuffer
y 1 MB parabuffer
. Es más probable que los tampones más grandes nunca estén vacíos. Elegir un tamaño de bloque que sea el múltiplo común más bajo del tamaño de bloque nativo tanto en el sistema de archivos de destino como en el de destino dará el mejor rendimiento.Buffering es lo que hace que todo la diferencia! ¡Úselo si lo tiene! Si no lo tienes, ¡consíguelo! Usar
(m}?buffer
más cualquier cosa es mejor que cualquier cosa por sí mismo. Es casi literalmente una panacea para las transferencias lentas de archivos de red.Si está transfiriendo varios archivos, úselos
tar
para agruparlos en una sola secuencia de datos. Si es un archivo único que puede usarcat
o redirección de E / S. La sobrecarga detar
vs.cat
es estadísticamente insignificante, por lo que siempre usotar
(ozfs -send
donde puedo) a menos que ya sea un tarball . Ninguno de estos está garantizado para darle metadatos (y en particularcat
no lo hará). Si desea metadatos, lo dejaré como un ejercicio para usted.Finalmente, el uso
ssh
de un mecanismo de transporte es seguro y lleva muy poca sobrecarga. Nuevamente, la sobrecarga dessh
vs.nc
es estadísticamente insignificante.fuente
tar -cf - .|mbuffer -m128k -s 256M -I 9090 & mbuffer -m128k -s 256M -O host:9090 | tar -xf -
ssh
hace simple. Usandostunnel
,socat
oopenssl
funciona también, pero son más complejos de configurar para transferencias simples.Mencionas "rsync", así que supongo que estás usando Linux:
¿Por qué no creas un archivo tar o tar.gz? El tiempo de transferencia de red de un archivo grande es más rápido que muchos archivos pequeños. Incluso podrías comprimirlo si lo deseas ...
Alquitrán sin compresión:
En el servidor de origen:
Luego en el extremo receptor:
Alquitrán con compresión:
En el servidor de origen:
Luego en el extremo receptor:
Simplemente usaría rsync para realizar la transferencia real de los archivos (tar | tar.gz).
fuente
Puede probar con el
tar
yssh
truco se describe aquí :Esto debería ser regrabable a lo siguiente :
Sin embargo, perderías las
--partial
características dersync
en el proceso. Si los archivos no cambian con mucha frecuencia, vivir con una inicial lentarsync
podría valer mucho la pena, ya que irá mucho más rápido en el futuro.fuente
Puede usar varias opciones de compresión de rsync.
la relación de compresión para archivos binarios es muy baja, por lo que puede omitir esos archivos usando --skip-compress, por ejemplo, iso, tarballs ya archivados y comprimidos, etc.
fuente
Soy un gran admirador de SFTP. Uso SFTP para transferir medios de mi computadora principal a mi servidor. Tengo buenas velocidades, a través de LAN.
SFTP es confiable, le daría una oportunidad, ya que es fácil de configurar y podría ser más rápido en algunos casos.
fuente