Introducción al clúster, introducción keepalived, uso del clúster de alta disponibilidad de configuración keepalived

Introducción al grupo


Divididos en dos categorías según las funciones: alta disponibilidad y equilibrio de carga.  

Los clústeres de alta disponibilidad suelen constar de dos servidores, uno para el trabajo y el otro para la redundancia. Cuando la máquina que proporciona el servicio deja de funcionar, la redundancia se hará cargo y seguirá proporcionando servicios para  

lograr altos Los software de código abierto disponibles son: 

clústeres de equilibrio de carga de latido y mantenimiento  , que requieren un servidor como distribuidor, que se encarga de distribuir las solicitudes de los usuarios al servidor back-end para su procesamiento. distribuidor, brinda servicios a los usuarios Servidores El número de estos servidores es al menos 2.  

El software de código abierto para balanceo de carga incluye LVS, keepalived, haproxy, nginx, y los comerciales incluyen F5 y Netscaler.


Introducción de Keepalive (clúster HA) 

HA es de alta disponibilidad, también conocida como espera en caliente de máquina dual. Se utiliza para servicios críticos. El simple entendimiento es que hay dos máquinas A y B. Normalmente, A proporciona servicios, B está en en espera e inactiva, y cuando A está inactivo O el servicio está inactivo, cambiará a la máquina B para continuar brindando el servicio. 

Aquí usamos keepalived para lograr clústeres de alta disponibilidad, porque heartbeat tiene algunos problemas en centos6, que afectan el efecto experimental   

Keepalived usa VRRP (Virtual Router Redundancy Protocl) para lograr alta disponibilidad. 

En este protocolo, varios enrutadores con la misma función se formarán en un grupo. Habrá 1 rol de maestro y N (N> = 1) roles de respaldo en este grupo. 

El maestro enviará paquetes de datos del protocolo VRRP a cada respaldo en forma de multidifusión. Cuando el respaldo no reciba los paquetes de datos VRRP enviados por el maestro, pensará que el maestro está caído. En este momento, es necesario decidir quién se convierte en el nuevo mater según la prioridad de cada respaldo. 

Keepalived tiene tres módulos, core, check y vrrp. El módulo principal es el núcleo de keepalived, responsable de la puesta en marcha y mantenimiento del proceso principal, y la carga y análisis de archivos de configuración global. El módulo de verificación es responsable de las comprobaciones de estado y el módulo vrrp es para implementar el protocolo VRRP.



Configurar un clúster de alta disponibilidad con keepalived
Es necesario que haya un servicio que no esté activado para lograr una alta disponibilidad, y nginx se utiliza para reemplazar el servicio.
Prepare dos máquinas 130 y 132, 130 como maestra y 132 como copia de seguridad. Ambas máquinas ejecutan yum install -y keepalived. Ambas máquinas tienen nginx instalado, y nginx se ha compilado e instalado en 130, y se requiere yum para instalar nginx en 132: yum install -y nginx


Establecer vip en 100
keepalived en 130 #vim /etc/keepalived/keepalived.conf edite el archivo de configuración, adquisición de contenido de https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf  
Primero, borre el contenido del archivo de configuración original, use la tecla de acceso directo>! $, y luego coloque el archivo copiado en # / etc / keepalived / keepalived.conf


global_defs {                  
notification_email {// No necesitas definir [email protected] 
} 
notification_email_from [email protected] 
smtp_server 127.0.0.1 
smtp_connect_timeout 30router_id LVS_DEVEL 
} 
vrrp_script chk_nginx {// Verifica si el servicio es normal script "/ usr .sbin / check "// ruta del script de definición. 3} intervalo 
vrrp_instance VI_1 { 
State MASTERinterface ens33virtual_router_id // master 51 es coherente con la prioridad de id 100 // {1 peso de autenticación 
advert_int AUTH_TYPE el PASS 
AUTH_PASS aminglinux> COM 
} 
virtual_ipaddress 192.168.37.100 { 
} 
track_script { 
chk_nginx 
} 
}
#vim /usr/local/sbin/check_ng.sh130 Edite el script de monitoreo, el contenido se obtiene de https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_check_ng. sh
#! / bin / bash # Variable de tiempo, utilizada para registrar registros d = `date --date today +% Y% m% d_% H:% M:% S` # Calcula el número de procesos nginx n =` ps - C nginx --no-header | wc -l` # Si el proceso es 0, inicie nginx y verifique el número de procesos nginx nuevamente. # Si todavía es 0, significa que nginx no se puede iniciar, y keepalivedif debe ser cerrado en este momento [$ n -eq "0"]; luego / etc / init.d / nginx start 
n2 = `ps -C nginx --no-header | wc -l`if [$ n2 -eq" 0 " ]; thenecho "$ d nginx abajo, keepalived se detendrá" >> /var/log/check_ng.log 
systemctl stop keepalivedfifi
#chmod 755 /usr/local/sbin/check_ng.sh // Dar permiso al script 755
#systemctl start keepalived // Iniciar el servicio keepalived en el maestro
#Vim /etc/keepalived/keepalived.conf Edite el archivo de configuración en 132, el contenido se obtiene de https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_keepalived. conf
global_defs { 
Notifications_email { 
[email protected] 
} 
notification_email_from [email protected] 
smtp_server 127.0.0.1 
smtp_connect_timeout 30router_id LVS_DEVEL 
} 
vrrp_script chk_nginx { 
script "/ 
usr/ 
local/sbin/check_ngnce_instant. 90 // 权 重 advert_int 1authentication { 
auth_type PASS 
auth_pass aminglinux> com 
} 
virtual_ipaddress {192.168.37.100 
} 
track_script { 
chk_nginx 
} 
}
Edite el script de monitoreo en 132, el contenido se obtiene de https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_check_ng.sh
#Variable de tiempo, utilizada para registrar registros d = `fecha --fecha de hoy +% Y% m% d_% H:% M:% S` # Calcular el número de procesos nginx n =` ps -C nginx --no- header | wc -l` # Si el proceso es 0, inicie nginx y verifique el número de procesos nginx nuevamente. # Si todavía es 0, significa que nginx no se puede iniciar y keepalivedif debe cerrarse en este momento. [ $ n -eq "0"]; thensystemctl start nginx 
n2 = `ps -C nginx --no-header | wc -l`if [$ n2 -eq" 0 "]; thenecho" $ d nginx abajo, keepalived se detendrá ">> /var/log/check_ng.log 
systemctl detener keepalivedfifi
#chmod 755 /usr/local/sbin/check_ng.sh // Dar permiso al script 755
Inicie el servicio en 132 #systemctl start keepalived
Antes de la simulación, debe apagar el firewall y selinux, 
simular el tiempo de inactividad en el entorno de producción y probar la alta disponibilidad: la 
mejor manera es apagar el servicio keepalived en el maestro para probar la alta disponibilidad.

Supongo que te gusta

Origin blog.csdn.net/boy_hxm/article/details/79385295
Recomendado
Clasificación