Alta Disponibilidad
Alta Disponibilidad
con PostgreSQL
con PostgreSQL
Lenin Hernández
Junio 2012
@leninmhs 2012
¿Por que estamos aqui?
Divulgar el Software Libre
Profundizar el uso de Software Libre
Potenciar las capacidades de desarrollo tecnológico
Aprender, compartir, disfrutar, debatir
Autodesarrollo, autodeterminación.
Conocimiento Libre
4 Libertades
Gracias a
Universidad Nacional
Experimental Romulo Gallegos
“Un viaje de mil leguas comienza con un primer paso”
@leninmhs 2012
¿Por qué PostgreSQL?
#aptitude install postgres postgresql8.4
Proyectos de interfaces de administración WEB y por GUI
Proyectos para datos geográficos/geométricos (PostGIS)
Proyectos de uso de indices avanzados (OpenFTS)
Proyectos para soportar diversos lenguajes de programación como
lenguajes de funciones internas del motor (pl/Php, pl/Java, pl/Python,
pl/Perl, pl/Tcl,pl/Javascript, pl/C etc.)
Licencia BSD, la mas permisiva de todas.
Corre en casi todos los principales sistemas operativos : (Linux, Unix,
Solaris, BSDs, Mac OS, Beos)
Soporte para los lenguajes mas populares del medio: PHP, C, C++, Java,
Perl, Python, Ruby,etc.
Máximo de base de datos : ILIMITADO
Máximo de tamaño de tabla : 32TB
Y la competencia???
Imagen por: http://www.exprimetuhost.com/2010/10/mysql-o-postgresql/mysql-vs-postgresql/
@leninmhs 2012
En algún momento...
Imagen por: http://www.seofaction.com/postgres
@leninmhs 2012
Actualmente...
Imagen por: http://stefano.salvatori.cl/blog/2007/09/21/postgresql-vs-mysql-2/
@leninmhs 2012
Cluster Alta Disponibilidad
Nos enfocamos en la disponiblidad del servicio.
Lo medimos en tiempos en linea y tiempos fuera de linea
Lo medimos en tiempos en linea y tiempos fuera de linea
Alta Disponibilidad (High Availability)
<=>
Continuidad operativa del servicio.
24 - 7
Por lo general, consiste en
● Servidor maestro (s)
● Servidor esclavo (s)
● Software para detectar la falta de un maestro
● Software para promover un esclavo a maestro
● Software o hardware para garantizar la coherencia de datos
● entre el maestro (s) y el esclavo (s)
● Software para restaurar el servicio luego de caída o falla
¿Que NO es alta disponibilidad en Bases de Datos?
● Una forma de aumentar el rendimiento
● Una manera de simplificar tu trabajo, la red, el mantenimiento
● Fácil de implementar
@leninmhs 2012
Cuando hablamos de alta disponibilidad hablamos de:
Replicación
Balanceo de Cargas (Load Balance)
Tolerancia a fallos (FailOver)
Conexiones Agrupadas (Pool
Connection)
Consultas Distribuidas (Parallel
Query)
Gestión de Divergencias
@leninmhs 2012
Replicación
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Divergencia
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Tolerancia a Fallos
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Replicación Síncrona
Se realiza tan pronto como se realiza una transacción la
misma se ejecuta en todos los nodos. Esto es muy costoso
en términos de latencia y la cantidad de mensajes que se
enviarán, pero evita la divergencia
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Extraido de: http://py-arahat.blogspot.com/2011/11/alta-disponibilidad-con-postgresql.html
Replicación Asíncrona
'cluster' pueden aplicar
los datos de
Los nodos del
transacciones en cualquier momento posterior, por lo que
los nodos pueden servir diferentes simultáneamente distinta
data.
Soluciones Alta Disponibilidad
PostgreSQL 9
PgPool-II
PgPool
Londiste
Mammoth
Slony RubyRep
Bucardo PgCluster
Solución mágica y esotérica
● Scripts automaticos, semiautomaticos
● Restaurar, replicar etc.. a partir de logs
@leninmhs 2012
Consideraciones a tomar en cuenta
al elegir una solución:
Software Libre. 4 Libertades
Linux,FreeBSD,Solaris y xUnix
PostgreSQL y Solución versión estable
Comunidad y Desarrollo activo
Sinergia [Solución - Organización]
@leninmhs 2012
Instalar & Implementar alguna de las soluciones:
Camino 1
Camino 2
aptitude search tu_solucion
aptitude install tu_solucion
Configuración, adaptación,pruebas etc..
PD: aptitude solo disponible en:
y derivados...
Camino largo, doloroso y recomendado
para entornos en producción
Descargar
Descomprimir
Ingresar directorio
./configure
make
make install
Configuración, adaptación,pruebas etc..
If pruebas = ok
anotar_chuleta();
compartir_internet();
Else
intenter_nuevamente();
probar_otra_herramienta();
@leninmhs 2012
PGpool-II
Es una capa intermedia de software
(middleware),que nos provee de una
interfaz de conexión con uno o mas
nodos de PostgreSQL. Nuestros clientes
se conectaran en realidad al PgPool y
este a su vez repartirá el trabajo a los
Nodos según se haya configurado.
Es una de las soluciones mas completa
de alta disponibilidad en software libre.
pgpool-II
Una imagen vale más que mil palabras
Una imagen vale más que mil palabras
Q
R
E
R
y
IP
Puerto
Usuario
Contraseña
Q
R
E
R
y
Q
R
E
R
y
Clientes
Q
R
E
R
y
Q
R
E
R
y
PgPool-II
PgPool-II
Se comporta como cliente y servidor
Q
R
E
R
y
Q
R
E
R
y
IP
Puerto
Usuario
Contraseña
nodo1
IP
Puerto
Usuario
Contraseña
IP
Puerto
Usuario
Contraseña
nodo3
Pool de servidores PostgreSQL
nodo2
@leninmhs 2012
PgPoolAdmin
PgPoolAdmin
Herramienta de Administración de PgPool
de interfaz web, similar a PhpPgAdmin,
escrita en PHP que nos permite
administrar, configurar, monitoriar y
aplicar algunas acciones sobre nuestra
instalación de PgPool ó nuestros nodos.
@leninmhs 2012
Dudas, Preguntas,
Dudas, Preguntas,
Sugerencias???
Sugerencias???
@leninmhs 2012
preguntas
http://tubasededatoslibre.org
http://leninmhs.wordpress.com/2012/05/09/alta-disponibilidad-pgpool/
http://wiki.postgresql.org/wiki/Clustering
http://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling
http://bucardo.org
@leninmhs 2012
Gracias Totales...
Gracias Totales...
Blog: leninmhs.wordpress.com
Correo:
[email protected]
Twitter: @leninmhs
www.tubasededatoslibre.org
Twitter: @tu_bd_libre
Facebook: facebook.com/TuBaseDeDatosLibre
@leninmhs 2012
Comentarios de: Alta disponibilidad con PostgreSQL (0)
No hay comentarios