Alta Disponibilidad 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 Servidor Software Software Software entre el Software
maestro (s) esclavo (s) para detectar la falta de un maestro para promover un esclavo a maestro o hardware para garantizar la coherencia de datos maestro (s) y el esclavo (s) 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
Replicación Asíncrona Los nodos del 'cluster' pueden aplicar los datos de transacciones en cualquier momento posterior, por lo que los nodos pueden servir diferentes simultáneamente distinta data.
Soluciones Alta Disponibilidad
PostgreSQL 9 Slony RubyRep Londiste Mammoth Bucardo PgCluster PgPool-II PgPool
Solución mágica y esotérica
● ●
Scripts automaticos, semiautomaticos Restaurar, replicar etc.. a partir de logs
@leninmhs 2012
Consideraciones a tomar al elegir una solución:
en
cuenta
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 aptitude search tu_solucion aptitude install tu_solucion Configuración, adaptación,pruebas etc.. PD: aptitude solo disponible en: y derivados...
Camino 2 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
Q R E R y
IP Puerto Usuario Contraseña
Q R E R y
Clientes
Se comporta como cliente y servidor Q R E R y
IP Puerto Usuario Contraseña nodo1
Q R E R y
PgPool-II
Q R E R y
IP Puerto Usuario Contraseña
Q R E R y
Q R E R y
IP Puerto Usuario Contraseña nodo2
nodo3
Pool de servidores PostgreSQL
@leninmhs 2012
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, Preguntas, Dudas, 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... Blog: leninmhs.wordpress.com Correo:
[email protected] Twitter: @leninmhs
www.tubasededatoslibre.org Twitter: @tu_bd_libre Facebook: facebook.com/TuBaseDeDatosLibre
@leninmhs 2012