GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo Multi-Master MySQL con Percona y Keepalived

Introducción

En este artículo de instrucciones, lo guiaremos a través de los procedimientos para instalar y mantener una solución de clúster MySQL multimaestro de un solo sitio con servicios de equilibrio de carga. Usaremos Percona XtraDB Cluster Server como nuestra plataforma base de base de datos MySQL, ya que tiene todos los componentes necesarios y tiene soporte integrado para una solución de código abierto activa/activa de alta disponibilidad y alta escalabilidad para la agrupación en clústeres de MySQL. Integra Percona Server y Percona XtraBackup con la biblioteca Galera de soluciones MySQL de alta disponibilidad en un solo paquete, lo que le permite crear un clúster de alta disponibilidad MySQL rentable. Usaremos Keepalived para manejar el equilibrio de carga.

Percona proporciona repositorios yum y apt para Red Hat/CentOS y Ubuntu/Debian. Estos repositorios incluyen Percona Server, Percona XtraDB, Percona XtraBackup y Percona Toolkit.

Keepalived es un software de enrutamiento de código abierto que proporciona equilibrio de carga a través de LVS (servidor virtual de Linux) y alta disponibilidad a través de VRRP (protocolo de redundancia de enrutador virtual).

Requisitos

Antes de comenzar, primero debemos tener lo siguiente en su lugar.

  • Tres servidores CentOS 6.x, todos en la misma red de área local (LAN). (Dos nodos MySQL y un nodo de equilibrio de carga).
  • Los servidores MySQL deben tener al menos 2 GB de RAM para habilitar los servicios de sincronización.
  • Tres contraseñas únicas y seguras para los siguientes usuarios de MySQL:
    • Usuario raíz de MySQL
    • Los servicios SST (Transferencia de instantáneas de estado) sincronizan al usuario ("sst-sync-user")
    • Usuario de Keepalived ("keepalived")
  • Configuración segura del cortafuegos CentOS 6.x (Este elemento es una recomendación de mejores prácticas y no es estrictamente necesario. Usamos iptables en esta guía, por lo que si usa una solución alternativa, ajústela según sea necesario. )

.

Resumen de paquetes y pasos de configuración

  • Preparación básica del servidor Percona (nodos n.° 1 y n.° 2)
  • Nodo MySQL #1:Configuración
  • Nodo MySQL #2:Configuración
  • Nodo n.º 3 de Keepalived:instalación desde el repositorio
  • Nodo n.° 3 de Keepalived:(opcional) compilación desde el origen

.

Diagrama de configuración

A continuación se muestra un diagrama de los resultados esperados una vez que hayamos completado este artículo. Tenga en cuenta que todas las direcciones IP utilizadas en este artículo y el diagrama son RFC 5737:bloques de direcciones IPv4 reservados solo con fines de documentación.

Diagrama de red de clúster MySQL multimaestro

.

1:preparación básica del servidor Percona (nodos n.° 1 y n.° 2)

Primero, nos aseguraremos de haber iniciado sesión en su servidor web como la cuenta de usuario raíz.

sudo su -

A continuación, vamos a instalar los repositorios yum necesarios para que podamos instalar y mantener actualizados fácilmente los paquetes de software de Percona.

yum install -y http://linux.mirrors.es.net/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yum clean all
yum update
  • EPEL :Extra Packages for Enterprise Linux es un grupo de interés especial de Fedora que crea, mantiene y administra un conjunto de paquetes adicionales de alta calidad para Enterprise Linux.
  • Percona :Repositorio de software Percona XtraDB.

.
Ahora, vamos a deshabilitar SELINUX (kernel de Linux con seguridad mejorada), ya que entra en conflicto con los servicios de clúster de Percona XtraDB. Primero, abra el /etc/selinux/config archivo de configuración con el editor de texto de su elección (usaremos nano a lo largo de este artículo).

nano /etc/selinux/config

A continuación, cambie la variable de configuración SELINUX=enforcing a SELINUX=disabled , como se muestra a continuación.

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

Reinicie su servidor para que el cambio surta efecto.

Si está ejecutando los servicios de firewall de iptables (habilitado de forma predeterminada en la mayoría de las instalaciones de CentOS 6.x ), deberá habilitar los puertos de servicio requeridos en cada servidor de nodo para permitir la conectividad de MySQL y los servicios de sincronización entre los nodos en clúster.

iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp -m multiport --dports 4567:4568 -j ACCEPT
iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 4444 -j ACCEPT 
iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables save

Nota: Estos comandos insertarán cada una de estas reglas de firewall justo después de las reglas de ENTRADA predeterminadas, en la línea número 5. Si ha realizado algún cambio en sus reglas de iptables antes de este paso, asegúrese de ajustar estos comandos con los números de línea relevantes para su configuración de iptables. . Consulte nuestro artículo sobre IPTables básicas si necesita ayuda o un repaso.

.
Ya estamos listos para instalar los paquetes de Percona XtraDB Cluster en cada nodo del servidor MySQL.

yum install -y Percona-XtraDB-Cluster-56

.

2 – Nodo MySQL #1:Configuración

Primero, asegúrese de tener a mano las contraseñas de usuario de MySQL (mencionadas anteriormente en la sección de requisitos previos) en los siguientes pasos.

Ahora necesitaremos crear el /etc/my.cnf archivo de configuración con los ajustes de configuración de agrupación.

nano /etc/my.cnf

A continuación, copie y pegue estos ajustes de configuración básicos en nuestro archivo de configuración.

Nota: En las secciones "CONFIGURACIÓN DE CLÚSTER" y "TRANSFERENCIA DE INSTANTÁNEA DEL ESTADO" a continuación, deberá sustituir los valores relevantes para su red/configuración:

  • wsrep_cluster_name – el nombre del clúster debe ser el mismo en todos los nodos, pero puede sustituirlo por su propia convención de nomenclatura.
  • dirección_clúster_wsrep – utilizar las direcciones IP de cada nodo participante (incluido este host). Debe estar precedido por "gcomm://".)
  • dirección_nodo_wsrep – use la dirección IP para este host.
  • nombre_nodo_wsrep – puede sustituir su propia convención de nomenclatura.
  • wsrep_sst_auth – sustituya la contraseña de la cuenta de usuario SST de arriba después del nombre de usuario y dos puntos en este campo. También puede sustituir el usuario de SST por su propia convención de nomenclatura; solo asegúrese de actualizar el mismo nombre de usuario cuando agregue los usuarios a MySQL a continuación.

.

[mysqld]

# GENERAL #
datadir	= /var/lib/mysql
user = mysql

# LOGGING #
# log-error = /var/log/mysql/error.log
# log-queries-not-using-indexes = 1
# slow-query-log = 1
# slow-query-log-file = /var/log/mysql/mysql-slow.log 

# DATA STORAGE #
default_storage_engine = InnoDB
binlog_format = ROW

# CLUSTER CONFIGURATION #
wsrep_cluster_name = mysql_clstr01
wsrep_cluster_address = gcomm://192.0.2.11,192.0.2.12
wsrep_node_address = 192.0.2.11
wsrep_node_name = mysql-node-01
wsrep_provider = /usr/lib64/libgalera_smm.so

# STATE SNAPSHOT TRANSFER #
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = "sst-sync-user:<%sst generated password%>"

# MyISAM Database Replication #
# MyISAM storage engine has only experimental support at this time. #
# wsrep_replicate_myisam = 1

# Settings / Tunning Options #
innodb_locks_unsafe_for_binlog = 1 
innodb_autoinc_lock_mode = 2 
# innodb_flush_log_at_trx_commit = 2
# innodb_flush_method = O_DIRECT
# innodb_file_per_table = 1
# innodb_buffer_pool_size = 1386971136
# innodb_buffer_pool_size = 6G
# innodb_log_file_size = 256M

# key_buffer = 208045670
# max_allowed_packet = 67108864
# thread_stack = 192K
# thread_cache_size = 10

# query_cache_limit = 1M
# query_cache_size = 16M

Muchos de estos ajustes de configuración están comentados. Se incluyen en caso de que desee modificar y/o depurar el rendimiento de la base de datos. Cuando haya terminado, guarde el archivo y salga.

Ahora estamos listos para "arrancar" el nodo principal en el clúster.

