Tengo curiosidad por saber si alguien está ejecutando PostgreSQL en un contenedor en producción en alguna forma de sistema de archivos distribuido, preferiblemente GlusterFS, o algo así.
Actualmente estoy ejecutando Mesos / Marathon. En caso de que el nodo PostgreSQL falle, Marathon simplemente lanza otra instancia de PostgreSQL en otros nodos y, si se realiza correctamente (descubrimiento de servicio y recuperación de la aplicación de la pérdida de conexión de la base de datos), se logrará la máxima tolerancia a fallas.
Sé que PostgreSQL tiene sus propias soluciones de alta disponibilidad, como el envío de registros y la copia de seguridad en espera activa, pero aún hay que resolver el problema sobre cuándo cambiar de maestro a esclavo, cómo hacerlo correctamente, etc.
Entonces, ¿cómo ejecuta PostgreSQL en producción en GlusterFS o similar? Si es así, ¿es estable? ¿Qué tal el rendimiento?
fuente
Respuestas:
Cada grupo generalmente tiene la noción de quórum: los observadores (monitores, lo que sea) deben decidir qué nodo es el maestro. Luego puede usar su información para enrutar las solicitudes correctamente. Es bastante típico ejecutar haproxy no solo con comprobaciones básicas del estado de TCP / IP sino también con una lógica de alto nivel implementada con consultas específicas del servicio.
Echa un vistazo a pacificador , por ejemplo.
fuente
Necesita ejecutar postgresql en modo de servicio con estado. El escalado se realiza por mesos, pero la replicación de datos se realiza por el propio postgresql. Eche un vistazo a este sitio de servicio con estado y volúmenes persistentes .
fuente