5 votos

Es rsync un buen candidato para la conmutación por error de la aplicación (conjunto de datos muy grande)?

Tengo un gran conjunto de datos (+100 GB) que pueden ser almacenados en archivos. La mayoría de los archivos sería en el 5k-50k rango (80%), 50k - 500k (15%) y >500k (5%). El máximo tamaño esperado de un archivo es de 50 MB. Si es necesario, los archivos grandes se pueden dividir en partes más pequeñas. Los archivos se pueden organizar en una estructura de directorios.

Si algunos de los datos debe ser modificado, a mi solicitud de hacer una copia, lo modifica y, si tiene éxito, indicadores como la versión más reciente. A continuación, la versión antigua, se quita. Es accidente de seguro (por así decirlo).

Necesito implementar una conmutación por error del sistema para mantener los datos disponibles. Una solución es utilizar un Maestro-Esclavo sistema de base de datos, pero estos son frágiles y la fuerza de una dependencia en la tecnología de base de datos.

Yo no soy sysadmin, pero he leído sobre el rsync instrucción. Se ve muy interesante. Me pregunto si la configuración de algunos de los nodos de conmutación por error y el uso de rsync desde mi maestro es una opción responsable. Alguien ha intentado esto antes?

i) Si sí, debo dividir mis archivos de gran tamaño? Es rsync inteligente/eficiente en la detección de los archivos a copiar/borrar? Debería de implementar una estructura de directorios específicos para hacer que este sistema sea eficiente?

ii) Si el maestro se bloquea y un esclavo toma más de una hora (por ejemplo), es hacer que el maestro de arriba-a-fecha de nuevo tan simple como ejecutar rsync al revés (de esclavo a maestro)?

iii) Bono de la pregunta: ¿hay alguna posibilidad de que la aplicación de multi-master en sistemas con rsync? O es sólo maestro esclavo posible?

Estoy en busca de asesoramiento, consejos, experiencia, etc... Gracias !!!

3voto

Zoredache Puntos 84524

Es rsync inteligente/eficiente en la detección de los archivos a copiar/borrar?

Rsync es extremadamente eficiente en la detección y actualización de archivos. Dependiendo de cómo cambian los archivos, usted puede encontrar un número menor de archivos de gran tamaño son mucho más fáciles de sincronización, a continuación, un montón de pequeños archivos. Dependiendo de las opciones que usted elija, en cada ejecución se va a stat() cada archivo en ambos lados, y luego transferir los cambios si los archivos son diferentes. Si sólo un pequeño número de sus archivos están cambiando, entonces este paso para buscar archivos modificados pueden ser bastante caros. Una gran cantidad de factores que entran en juego acerca de cuánto tiempo rsync toma. Si usted es serio acerca de tratar de esto, usted debe hacer un montón de pruebas en datos reales para ver cómo funcionan las cosas.

Si el maestro se bloquea y un esclavo toma más de una hora (por ejemplo), es hacer que el maestro de arriba-a-fecha de nuevo tan simple como ejecutar rsync al revés (de esclavo a maestro)?

Debe de ser.

Hay alguna posibilidad de aplicación de multi-master en sistemas con rsync?

Unison, que utiliza el rsync bibliotecas permite una sincronización bidireccional. Se debe permitir actualizaciones en cualquier lado. Con las opciones correctas se pueden identificar los conflictos y guardar copias de seguridad de los archivos donde se hizo un cambio en ambos extremos.

Sin saber más acerca de los detalles no te lo puedo decir con confianza que este es el camino a seguir. Puede que tenga que buscar en el DRBD, o algún otro clúster dispositivo/sistema de archivos enfoque que la sincronización de las cosas en un nivel inferior.

3voto

tylerl Puntos 8195

Debo dividir mis archivos de gran tamaño?
rsync es inteligente, pero muy grande de archivos puede ser mucho menos eficiente para sincronizar. He aquí por qué:

Si sólo una parte de un archivo de cambios, luego de rsync es lo suficientemente inteligente como para enviar sólo esa parte. Pero para averiguar qué parte a enviar, tiene que dividir el archivo en lógicas de X bytes, construir las sumas de comprobación para cada parte (en ambos lados), comparar los trozos, envíe las diferencias y, a continuación, volver a construir el archivo en el extremo receptor.

Por otro lado, si usted tiene un montón de pequeños archivos que no cambian, entonces las fechas y tamaños de partido y rsync se saltará la suma de comprobación de paso y sólo suponga que el archivo no ha cambiado. Si estamos hablando de muchos GB de datos, que está saltando un MONTÓN de IO, y ahorrar un MONTÓN de tiempo. Así que, aunque hay sobrecarga adicional involucrado con la comparación de más de archivos, que todavía sale a menos de la cantidad de tiempo que se requiere para realmente leer los archivos y comparar las sumas de comprobación.

Así, mientras que usted desea como algunos de los archivos según sea necesario, también quieren lo suficiente de archivos, de manera que no perderás un montón de IO de trabajo sin cambios en los datos. Me gustaría recomendar la división de los datos a lo largo de la lógica de los límites de su aplicación.

es hacer que el maestro de arriba-a-fecha de nuevo tan simple como ejecutar rsync al revés
A partir de un sistema de ficheros perspectiva, sí. Pero su aplicación puede tener otros requisitos que complicar las cosas. Y, por supuesto, usted va a ser volver de nuevo a su punto de control más reciente en el que rsync ed a tu esclavo.

Hay alguna posibilidad de aplicación de multi-master en sistemas con rsync?
Técnicamente sí, pero por ese camino se encuentra la locura. Suponiendo que todo funciona muy bien, entonces todo estará bien. Pero cuando hay hipo, usted puede comenzar a tener problemas con los cambios (y específicamente elimina) tener sincronizada la dirección equivocada, sobrescribiendo su buena archivos con las malas, o la eliminación de su inserta archivos, o los fantasmas de los archivos eliminados de reaparecer. La mayoría de la gente recomienda en contra de ella, pero puedes intentarlo si quieres.

asesoramiento, consejos, experiencia
Si estás buscando un maestro/maestra de la instalación con la mosca de la sincronización, me gustaría recomendar el DRBD. Es mucho más complicado de configurar y de mantener, pero mucho más capaz. Lo hace a nivel de bloque de sincronización del disco en sí, en lugar de los archivos en él. Para hacer esto "on-line", usted necesita un sistema de archivos puede tolerar ese tipo de sincronización, como el GFS.

Rsync es más como un sistema de instantáneas de una sincronización continua del sistema.

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: