On 03/10/14 15:14, marcelo mendoza wrote:
Que tal Alvaro, mi idea es la siguiente
Imágenes integradas 1
Agregando el repmgr para hacer el failover de las réplicas de Master.
Está correcto esto?
Yo la verdad creo que los pgbouncer tienen mucho mejor efecto
cuando están en la misma máquina que el app server, porque de lo
contrario no evitas el coste de establecimiento de conexión entre app
server y pgbouncer.
Saludos,
Álvaro
Saludos
El 3 de octubre de 2014, 5:44, Álvaro Hernández Tortosa
<[email protected] <mailto:[email protected]>> escribió:
On 01/10/14 22:27, marcelo mendoza wrote:
Buenas tardes, cual sería una forma de colocar un pgbouncer en
alta disponibilidad? o sea dos nodos pgbouncer que se conecten a
un Postgres que se está replicando por medio de un repmgr? ya que
si pongo sólo un pgbouncer sería un unico punto de falla, como
podría configurar las IP de modo a que los dos pgbouncer
balanceen las conexiones para mi Postgres?
Saludos
Hola, Marcelo. No sé si estás preguntando sólo por HA o
también por balanceo de carga. Para lo primero, como te han
comentado en el thread, pgbouncer no está preparado. Necesitarás
tener un pgbouncer en cada nodo de aplicación (lo que suele
funcionar bien), y que todos se conecten a las bases de datos.
Pero esta arquitectura no está exenta de problemas:
- Puede requerir un alto número final (agregado de todos los
app+pgbouncer) de conexiones a la base de datos, lo que puede
degradar mucho su rendimiento.
- El diseño de max_connections es difícil (porque el número de
app+pgbouncer pueden crecer "elásticamente")
- No tiene balanceo de carga
- Es complejo que cada pgbouncer debe configurar conexiones a
todas las bases de datos del cluster (maesto y esclavos)
Alternativamente, puedes meter haproxy en la ecuación, que te
da balanceo de carga y te va a permitir reducir el número global
de conexiones. Puedes tener por ejemplo app+pgbouncer y dichos
pgbouncer conectan a haproxy, que balancea la carga. Esto sólo
aplica a esclavos, obviamente, pues sólo hay un maestro. Pero me
imagino esto ya lo tienes resuelto a nivel de app (distingues
entre rw y ro). Es fundamental en este caso que en la gestión de
la promoción de un esclavo a maestro por la caída de éste, se
actualice la configuración de haproxy (basta con un reload). Pan
comido (ironía).
Suerte y saludos,
Álvaro
El 25 de septiembre de 2014, 20:57, Álvaro Hernández Tortosa
<[email protected] <mailto:[email protected]>> escribió:
On 24/09/14 05:02, Alvaro Herrera wrote:
Jaime Casanova escribió:
2014-09-23 9:00 GMT-05:00 marcelo mendoza
<[email protected]
<mailto:[email protected]>>:
Muchas gracias por su respuesta, estoy leyendo
que el repmgr tiene failover
automático también, alguien ya lo probó? En
comparación con pgpool cual
proyecto es mas estable?
Empieza por eliminar de tu cabeza la idea de usar
RHCS, al menos si no
quieres tener dolores de cabeza. RHCS no usa
replicación sino
almacenamiento compartido lo que significa que si tu
storage falla te
fregaste.
Jaime está siendo amable. RHCS no sólo "te fregaste si
el storage
falla"; en algunos clientes (sí, más de uno) hemos visto
que el RHCS
activamente corrompe datos. Yo no conozco la tecnología
pero la
evidencia incontestablemente indica que el cluster por
alguna razón en
ciertas circunstancias levanta los dos servidores
simultáneamente, lo
cual corrompe los datos en muy poco tiempo.
Por si sirve de algo, nosotros hemos realizado una
instalación hace unos meses de un cluster activo-pasivo con
RHCS (petición expresa del cliente) y la verdad ha funcionado
a las mil maravillas. Hemos realizado pruebas muy agresivas
de failover y failback sin el menor de los problemas. Lleva
en producción desde entonces. Es bien cierto que es costoso
montarlo bien, y que dependiendo de qué tecnología de disco
compartido puede tener más riesgos. En el caso que montamos,
se usaba iSCSI con multipath y esta propia tecnología ya
impide (independientemente de RHCS) que se use el disco por
dos máquinas simultáneamente, por lo que no debería haber
corrupción de datos.
Obviamente, es una solución con ventajas:
- El failover es rapidísimo (pocos segundos)
- Nunca hay pérdida de datos (por que se caiga el maestro)
- Es transparente para los clientes (los servidores tienen
una IP virtual y el cliente no se entera del cambio, salvo
las conexiones abiertas, claro, pero esto es inevitable siempre)
e inconvenientes:
- Sólo dos nodos, sólo uno activo
- Más complejo y más partes móviles
- Traslada el SPOF al almacenamiento, si bien lograr
almacenamiento suficientemente redundado (a nivel de hw) no
es complejo, sino algo muy habitual a día de hoy
En todo caso, no entiendo la combinación de RHCS con
pgpool. Si alguien monitoriza es, precisamente, RHCS y no pgpool.
Espero que sirva la información. Saludos,
Álvaro
--
Álvaro Hernández Tortosa
-----------
8Kdata
-
Enviado a la lista de correo pgsql-es-ayuda
([email protected]
<mailto:[email protected]>)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
--
Marcelo Mendoza
(0983) 383-752
--
Álvaro Hernández Tortosa
-----------
8Kdata
--
Marcelo Mendoza
(0983) 383-752
--
Álvaro Hernández Tortosa
-----------
8Kdata