Replicacion Base de Datos PostgreSQL usando repmgr

EL presente instructivo tiene como finalidad, mostrar los pasos básicos necesario para la instalación y configuración de un proceso de replicación (maestro – esclavo) en PostgreSQL versión 9.6, utilizando repmgr versión 4.2

La replicación es la transmisión de información derivada de las modificaciones de estado, de una base de datos a otra, en pocas palabras, todas las operaciones que que modifiquen el estado de la BD se transmiten a otra BD que “replica” las operaciones, de forma que ambas BD tengan la misma información.

Dentro de las formas de replicación tenemos:

Maestro-maestro (multi-master): En éste modo, todos los nodos involucrados están en capacidad de ejecutar operaciones de Lectura/Escritura (read/writer). En pocas palabras, cualquier nodo involucrado está en capacidad de actualizar los datos. Para mantener la consistencia de los datos, el proceso de replicación involucra tareas de resolución de conflictos, en algunos casos según el número de nodos involucrados, puede aumentar la latencia en la comunicación.

Maestro-esclavo: En éste modo, todos los cambios son registrados en el nodo principal, el cual es el único habilitado para la función Lectura/Escritura (read/writer) y es el encargado de efectuar la replicación ha todos los nodos involucrados, los cuales sólo tienen capacidad para Lectura (read).
Un caso de uso típico para la replicación maestro – esclavo, con el modo en espera (standby), el esclavo funciona como una copia de seguridad del maestro y puede ser fácilmente activado en caso de un problema con el primario

repmgr es un conjunto de herramientas de código abierto para administrar la replicación y la conmutación por error en un clúster de servidores PostgreSQL. Mejora las capacidades incorporadas de Hot-Standby de PostgreSQL con herramientas para configurar servidores de reserva, monitorear la replicación y realizar tareas administrativas como failover o operaciones de cambio manual. La herramienta no replica los datos en sí, sino que le permite controlar fácilmente la reproducción, el modo de espera (hot standby) en el servidor (s) y controlar el estado de todo el proceso de replicación.

Como ya indicamos, el ejemplo que a continuación presentamos estará dirigido a la replicación maestro – Esclavo de dos nodos (master – esclavo) utilizando la herramienta repmgr.

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos
  • Se debe contar con instalación del servicio SSH (servidor y cliente)

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.0 (actualmente estable)

Aplicaciones:

  • postgresql-9.6 -> versión 9.6.8-1.pgdg90+1
  • repmgr -> versión 4.0.4

Continuar leyendo “Replicacion Base de Datos PostgreSQL usando repmgr”

Anuncios

Instalación y Configuración Interfaz WEB UI Dashboard Kubernetes

El presente instructivo tiene como finalidad la instalación y configuración de Interfáz WEB de Usuario (Dashboard) Kubernetes.

Dashboard es una interfaz de usuario basada en web Kubernetes. Puede utilizar Dashboard para desplegar aplicaciones en contenedores a un grupo Kubernetes, solucionar problemas de su aplicación en contenedores, y gestionar el propio clúster junto con sus correspondientes recursos. Puede utilizar paneles para obtener una visión general de las aplicaciones que se ejecutan en el clúster, así como para la creación o modificación de los recursos Kubernetes individuales (tales como despliegues, Trabajos, DaemonSets, etc). Por ejemplo, puede escalar de una implantación, iniciar una actualización continua, reiniciar un pod o implementar nuevas aplicaciones utilizando un asistente de despliegue.

Dashboard también proporciona información sobre el estado de los recursos Kubernetes en el clúster, y sobre los errores que se hayan podido producir.

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos
  • Tener Instalado y corriendo Cluster Kubernetes

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.1 (actualmente estable)

Ambiente:
El ambiente ha configurar es de “PRUEBA”, con un nodo Master (ks8master) y un nodo de trabajo (k8snodo1)
Continuar leyendo “Instalación y Configuración Interfaz WEB UI Dashboard Kubernetes”

Instalación de kubernetes en Linux con Kubeadm

El presente instructivo tiene como finalidad, presentar los pasos básicos de instalación de Kubernetes en distribución GNU/Linux Debian 9.1

Disable swap kubelet
Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos
  • Todos los equipos a configurar deben tener acceso a la internet

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.1 (actualmente estable)

Aplicaciones:

  • docker-ce -> 17.03 ce
  • kubelet -> v1.9.6
  • kubeadm -> v1.9.6
  • kubectl -> v1.9.6
  • Calico -> 3.0

Para la configuración de la solución se utilizarán tres (03) maquinas virtuales en virtualbox con debian 9.1:

– Un (01) Equipo para instalación y configuración del Master:

  • Hostname: k8smaster
  • IP Interna: 192.168.0.103

– Dos (02) equipos para la instalación y configuración de nodos

  • Hostname: k8snodo1
  • IP Interna: 192.168.0.104
  • Hostname: k8snodo2
  • IP Interna: 192.168.0.105

Dominio: k8s

Nota: Para la fecha domingo 23/03/2018 1:01pm, la página oficial de kubernetes recomienda la instalacion de Docker CE versión 17.03 desde los repositorios de Ubuntu para Docker o Debian.

Continuar leyendo “Instalación de kubernetes en Linux con Kubeadm”

Crear Area de Intercambio (Memoria Swap)

El presente instructivo tiene como finalidad la creación de un área de intercambio (swap) en un equipo, luego de haber instalado el sistema operativo.

La memoria Swap es importante para aquellos equipos (VPS) con poca memoria asignada (<2GB)

En el presente ejemplo el equipo posee 2GB de RAM, por lo que se creará una swap de 4GB. Según la recomendaciones, la swap debe ser de 1,5 * RAM a 2 * RAM.

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.0 (actualmente estable)

Aplicaciones:

  • comando dd
  • comando swapon
  • comando mkswap

Configuración:

1. Crear archivo con espacio de 4GB

root@devbd1:/# dd if=/dev/zero of=/swapfile bs=1MB count=4096 conv=fdatasync
4096+0 records in
4096+0 records out
4096000000 bytes (4.1 GB, 3.8 GiB) copied, 7.46962 s, 548 MB/s

Continuar leyendo “Crear Area de Intercambio (Memoria Swap)”

Promover Servidor Esclavo (Failover Master). Replicación PostgreSQL modo: Streaming Replication

El siguiente instructivo tiene como finalidad, mostrar los pasos básicos necesarios para la promoción de servidor esclavo en caso de falla del master en una repliaction modo Streaming Replication.

Si el servidor principal (master) falla, entonces el servidor esclavo debe comenzar el procedimiento de conmutación por error (failover). PostgreSQL no proporciona un software específico para identificar una falla en el servidor master y notificar al servidor esclavo, el procedimiento por tanto es manual.

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos
  • Se debe tener instalado y ejecución la replicación de BD PostgreSQL en modo: Streaming Replication, tal como se indica en éste enlace

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.0 (actualmente estable)

A continuación se demostrará dos (02) formas de promoción, la 1era a través del archivo recovery.conf y la 2da a través del comando pg_ctlcluster con la opción “promote”

Continuar leyendo “Promover Servidor Esclavo (Failover Master). Replicación PostgreSQL modo: Streaming Replication”

Prueba Velocidad Disco Duro Servidor Linux

El presente instructivo tiene como finalidad de explicar una forma sencilla y rápida de verificar la velocidad de transferencia de información de un disco

Requisitos:

  • Se debe contar con suficiente privilegios para la escritura en disco

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.0 (actualmente estable)

Aplicaciones:

  • comando dd

Tomar en Cuenta:

  • Identificar el volumen que se desea testear
  • Verificar la cantidad de espacio en disco disponible para efectuar prueba
  • Si el volumen a testear contiene raiz “/”, tomar las previsiones en cuanto al espacio disponible

Comandos
Prueba#1:

La prueba consiste “rellenar” con cadenas de ceros “if=/dev/zero” un archivo “prueba_disco.bat” en el volumen deseado “/var/lib/postgresql”. El peso del archivo será de 1GB aproximadamente, y está defino en la escritura de bloques de 1MB “bs=1MB” multiplicado por la cantidad de esos bloques que serán escritos 1024 (count=1024)

Continuar leyendo “Prueba Velocidad Disco Duro Servidor Linux”

Configurar Pgpool2 como Agrupación de Conexiones “Connection Pooling” de PostgreSQL

El presente instrcutivo tiene como finalidad mostrar los pasos básicos necesarios para la configuración de Pgpool2 como Agrupación de Conexiones “Connection Pooling” de PostgreSQL.

PgPool-II mantiene las conexiones establecidas a los servidores PostgreSQL, y los vuelve a utilizar cada vez que una nueva conexión con las mismas propiedades (es decir, nombre de usuario, la base de datos, la versión del protocolo) entra en acción. Reduce la conexión de arriba, y mejora el rendimiento global del sistema.

Requisitos:

  • Se debe contar con suficiente privilegios para la configuración de aplicativos
  • Se debe tener instalado el aplicativo PostgreSQL en su versión 9.6

Plataforma:

  • Equipos de arquitectura 64 bits
  • Sistema operativo ‘GNU/Linux’ Debian versión 9.0 (actualmente estable)

Instalación:

root@server:/# aptitude install pgpool2

Configuración:

1. Editar archivo de configuración de pgpool:

root@server:/# vim /etc/pgpool2/pgpool.conf

Continuar leyendo “Configurar Pgpool2 como Agrupación de Conexiones “Connection Pooling” de PostgreSQL”