Bootstrapping se refiere a inicializar y ejecutar el nodo del clúster inicial. Al arrancar, estamos definiendo qué nodo tiene la información inicial y con cuál deben sincronizarse todos los demás nodos (a través de SST). En el caso de un bloqueo (o apagado) de todo el clúster, el arranque del nodo principal funciona de la misma manera:al elegir el nodo inicial, básicamente estamos decidiendo qué nodo del clúster contiene la base de datos con la que queremos continuar.

La pertenencia al clúster no está definida por esta configuración, pero está definida por los nodos que se unen al clúster con el wsrep_cluster_name adecuado. configuración variable.

.

/etc/init.d/mysql bootstrap-pxc

También queremos asegurarnos de configurar los servicios de MySQL para que se inicien automáticamente al reiniciar el servidor.

chkconfig mysql on

Nuestro primer servicio de base de datos de nodos ya está operativo.

Ahora estamos listos para asegurar la instalación de su base de datos MySQL. De forma predeterminada, la instalación de una base de datos MySQL inicial no está protegida con una contraseña. Para asegurar nuestra instalación de MySQL, ejecutaremos el siguiente comando y seguiremos las indicaciones en línea. Durante este proceso, se nos pedirá que ingresemos una contraseña de root. Use la contraseña raíz de MySQL de arriba durante este proceso. Podemos presionar Enter para aceptar los valores predeterminados para las indicaciones restantes para completar la instalación segura.

/usr/bin/mysql_secure_installation

Ahora que hemos asegurado nuestro servidor de base de datos, necesitamos configurar un par de cuentas de usuario. La primera cuenta se usará para los servicios de sincronización de SST y la segunda cuenta se usará para el script de verificación del servicio Keepalived.

Inicie sesión en la consola CLI de MySQL.

mysql -u root -p

A continuación, necesitaremos crear las cuentas de usuario y otorgar permisos de seguridad a las cuentas.

CREATE USER 'sst-sync-user'@'localhost' IDENTIFIED BY '<%sst generated password%>';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sst-sync-user'@'localhost';

CREATE USER 'keepalived'@'%' IDENTIFIED BY '<%keepalived generated password%>';
FLUSH PRIVILEGES;

Ahora estamos listos para configurar este nodo para que responda directamente a las conexiones MySQL recibidas del servidor de equilibrio de carga Keepalived. En una configuración de servidor virtual Linux (LVS) de enrutamiento directo, el enrutador LVS (su servidor Keepalived) debe recibir las solicitudes de conexión MySQL entrantes y luego enviarlas al servidor real adecuado para su procesamiento. Los servidores reales tendrán que directamente comunicar los datos de respuesta al cliente que solicita los datos. Para configurar el enrutamiento directo, cada servidor real debe tener la dirección VIP (IP virtual) configurada en el host, pero no responder a las solicitudes ARP en la red local.

Primero, configuraremos el servidor para que no responda a ninguna solicitud ARP para la dirección VIP.

echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf

sysctl -p

A continuación, cree una dirección VIP en el adaptador Loopback. Crearemos el lo:1 archivo de configuración de la interfaz y configúrelo para que se inicie automáticamente al arrancar.

nano /etc/sysconfig/network-scripts/ifcfg-lo:1

Pegue la siguiente configuración en la configuración de la interfaz. Asegúrese de reemplazar la dirección VIP de ejemplo con la dirección que usará.

DEVICE=lo:1
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.0.2.10
NETMASK=255.255.255.255

Una vez que hayamos guardado el archivo de configuración, podemos abrir la dirección VIP.

ifup lo:1

Nuestro primer nodo de MySQL Cluster ahora está completo.
.

3 – Nodo MySQL #2:Configuración

Nuevamente, asegúrese de tener a mano las contraseñas de usuario de MySQL (mencionadas anteriormente en la sección de requisitos previos) en los siguientes pasos.

Ahora necesitaremos crear el /etc/my.cnf archivo de configuración con los ajustes de configuración de agrupación.

nano /etc/my.cnf

A continuación, copie y pegue estos ajustes de configuración básicos en nuestro archivo de configuración.

