Buscar en SafeKit

Alta disponibilidad de PostgreSQL con SafeKit: instale el módulo postgresql.safe para conmutación por error

Guía de instalación rápida de alta disponibilidad para PostgreSQL

Esta guía explica cómo configurar un mirror cluster para PostgreSQL usando SafeKit, lo que garantiza la conmutación por error automática y la replicación sincrónica sin necesidad de almacenamiento compartido.

Para obtener ayuda, puede usar SafeKit AI 🤖.

1. Descripción general

  • Arquitectura: Utiliza un sistema de dos nodos (primario/secundario).
  • Protección de datos: Implementa replicación síncrona en tiempo real para cero pérdida de datos (RPO=0).

2. Instalación

  • Programas: Instale el motor SafeKit en ambos servidores.
  • Módulo: Descargue el módulo de aplicación preconfigurado postgresql.safe.safe.

3. Configuration

  • Consola web: Configure las carpetas específicas que contienen los archivos de PostgreSQL.
  • Supervisión: Comience a supervisar y proteger la aplicación PostgreSQL.

Limitaciones de alta disponibilidad de SafeKit

Límite / RequisitoRazón e impactoAlternativa recomendada
Tamaño de réplica: Unos cuantos TBTiempo de resincronización tras un fallo (paso 3) :
• Red de 1 Gb/s ≈ 3 horas / TB
• Red de 10 Gb/s ≈ 1 hora / TB (según el rendimiento de escritura en disco)
• Utilizar almacenamiento compartido externo (más caro, más complejo).
Cantidad de archivos: < 1 000 000 archivos• Rendimiento del tiempo de resincronización tras un fallo (paso 3).
• Tiempo necesario para comprobar cada archivo entre ambos nodos.
• Colocar la gran cantidad de archivos a replicar en un disco duro virtual / máquina virtual.
• En este caso, solo se replicarán y resincronizarán los archivos que representen el disco duro virtual / la máquina virtual.
Capacidad de conmutación por error (failover): ≤ 32 VMs• Cada VM se ejecuta en un módulo espejo independiente.
• Máximo de 32 módulos espejo ejecutándose en el mismo clúster.
• Utilizar almacenamiento compartido externo y otra solución de clúster de VMs (más caro, más complejo).
Arquitectura de red: Red LAN/VLAN entre sitios remotos• Conmutación por error automática de la dirección IP virtual con 2 nodos en la misma subred.
• Buen ancho de banda para la resincronización (paso 3).
• Baja latencia para la réplica sincrónica: típicamente < 5 ms de RTT; los valores superiores deben validarse en función de la tasa de escritura de la aplicación.
• Utilizar un balanceador de carga para la dirección IP virtual si los 2 nodos se encuentran en 2 subredes (compatible con SafeKit, especialmente en la nube).
• Utilizar soluciones de respaldo con réplica asincrónica para redes de alta latencia.

Descripción general de la solución SafeKit/PostgreSQL

La solución se describe aquí: 💡La alta disponibilidad de PostgreSQL más simple: replicación síncrona de 2 nodos y conmutación por error.

Instalación de la solución SafeKit/PostgreSQL en Windows y Linux (postgresql.safe)

Requisitos previos

  • Necesita PostgreSQL instalado en 2 nodos (máquinas virtuales o servidores físicos).

Instalación del paquete en Windows

  • Descargue e instale la versión gratuita de SafeKit en 2 nodos Windows.
    Nota: la versión gratuita incluye todas las funciones de SafeKit. Al final del período de prueba, puede activar las claves de licencia permanentes sin desinstalar el paquete.
  • Al completar la instalación del paquete, seleccione Set console credentials and firewall rules now y configure una contraseña para el usuario admin de la consola SafeKit.
    Establezca la misma contraseña en todos los nodos.
  • Excluya de los análisis antivirus C:/safekit/ (el directorio de instalación predeterminado) y todas las carpetas replicadas que vaya a definir.
    Debido a su estrecha integración con el sistema operativo, algunos componentes de SafeKit pueden ser detectados por los antivirus, incluidos los mecanismos de IP virtual, la replicación en tiempo real y el reinicio de servicios críticos.

