unix - internet - sincronizar linux con servidor ntp
¿Cuál es la mejor manera de sincronizar grandes cantidades de datos en todo el mundo? (7)
¿Qué tal algo parecido al Sistema de Archivos Global de Red Hat, de modo que toda la estructura se divida en todos los sitios en múltiples dispositivos, en lugar de tener todo replicado en cada ubicación?
O tal vez un sistema de almacenamiento de red comercial como LeftHand Networks (descargo de responsabilidad: no tengo idea de los costos y no los he usado).
Tengo una gran cantidad de datos para mantener sincronizados en 4 o 5 sitios en todo el mundo, alrededor de medio terabyte en cada sitio. Esto cambia (ya sea agregados o cambios) en alrededor de 1.4 Gigabytes por día, y los datos pueden cambiar en cualquiera de los cuatro sitios.
Un gran porcentaje (30%) de los datos son paquetes duplicados (quizás JDK empaquetados), por lo que la solución debería incluir una forma de entender el hecho de que existen tales cosas en la máquina local y tomarlas en su lugar. de descargar desde otro sitio.
El control de las versiones no es un problema, esta no es una base de código per se.
Me interesa si hay alguna solución (preferiblemente de código abierto) que se acerque a tal cosa.
Mi script de bebé usando rsync ya no corta la mostaza, me gustaría hacer una sincronización más compleja e inteligente.
Gracias
Editar: Esto debe estar basado en UNIX :)
Suena como un trabajo para Foldershare
Suena como un trabajo para BitTorrent.
Para cada nuevo archivo en cada sitio, cree un archivo semilla bittorrent y colóquelo en un directorio centralizado accesible por la web.
Cada sitio luego descarga (a través de bittorrent) todos los archivos. Esto generará el intercambio de ancho de banda y la reutilización de copia local automática.
La receta real dependerá de su necesidad. Por ejemplo, puede crear 1 semilla de bittorrent para cada archivo en cada host, y establecer el tiempo de modificación del archivo de inicialización para que sea el mismo que el tiempo de modificación del archivo. Como lo hará a diario (¿por hora?), Es mejor usar algo como "hacer" para (re) crear archivos iniciales solo para archivos nuevos o actualizados.
A continuación, copie todos los archivos iniciales de todos los hosts a la ubicación centralizada ("directorio del rastreador") con la opción "sobrescribir solo si es más nuevo". Esto le proporciona un conjunto de semillas de torrent para todas las copias más recientes de todos los archivos.
Luego, cada host descarga todos los archivos semilla (de nuevo, con "sobrescribir si hay una configuración más nueva") e inicia la descarga bittorrent en todos ellos. Esto descargará / volverá a descargar todos los archivos nuevos / actualizados.
Rince y repite, diariamente.
Por cierto, no habrá "descarga de sí mismo", como dijiste en el comentario. Si el archivo ya está presente en el host local, se verificará su suma de comprobación y no se realizará ninguna descarga.
¿Has probado el parche de detect-renamed
para rsync ( http://samba.anu.edu.au/ftp/rsync/dev/patches/detect-renamed.diff )? No lo he probado yo mismo, pero me pregunto si detectará no solo archivos renombrados sino también duplicados. Si no detecta archivos duplicados, supongo que es posible modificar el parche para hacerlo.
Verifique que sea súper flexible ... es bastante bueno, no lo ha usado en un entorno a gran escala, pero en un sistema de 3 nodos parecía funcionar perfectamente.
¿Has probado Unison ?
He tenido buenos resultados con eso. Básicamente es una rsync más inteligente, que tal vez es lo que quieres. Aquí hay una lista que compara las herramientas de sincronización de archivos.
Tienes muchas opciones:
- Puede intentar configurar una base de datos replicada para almacenar datos.
- Use la combinación de rsync o lftp y scripts personalizados, pero eso no le conviene.
- Utilice los repositorios git con máximas compresiones y sincronícelos utilizando algunos guiones
- Dado que la cantidad de datos es bastante grande, y probablemente importante, realice algún desarrollo personalizado al contratar a un experto;)