Uso de RSYNC con Amazon S3 [cerrado]

39

Estoy interesado en usar Amazon S3 para hacer una copia de seguridad de nuestras imágenes de servidor de ~ 100 gb (creadas mediante las herramientas de copia de seguridad de Acronis)

Obviamente, esta carga a S3 todas las noches sería costosa, en términos de ancho de banda y costo. Estoy considerando usar rsync con S3 y encontré s3rsync. Me preguntaba si alguien tenía alguna experiencia usando esto o alguna otra utilidad.

alex
fuente
1
Una cosa que noté sobre s3rsync es que actualmente está limitado a tamaños de cubeta de 10 GB (consulte las preguntas frecuentes). Puede tener varios depósitos, pero debe dividir sus datos en fragmentos de 10 GB.
dana

Respuestas:

35

Recientemente me topé con este hilo en Google y parece que el panorama ha cambiado un poco desde que se hizo la pregunta. La mayoría de las soluciones sugeridas aquí ya no se mantienen o se han vuelto comerciales.

Después de algunas frustraciones al trabajar con FUSE y algunas de las otras soluciones existentes, decidí escribir mi propio "clon" rsync de línea de comandos para S3 y Google Storage usando Python.

Puede consultar el proyecto en GitHub: http://github.com/seedifferently/boto_rsync

Otro proyecto del que me enteré recientemente es la "duplicidad". Parece un poco más elaborado y se puede encontrar aquí: http://duplicity.nongnu.org/

Espero que esto ayude.

ACTUALIZAR

El equipo de Python en AWS ha estado trabajando duro en un proyecto CLI basado en boto para sus servicios en la nube. Entre las herramientas incluidas se encuentra una interfaz para S3 que duplica (y en muchos sentidos reemplaza) la mayor parte de la funcionalidad proporcionada por boto-rsync:

https://github.com/aws/aws-cli

En particular, el synccomando se puede configurar para funcionar casi exactamente como rsync:

http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

Seth
fuente
gran contribución! gracias y le daré una oportunidad a su código pronto. ¿Tienes lecturas obligatorias para aprender python / django? Saludos
iainlbc
¿Qué ventajas / diferencias tiene su programa en comparación con S3cmd y S3sync?
James McMahon
@JamesMcMahon s3cmd / s3sync son CLI más completas para S3 (administrar buckets, enumerar contenidos, etc.), mientras que boto-rsync es estrictamente un intento de imitar rsync.
Seth
Hay un fusible s3fs: github.com/s3fs-fuse/s3fs-fuse que funciona bastante bien y se puede combinar con rsync, sin embargo, no estoy seguro de qué tan eficientemente.
Stanislav
Sería increíble si pudiera explicar cómo "el comando de sincronización se puede configurar para funcionar casi exactamente como rsync".
trusktr
10

También he tenido buena suerte con S3cmd y S3sync , los cuales son gratuitos.

Terrell
fuente
+1 para S3cmd -.-
fnkr
S3cmd tiene un problema con los grandes números de archivo (> 300k archivos). Come aproximadamente 1gig por cada 100k archivos de memoria de trabajo tan bueno para tener en cuenta esa limitación ..
Tuxie
7

Dependiendo de cómo se creen sus imágenes de Acronis, no estoy seguro de que ningún tipo de rsync le ahorre ancho de banda. Las imágenes de Acronis son archivos únicos, por lo que rsync no podría leer dentro de ellas para hacer una copia de seguridad de lo que ha cambiado. Tampoco estoy seguro de qué tipo de imágenes de servidor está creando, pero dado que dijo 100 GB, ¿voy a asumir que está lleno? Una imagen incremental reduciría en gran medida el tamaño de la imagen nocturna, ahorrando así ancho de banda. También podría considerar guardar las imágenes en una ubicación alternativa que S3, como cintas de medios, y almacenarlas fuera del sitio.