Nota: En las secciones "CONFIGURACIÓN DE CLÚSTER" y "TRANSFERENCIA DE INSTANTÁNEA DEL ESTADO" a continuación, deberá sustituir los valores relevantes para su red/configuración:

  • wsrep_cluster_name – el nombre del clúster debe ser el mismo en todos los nodos, pero puede sustituirlo por su propia convención de nomenclatura.
  • dirección_clúster_wsrep – utilizar las direcciones IP de cada nodo participante (incluido este host). Debe estar precedido por "gcomm://".)
  • dirección_nodo_wsrep – use la dirección IP para este host.
  • nombre_nodo_wsrep – puede sustituir su propia convención de nomenclatura.
  • wsrep_sst_auth – sustituya la contraseña de la cuenta de usuario SST de arriba después del nombre de usuario y dos puntos en este campo. También puede sustituir el usuario de SST por su propia convención de nomenclatura; solo asegúrese de actualizar el mismo nombre de usuario cuando agregue los usuarios a MySQL a continuación.

.

[mysqld]

# GENERAL #
datadir	= /var/lib/mysql
user = mysql

# LOGGING #
# log-error = /var/log/mysql/error.log
# log-queries-not-using-indexes = 1
# slow-query-log = 1
# slow-query-log-file = /var/log/mysql/mysql-slow.log 

# DATA STORAGE #
default_storage_engine = InnoDB
binlog_format = ROW

# CLUSTER CONFIGURATION #
wsrep_cluster_name = mysql_clstr01
wsrep_cluster_address = gcomm://192.0.2.11,192.0.2.12
wsrep_node_address = 192.0.2.12
wsrep_node_name = mysql-node-02
wsrep_provider = /usr/lib64/libgalera_smm.so

# STATE SNAPSHOT TRANSFER #
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = "sst-sync-user:<%sst generated password%>"

# MyISAM Database Replication #
# MyISAM storage engine has only experimental support at this time. #
# wsrep_replicate_myisam = 1

# Settings / Tunning Options #
innodb_locks_unsafe_for_binlog = 1 
innodb_autoinc_lock_mode = 2 
# innodb_flush_log_at_trx_commit = 2
# innodb_flush_method = O_DIRECT
# innodb_file_per_table = 1
# innodb_buffer_pool_size = 1386971136
# innodb_buffer_pool_size = 6G
# innodb_log_file_size = 256M

# key_buffer = 208045670
# max_allowed_packet = 67108864
# thread_stack = 192K
# thread_cache_size = 10

# query_cache_limit = 1M
# query_cache_size = 16M

Muchos de estos ajustes de configuración están comentados. Se incluyen en caso de que desee modificar y/o depurar el rendimiento de la base de datos. Cuando haya terminado, guarde el archivo y salga.

Ahora estamos listos para iniciar el segundo nodo en el clúster. También queremos asegurarnos de configurar los servicios de MySQL para que se inicien automáticamente al reiniciar el servidor.

service mysql start 
chkconfig mysql on

Durante el inicio inicial, el segundo servidor inicia el proceso de sincronización con el nodo principal. Después de unos minutos, los servicios MySQL de nuestro segundo nodo estarán operativos.

Al igual que antes con el nodo principal, ahora configuraremos este nodo para que responda directamente a las conexiones de MySQL recibidas del servidor de equilibrio de carga Keepalived. Primero, configuraremos el servidor para que no responda a ninguna solicitud ARP para la dirección VIP.

echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf

sysctl -p

A continuación, vamos a crear una dirección VIP en el adaptador Loopback. Crea el lo:1 archivo de configuración de la interfaz y configúrelo para que se inicie automáticamente al arrancar.

nano /etc/sysconfig/network-scripts/ifcfg-lo:1

Pegue la siguiente configuración en el archivo de configuración de la interfaz. Asegúrese de reemplazar la dirección VIP de ejemplo con la dirección que usará.

DEVICE=lo:1
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.0.2.10
NETMASK=255.255.255.255

Una vez que hayamos guardado el archivo de configuración, podemos abrir la dirección VIP.

ifup lo:1

Nuestro segundo nodo de clúster de MySQL ahora está completo.

Ahora vamos a validar que ambos servidores estén operativos y sincronizados. Desde cada nodo, ejecute el siguiente comando (necesitaremos nuestra contraseña de root de MySQL):

mysql -h localhost -u root -p -e "SHOW STATUS;" | grep "wsrep_ready"

Deberíamos recibir la respuesta “ON”. Si recibimos alguna otra respuesta, entonces el nodo no es miembro del clúster.
.