Descargar SafeKit (Windows) >

Instalación del módulo en Windows

  • Descargue el módulo postgresql.safe. El módulo es gratuito. Contiene los archivos userconfig.xml y los scripts de reinicio.
  • Coloque postgresql.safe en C:/safekit/Application_Modules/generic.

Descargar postgresql.safe (Windows) >

Instalación del paquete en Linux

  • Instale la versión gratuita de SafeKit en 2 nodos Linux. Nota: la versión de prueba incluye todas las funciones de SafeKit. Al finalizar el período de prueba, puede activar licencias permanentes sin desinstalar el paquete.
  • Después de descargar el paquete safekit_xx.bin, ejecútelo para extraer el paquete RPM y el script safekitinstall. A continuación, ejecute el script safekitinstall.
  • Responda sí cuando se le pregunte si desea configurar el firewall automáticamente.
  • Establezca la contraseña de la consola web para el usuario predeterminado admin. Use la misma contraseña en todos los nodos.

Descargar SafeKit (Linux) >

Instalación del módulo en Linux

  • Descargue el módulo postgresql.safe.
    El módulo es gratuito. Contiene los archivos userconfig.xml y los scripts de reinicio.
  • poner postgresql.safe bajo /opt/safekit/Application_Modules/generic/.

Descargar postgresql.safe (Linux) >

Configuración paso a paso de la solución SafeKit/PostgreSQL

Requisitos previos

  • Aplicación PostgreSQL instalada en 2 nodos.
  • El total de datos replicados se limita a unos pocos terabytes; más allá de esto, el tiempo de resincronización se vuelve significativo.
  • Interconexión mínima de 1 Gb/s entre nodos (se recomiendan 10 Gb/s para una resincronización más rápida).
  • La conmutación por error de IP requiere ambos nodos en el mismo LAN o LAN extendido (L2); las redes L3 enrutadas no son compatibles (excepto con los balanceadores de carga en la nube 🛠️ ).

1. Inicie la consola SafeKit

  • Inicie la consola web en un navegador en un nodo del clúster conectándose a http://localhost:9010.
  • Ingrese admin como nombre de usuario y la contraseña definida durante la instalación.

También puede ejecutar la consola en un navegador en una estación de trabajo externa al clúster.

⚠️ La configuración de SafeKit se realiza en ambos nodos desde un único navegador.

ℹ️ Para proteger la consola web, consulte 🛠️ 11. Asegurar el servicio web SafeKit en la Guía del usuario.

Inicie la consola web SafeKit para configurar el clúster PostgreSQL

2. Configurar direcciones de nodo

  • Ingrese las direcciones del nodo IP, presione Tab key para verificar la conectividad y completar los nombres de los nodos. Si node1 o node2 tienen un color rojo, verifique la conectividad del navegador con ambos nodos y verifique el firewall en ambos nodos para 🛠️ solución de problemas.
  • Luego, haga clic en Save and apply para guardar la configuración.
  • Verifique el mensaje Success ✅ en ambos nodos.
  • Si la configuración Failure ❌ ocurre en un nodo, abra el acordeón ▼ para ese nodo y revise los mensajes. Tenga en cuenta que puede utilizar el SafeKit AI 🤖 para obtener ayuda.

ℹ️ Si lo deseas, puedes agregar un nuevo LAN and nodes (primero ➕) para crear un segundo latido y una red de replicación dedicada.

ℹ️ Si hace clic en Advanced configuration, se muestra el archivo cluster.xml. La consola completa automáticamente este archivo y lo implementa en los nodos.

Ingrese los nodos del cluster PostgreSQL

3. Seleccione un módulo

  • En New module, haga clic en el módulo postgresql.safe.

ℹ️ En el banner azul en la parte superior, 🛜 node1 representa el nodo de conexión de la consola. Este nodo transmite solicitudes a node2 cuando es necesario.

ℹ️ La consola busca xxx.safe en el directorio Application_Modules/generic/ en el nodo de conexión (node1) si colocó un módulo allí durante la instalación.

Elija el módulo para PostgreSQL

4. Configurar el módulo

  • En Module startup at boot, elija un inicio automático del módulo al arrancar sin demora.
  • En Macros / SERVICES, ingrese los nombres de los servicios de su aplicación, en el orden de inicio, separados por comas. Vea esta captura de pantalla para ver un ejemplo visual de los servicios Milestone XProtect 🖼️.
  • En Heartbeat networks, debe tener una red de latido único en la que se realiza la replicación. Si agregó un LAN privado en el paso 2, puede configurar dos latidos con el flujo de replicación en el LAN privado.
  • En Virtual IP addresses, ingrese una dirección virtual IP. Una dirección IP virtual es una dirección IP estándar en la misma red IP (misma subred) que las direcciones IP de ambos nodos.
    Los clientes de aplicaciones deben configurarse con la dirección virtual IP (o el nombre DNS asociado con la dirección virtual IP).
    La dirección virtual IP se cambia automáticamente en caso de falla.
  • En Replicated directories, establezca las rutas de los directorios a replicar. Compruebe que existan en ambos nodos y contengan los datos de la aplicación.
    La replicación de datos y registros es esencial para una base de datos.
    Puede crear directorios replicados adicionales según sea necesario.
    Vea esta captura de pantalla para ver un ejemplo visual de la replicación de Milestone XProtect SQL 🖼️.
  • En Checkers, podrá configurar verificadores si es necesario, como monitoreo de procesos, verificadores personalizados, TCP, ping o verificadores de cerebro dividido.
    Por ejemplo, si se muestra un nombre de proceso en Monitored processes/services, se monitoreará con una acción de reinicio en caso de falla. Configurar un nombre de proceso incorrecto hará que el módulo se detenga inmediatamente después de su inicio.

ℹ️ Si hace clic en Advanced configuration, se muestra el archivo userconfig.xml. La consola completa automáticamente este archivo y lo implementa en los nodos con los scripts de reinicio.

ℹ️ En una implementación en la nube, no es necesario configurar una dirección IP virtual en SafeKit. El IP virtual se administra en el nivel del balanceador de carga de la nube 🛠️ .

ℹ️ Cuando aplicas la configuración SafeKit, el startup type de servicios se establece automáticamente en Manual en los servicios Windows. Esto garantiza que los servicios no se inicien automáticamente cuando se inicia el sistema, sino que se inicien solo cuando se inicia el módulo (lo mismo se aplica en Linux).

Ingrese la configuración del módulo PostgreSQL

5. Editar guiones (opcional)

  • Este paso es opcional y se puede omitir en la mayoría de los casos, ya que los scripts de reinicio ya están preconfigurados para reiniciar los servicios definidos en el paso anterior.
  • Entonces, haga clic directamente en Next step.
  • start_prim.ps1 inicia todos los servicios en el orden especificado en la lista SERVICES, mientras que stop_prim.ps1 detiene todos los servicios en orden inverso.
  • Además, start_prim.ps1 verifica el inicio de cada servicio y detiene el módulo si algún servicio no se inicia correctamente.

Ingrese la configuración del módulo PostgreSQL

6. Cifrado de comunicación (opcional)

  • Mantener el cifrado de la comunicación entre nodos.

Cifrado de comunicación del módulo PostgreSQL

7. Guardar y aplicar

  • Save and apply la configuración y los scripts en ambos nodos.

Guarde y aplique la configuración del módulo PostgreSQL.

8. Verificar la configuración exitosa

  • Verifique el mensaje Success ✅ en ambos nodos y haga clic en Monitor modules.
  • Si la configuración Failure ❌ ocurre en un nodo, abra el acordeón ▼ para ese nodo y revise los mensajes. Tenga en cuenta que puede utilizar el SafeKit AI 🤖 para obtener ayuda.

⚠️ En Linux, es posible que obtenga un error en este paso si los directorios replicados son puntos de montaje.🛠️ Consulte SK-0030 para resolver el problema.

Verifique el éxito de la configuración del módulo PostgreSQL

9. Inicie el nodo con datos actualizados.

  • Si el nodo 1 tiene los directorios replicados actualizados, selecciónelo y ⋯ Force start ▶ As primary.

Cuando se inicie el nodo 2, todos los datos se copiarán del nodo 1 al nodo 2.

⚠️ Si tomas la decisión equivocada, corres el riesgo de sincronizar datos obsoletos en ambos nodos.

⚠️ También se supone que la aplicación PostgreSQL se detiene en el nodo 1 para que SafeKit instale los mecanismos de replicación y luego inicie la aplicación en el script start_prim.

⚠️ Utilice Start para inicios posteriores: SafeKit conserva el servidor más actualizado. El arranque del As primary es un arranque especial la primera vez o durante operaciones excepcionales.

Iniciar como primario el nodo PostgreSQL con los datos actualizados

10. Espere la transición a ALONE (verde)

  • El nodo 1 debe alcanzar el estado ALONE (verde), lo que significa que el IP virtual está configurado y que el script start_prim se ha ejecutado en el nodo 1.

⚠️ Si no se llega a ALONE (verde) o si no se inicia la aplicación, analice el motivo con el log del módulo 🖼️ del nodo 1.

  • Haga clic en el ícono 🔍 log de node1 para abrir el registro del módulo y buscar mensajes de error, como un verificador que detecta un error y detiene el módulo.
  • Haga clic en start_prim en el registro: los mensajes de salida del script se muestran a la derecha y se pueden detectar errores, como un servicio iniciado incorrectamente.
  • Utilice SafeKit AI 🤖 para obtener ayuda con los mensajes de registro.

⚠️ Si el clúster está en el estado WAIT (red) not uptodate, STOP (red) not uptodate, detenga el nodo WAIT y fuerce su inicio como primario 🖼️.

El primer nodo PostgreSQL comienza como primario y se convierte en ALONE.

11. Iniciar el nodo 2

  • ⋯ Start nodo 2 con su menú contextual.
  • Espere al estado SECOND (verde).

ℹ️ El nodo 2 permanece en el estado SECOND (naranja) mientras resincroniza los directorios replicados (copia del nodo 1 al nodo 2).

  • Esto puede tardar un poco dependiendo del tamaño de los archivos que se van a resincronizar en los directorios replicados y del ancho de banda de la red.
  • Para ver el progreso de la copia, consulte el registro del módulo 🖼️ y los recursos de replicación 🖼️ del nodo 2. Utilice el SafeKit AI 🤖 para obtener ayuda con los mensajes de registro.

Inicie el nodo 2 PostgreSQL

12. Verificar que el clúster esté operativo.

  • Verifique que el clúster esté verde/verde con los servicios PostgreSQL ejecutándose en el nodo PRIM y no ejecutándose en el nodo SECOND.

En este estado, solo los cambios dentro de los archivos se replican en tiempo real.

⚠️ Los componentes que sean clientes de los servicios PostgreSQL deben configurarse con la dirección virtual IP. La configuración se puede realizar con un nombre DNS (si se ha creado un nombre DNS y asociado a la dirección virtual IP).

El nodo 2 PostgreSQL es SECOND (verde)

13. Pruebas

  • Detenga el nodo PRIM desplazándose hacia abajo en su menú contextual y haciendo clic en Stop.
  • Verifique que haya una conmutación por error en el nodo SECOND, que debería convertirse en ALONE (verde).
  • Y con Microsoft Management Console (MMC) en Windows o con líneas de comando en Linux, verifique la conmutación por error de los servicios PostgreSQL (detenidos en el nodo 1 en el script stop_prim e iniciados en el nodo 2 en el script start_prim).

⚠️ Si no se alcanza ALONE (verde) en node2 o si no se inicia la aplicación, analice el motivo con el log del módulo 🖼️ del nodo 2.

  • Haga clic en el ícono 🔍 log de node2 para abrir el registro del módulo y buscar mensajes de error, como un verificador que detecta un error y detiene el módulo.
  • Haga clic en start_prim en el registro: los mensajes de salida del script se muestran a la derecha y se pueden detectar errores, como un servicio iniciado incorrectamente.
  • Utilice SafeKit AI 🤖 para obtener ayuda con los mensajes de registro.

⚠️

  • Si todo está bien, inicie node1, lo que resincronizará los directorios replicados desde node2.
  • Si algo sale mal, detenga node2 y y fuerce el inicio como 🖼️ principal de node1, que se reiniciará con sus datos localmente saludables en el momento de la parada.

ℹ️ Encuentra más detalles, junto con vídeos, en la Formación Online SafeKit.

Detenga el módulo PostgreSQL en el servidor PRIM

14. Apoyo

  • Para obtener soporte, tome 2 SafeKit Snapshots (2 archivos .zip), uno para cada nodo.

ℹ️ Más información sobre el soporte aquí.

Tome las instantáneas de PostgreSQL como soporte

Demostración de la solución de espejo SafeKit

Vídeo de SafeKit: agrupación en clústeres a nivel de aplicación (8:47)

En este vídeo, descubra cómo SafeKit implementa un clúster espejo HA sin la complejidad de una SAN. Si bien esta demostración utiliza Microsoft SQL Server, la solución funciona de manera idéntica para otras bases de datos y aplicaciones.

Capítulos

  1. 🎬 2 nodos con SQL Server (0:32)
  2. 🎬 Configure el clúster y el módulo mirror.safe (3:58)
  3. 🎬 Iniciar y probar la replicación, migración y conmutación por error de SQL en caso de falla (4:17)

Implementación paso a paso

🔍 Centro de Navegación de Alta Disponibilidad SafeKit

Explore SafeKit: Funciones, vídeos técnicos, documentación y prueba gratuita

Tipo de RecursoDescripciónEnlace Directo
Funciones Clave¿Por qué elegir SafeKit para una alta disponibilidad sencilla y rentable?Vea por qué elegir SafeKit para alta disponibilidad
Casos de usoDescubra cómo SafeKit garantiza la alta disponibilidad de infraestructuras críticasVer todos los casos de uso (Software OEM, Servidores Edge, SCADA y más)
Modelo de DespliegueAlta Disponibilidad SANless Todo-en-Uno: Clustering de software Shared-NothingVea SafeKit HA SANless Todo-en-Uno
Estrategias de HASafeKit: Alta disponibilidad a nivel de infraestructura (VM) vs. nivel de aplicaciónVea SafeKit HA y Redundancia: VM vs. Nivel de Aplicación
Especificaciones TécnicasLimitaciones técnicas para el clustering con SafeKitVea las limitaciones de alta disponibilidad de SafeKit
VídeosSafeKit: Demos de configuración y failover de alta disponibilidadVea los tutoriales de failover de SafeKit
ArquitecturaCómo funciona el Mirror Cluster de SafeKit (Replicación en tiempo real y failover)Vea SafeKit Mirror Cluster: Replicación en tiempo real y failover
ArquitecturaCómo funciona el Farm Cluster de SafeKit (Equilibrio de carga de red y failover)Vea SafeKit Farm Cluster: Equilibrio de carga de red y failover
Ventajas CompetitivasComparativa: SafeKit frente a los clusters de alta disponibilidad (HA) tradicionalesVea la comparativa entre SafeKit y los clusters de HA tradicionales
Recursos TécnicosAlta Disponibilidad SafeKit: Documentación, descargas y pruebaVea la prueba gratuita y documentación técnica de SafeKit HA
Soluciones PreconfiguradasLibrería de módulos de aplicación SafeKit: Soluciones de HA listas para usarVea los módulos de aplicación de alta disponibilidad de SafeKit
SafeKit AI Chat SafeKit AI