churnd
fuente
44
No, rsync no funciona así. Funciona con cualquier tipo de archivo y no necesita ningún conocimiento de las partes internas del archivo que se sincroniza. En su lugar, compara los trozos de fragmentos del archivo y transfiere solo los fragmentos que difieren. en.wikipedia.org/wiki/Rsync
Alan Donnelly
2
y ninguno de los mandos coincidirá porque cualquier pequeño cambio en los archivos dentro de la imagen hará que todo el archivo cambie debido a la compresión. Incluso con la compresión desactivada, no estoy seguro de que se sincronice bien porque los archivos dentro de la imagen pueden cambiar de orden y coinciden de forma continua, en lugar de simplemente encontrar cualquier fragmento igual.
JamesRyan
4

Nunca probé S3rsync.

Estoy usando duplicidad para nuestras copias de seguridad externas. Admite copias de seguridad incrementales en S3, aunque en realidad no está ahorrando ancho de banda debido al protocolo de almacenamiento de Amazon S3 en el que cualquier modificación de archivo lo obliga a cargar todo el nuevo archivo nuevamente. De todos modos, la duplicidad solo carga diferencias con respecto a la última copia de seguridad incremental.

Con Duplicity no necesitará pasar por otro servidor como lo hace S3sync, sin embargo, si encripta sus datos, debería valer la pena probar S3sync.

Lessfoe
fuente
1

S3 también tiene un servicio adicional llamado AWS Import / Export que le permite enviar una unidad USB con su conjunto de datos inicial de 100 Gb y lo cargarán en la nube S3 usando algunas herramientas de back-end en sus centros de datos. Una vez que su 100Gb esté allí, puede hacer copias de seguridad diferenciales cada noche para hacer una copia de seguridad de todo lo que ha cambiado.

El sitio es http://aws.amazon.com/importexport/

Si la mayoría de sus datos son bastante estáticos, esta sería una buena opción, si los 100 Gb de datos cambian a diario, entonces esto no le ayudará mucho.

monkeymagic
fuente
3
¿Cómo supone que "cargan" una unidad flash de 128 Gb? Me imagino el concentrador usb más grande del mundo, un panel de conexión de piso a techo con conectores USB, 3/4 lleno de unidades flash suministradas por el cliente, todo en la parte posterior de un único servidor Blade.
Paul
¡Qué imagen! En realidad, probablemente un tipo pobre en un rincón oscuro de un centro de datos con el hub usb más grande del mundo conectado a su PC :)
monkeymagic
0

Puede probar minio client, también conocido como "mc". mc proporciona herramientas mínimas para trabajar con sistemas de archivos y almacenamiento en la nube compatibles con Amazon S3.

mc implementa los siguientes comandos

  ls        List files and folders.
  mb        Make a bucket or folder.
  cat       Display contents of a file.
  pipe      Write contents of stdin to one or more targets. When no target is specified, it writes to stdout.
  share     Generate URL for sharing.
  cp        Copy one or more objects to a target.
  mirror    Mirror folders recursively from a single source to many destinations.
  diff      Compute differences between two folders.
  rm        Remove file or bucket [WARNING: Use with care].
  access    Manage bucket access permissions.
  session   Manage saved sessions of cp and mirror operations.
  config    Manage configuration file.
  update    Check for a new software update.
  version   Print version.

Puede usar el comando espejo para hacer su operación. "localdir" es el directorio local y S3 [alias para Amazon S3] y el nombre "remoteDir" de su bucket en S3.

$ mc mirror localdir/ S3/remoteDir

También puedes escribir un cronjob para lo mismo. También en caso de indignación de la red, de todos modos puede usar "sesión $ mc" para reiniciar la carga desde ese momento en particular.

PD: Contribuyo al proyecto minio y me encantaría recibir sus comentarios y contribuciones. Espero eso ayude.

koolhead17
fuente
-1

La nueva Jungle Disk Server Edition (beta) podría serle útil. Tiene una desduplicación a nivel de bloque, por lo que si sus imágenes de Acronis tienen algo en común, esto reducirá en gran medida la cantidad que necesita hacer una copia de seguridad. Las características son perfectas para las copias de seguridad del servidor. Echa un vistazo a las notas de la versión.

He estado probando la versión beta durante dos semanas y, aparte de algunos pequeños problemas con la GUI que estoy seguro de que se solucionarán en la final, estoy entusiasmado con el producto.

Martijn Heemels
fuente