4 – Nodo Keepalived #3:Instalación desde el Repositorio

Esta sección cubre la instalación de Keepalived desde el repositorio de CentOS. Esta versión de Keepalived sigue varias iteraciones detrás de la versión más reciente. Si bien funcionará para implementaciones simples, si cree que podría necesitar la última versión y las correcciones de soporte que ofrece (como soporte mejorado para IPv6 y VRRPv3, por ejemplo), eche un vistazo a su registro de cambios. Las instrucciones para compilar la última versión desde la fuente se incluyen a continuación.

Primero, si está ejecutando los servicios de firewall de iptables (habilitados de forma predeterminada en la mayoría de las instalaciones de CentOS 6.x ), deberá habilitar la conectividad MySQL.

iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables save

Nota: Estos comandos insertarán cada una de estas reglas de firewall justo después de las reglas de ENTRADA predeterminadas, en la línea número 5. Si ha realizado algún cambio en sus reglas de iptables antes de este paso, asegúrese de ajustar estos comandos con los números de línea relevantes para su configuración de iptables. . Consulte nuestro artículo sobre IPTables básicas si necesita ayuda o un repaso.

.

Ahora, podemos instalar el paquete Keepalived.

yum install keepalived

A continuación, vamos a crear un nuevo /etc/keepalived/keepalived.conf archivo de configuración. Puede eliminar la configuración predeterminada que está instalada o puede moverla a un archivo de copia de seguridad para consultarla más adelante si lo desea. En este ejemplo, lo moveremos a un archivo de copia de seguridad.

mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
nano /etc/keepalived/keepalived.conf

Ahora copie y pegue la siguiente configuración en keepalived.conf archivo.

Asegúrese de reemplazar las direcciones IP de ejemplo a continuación con las direcciones IP virtuales y reales que configuró en los pasos anteriores. Además, deberá agregar su contraseña de usuario keepalive arriba donde se indica.

.

! Configuration File for keepalived

global_defs {
   router_id LVS_MYSQL_CLSTR1
}

### VRRP Virtual IP Configuration
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keepalived
    }
    virtual_ipaddress {
        192.0.2.10
    }
}

### LVS Configuration
virtual_server 192.0.2.10 3306 {
  delay_loop 2

  ## LB Mode : Round-Robin
  lb_algo rr

  ## Direct Routing Response
  lb_kind DR

  protocol TCP

 # Real Server to add when all real_servers are down
 # sorry_server <IPADDR> <PORT>

  real_server 192.0.2.11 3306 {
    weight 10
        MISC_CHECK {
                misc_path "/etc/keepalived/check_scripts/check_db 192.0.2.11 keepalived <%keepalived password%>"
                misc_timeout 5
                misc_dynamic
        }
  }

  real_server 192.0.2.12 3306 {
    weight 10
        MISC_CHECK {
                misc_path "/etc/keepalived/check_scripts/check_db 192.0.2.12 keepalived <%keepalived password%>"
                misc_timeout 5
                misc_dynamic
        }
  }
}

Ahora vamos a crear el MISC_CHECK script que invoca esta configuración (no existe por defecto). Primero, crearemos el directorio, luego crearemos el archivo de secuencia de comandos y estableceremos el modo de archivo en ejecutable.

mkdir -p /etc/keepalived/check_scripts
touch /etc/keepalived/check_scripts/check_db
chmod +x /etc/keepalived/check_scripts/check_db

nano /etc/keepalived/check_scripts/check_db

Ahora, copie y pegue el siguiente código bash en el archivo check_db .

#!/bin/bash

mysql_host="${1}";
mysql_user="${2}";
mysql_pass="${3}";

node_response=$(mysql -h ${mysql_host} -u ${mysql_user} -p${mysql_pass} -e "SHOW GLOBAL VARIABLES;" | grep "wsrep_node_address" | awk '{ print $2 }');

if [ "${node_response}" == "${mysql_host}" ]
then
        # echo "Hostname matched";
        exit 0;
else
        # echo "Hostname not matched";
        exit 1;
fi

Guarde el archivo y salga.

Ahora estamos listos para iniciar los servicios de Keepalived. También los configuraremos para que se inicien automáticamente al reiniciar el sistema.

