Por el gran árbol de archivos que quiero decir acerca de 200k de archivos, y creciendo todo el tiempo. Un relativamente pequeño número de archivos que se cambian en cualquier hora.
Por bidireccional me refiero a que pueden producirse cambios en el servidor y necesita ser empujado a la otra, por lo que rsync no parece apropiado.
Por distante me refiero a que los servidores se encuentran tanto en los centros de datos, pero geográficamente distantes el uno del otro. Actualmente sólo hay 2 servidores, pero que se puede ampliar con el tiempo.
Por tiempo real, está bien que haya un poco de latencia entre la sincronización, pero la ejecución de un cron cada 1-2 minutos no le parece correcto, ya que una fracción muy pequeña de los archivos puede cambiar en cualquier hora dada, digamos minutos.
EDIT: Este se ejecuta en VPS por lo que podría ser limitado en el tipo de nivel de núcleo cosas que puedo hacer. También, el VPS no son ricos en recursos, así que me gustaría alejarse de las soluciones que requieren mucha memoria ram (como Gluster?).
¿Cuál es la mejor / más "aceptado" para hacer esto? Esto parece que sería una necesidad común, pero no he sido capaz de encontrar una forma generalmente aceptada de enfoque, sin embargo, que fue sorprendente. (Estoy buscando la seguridad de las masas. :)
He llegado a través lsyncd para desencadenar una sincronización en el sistema de ficheros de cambio de nivel. Que parece inteligente, aunque no es muy común, y estoy un poco confundida por los diversos lsyncd enfoques. No sólo el uso de lsyncd con rsync, pero parece que esto podría ser frágiles para la bidireccionalidad desde rsync no tiene una noción de la memoria (por ejemplo, - para saber si un archivo borrado en Una debe ser eliminado en B, o si es un archivo nuevo en B que debe ser copiada a Una). la sincronización de labios parece ser un lsyncd+rsync implementación, ¿verdad?
Luego está el uso de lsyncd con csync2, como este: http://www.axivo.com/community/threads/lightning-fast-synchronization-with-csync2-and-lsyncd.121/ ... me estoy inclinando hacia este enfoque, pero csync2 es un poco peculiar, aunque me hizo hacer una prueba con éxito de la misma. Estoy en su mayoría preocupados de que no he sido capaz de encontrar un montón de la comunidad de confirmación de este método.
La gente aquí parece que les gusta Unísono mucho, pero parece que ya no está en desarrollo activo y no es claro que haya un disparador automático como lsyncd.
He visto Gluster mencionado, pero tal vez excesivo para lo que necesito?
ACTUALIZACIÓN: fyi - terminé yendo con la solución original que he mencionado: lsyncd+csync2. Parece que funciona bastante bien, y me gusta el planteamiento arquitectónico de tener los servidores deben estar muy débilmente unido, por lo que cada servidor puede operar indefinidamente en su propia independientemente de la calidad del enlace entre ellos.