chkconfig keepalived on
/etc/init.d/keepalived start

Nuestro servidor Keepalived ya está operativo. Para obtener instrucciones detalladas sobre cómo personalizar su configuración de Keepalived, consulte la guía del usuario.

Ahora deberíamos tener un clúster MySQL multimaestro completamente funcional, con un solo VIP para la conectividad. Podemos apuntar las conexiones de los clientes a nuestra dirección VIP (192.0.2.10) y la conexión se pasará a cada servidor real en nuestro clúster en modo round-robin.

Debido a que usamos Keepalived con una configuración VIP de VRRP, puede agregar fácilmente un segundo servidor Keepalived a la red para proporcionar una redundancia total de su configuración de Load-Balancer y MySQL Cluster.
.

Nodo n.º 3 de Keepalived:(opcional) compilación desde el origen

Si queremos la última versión de Keepalived, necesitaremos instalar las herramientas necesarias para construir el paquete Keepalived desde la fuente.

yum install -y kernel-headers kernel-devel gcc make popt-devel openssl-devel ipvsadm net-snmp-devel git mysql;
  • popt-devel:se utiliza para analizar la línea de comandos
  • OpenSSL:esta biblioteca es necesaria para la compatibilidad con MD5 y SSL
  • ipvsadm:se utiliza para mantener o inspeccionar la tabla del servidor virtual en el kernel de Linux
  • net-snmp:proporciona monitoreo SNMP

.
Con las dependencias ahora en su lugar, necesitaremos descargar la versión más reciente del código fuente. Podemos encontrar la versión más reciente en la página de descarga de Keepalived.org, o podemos usar el repositorio GIT para descargar la última versión. Usaremos el repositorio GIT para esta instalación.

mkdir -p /tmp/keepalived
git clone https://github.com/acassen/keepalived.git /tmp/keepalived
cd /tmp/keepalived

Ahora que hemos descargado y extraído el código fuente, estamos listos para compilar el paquete Keepalived para nuestro kernel de Linux.

./configure --enable-snmp
make
make install

Después de cada comando, debemos verificar dos veces la salida para asegurarnos de que no haya errores durante cada proceso. Una vez que todo se compile correctamente, estaremos listos para crear los enlaces simbólicos necesarios.

ln -s /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/etc/keepalived/ /etc/keepalived

A continuación, debemos actualizar /etc/init.d/keepalived secuencia de comandos de inicio para llamar a la ruta correcta para el daemon.

nano /etc/init.d/keepalived

Aquí, reemplace la línea de llamada de la aplicación daemon keepalived con la ruta completa a la aplicación, como se muestra a continuación.

#!/bin/sh
#
# Startup script for the Keepalived daemon
#
...
start() {
    echo -n $"Starting $prog: "
    daemon /usr/local/sbin/keepalived ${KEEPALIVED_OPTIONS}
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}
...

Ahora deberíamos poder iniciar el demonio Keepalived y reanudar la configuración como se indicó anteriormente.

Atlantic.Net

Atlantic.net ofrece alojamiento de VPS, así como servicios de alojamiento de servidores administrados, que incluyen una capa de servicios administrados esenciales para el negocio en sus paquetes de alojamiento. Contáctenos hoy para obtener más información.


Linux
  1. Cómo instalar Lighttpd con PHP5 FastCGI y MySQL en Fedora 16

  2. Cómo instalar Nginx con PHP-FPM y MySQL en Fedora 16 “Verne”

  3. Cómo instalar Nginx con PHP5 y MySQL en Ubuntu 11.10

  4. Cómo instalar Lighttpd con PHP5 y MySQL en Ubuntu 11.04

  5. Cómo configurar LogAnalyzer con Rsyslog y MySQL

Cómo instalar Lighttpd con PHP-FPM 7 y MySQL 5.7 en Ubuntu 18.04 LTS

Cómo instalar Lighttpd con PHP-FPM y MySQL en Ubuntu 20.04 LTS

Cómo configurar Percona Cluster con HAproxy Loadbalancer en CentOS 7

Cómo construir un clúster activo-activo-activo con RHEL 8 y Percona MySQL

Cómo implementar una aplicación PHP con Nginx y MySQL usando Docker y Docker Compose

Cómo instalar y configurar WordPress con Ansible