Cómo implementar un clúster de tres puertas de enlace independientes a través de lvs keepalived ppache2 en el servidor ubuntu 14.10
Introducción a LVS y keepalived:
1. El objetivo del diseño de keepalived es crear un clúster de equilibrio de carga LVS de alta disponibilidad. Puede llamar a la herramienta ipvsadm para crear un clúster virtual. servidores y administrar grupos de servidores, no solo para copias de seguridad en caliente de dos máquinas.
Es más simple y práctico construir un clúster LVS usando keepalived. Sus principales ventajas incluyen:
Proporciona conmutación en espera activa para el programador de carga LVS para mejorar la disponibilidad;
Realice comprobaciones de estado en los nodos del grupo de servidores, elimine automáticamente los nodos fallidos y vuelva a agregarlos cuando se recuperen.
2. En la estructura del clúster LVS basada en LVS Keepalived, hay al menos dos programadores de carga en espera activa y más de dos servidores de nodo. En este ejemplo, agregaremos un programador de carga esclavo basado en el clúster LVS en modo DR y usaremos Keepalived para implementar una copia de seguridad en caliente del programador maestro y del programador esclavo, construyendo así un sistema con capacidades de equilibrio de carga y alta disponibilidad. sitio web.
3. Clúster LVS creado por LVS Keepalived, la carga de LVS equilibra las solicitudes de los usuarios al servidor Tomcat back-end. La función de Keepalived es detectar el estado del servidor del sitio web si falla o falla. Para funcionar, Keepalived detectará el servidor del sitio web defectuoso y lo eliminará del sistema. Cuando el servidor web funciona correctamente, Keepalived agregará automáticamente el servidor web al grupo de servidores. Todo este trabajo se realiza automáticamente sin intervención manual. Solo necesita reparar manualmente el servidor web defectuoso.
Introducción a Keepalived
Qué es Keepalived: Keepalived puede lograr alta disponibilidad o respaldo en caliente de servicios para evitar puntos únicos de falla. El núcleo de Keepalived es el protocolo VRRP y VRRP; protocolo principalmente Realice redundancia en el enrutador o conmutador de tres capas; Keepalived utiliza el protocolo VRRP para lograr alta disponibilidad. Echemos un vistazo al diagrama esquemático de Keepalived:
Arquitectura de clúster de equilibrio de carga de alta disponibilidad LVS Keepalived; experimento
p>Después de iniciar Keepalived, habrá tres procesos:
Proceso principal: gestión de memoria, gestión de procesos secundarios
Proceso secundario: Proceso secundario: Proceso hijo VRRP
Proceso hijo: proceso hijo Healthchecker
De la imagen de arriba:
Ambos procesos hijos son monitoreados por el sistema WatchDog, y cada uno de los dos Los procesos secundarios tienen su propia complejidad. La complejidad del subproceso de verificación de estado es verificar el estado de los servidores respectivos, como HTTP, LVS, etc. Si el subproceso de verificación de estado detecta que el servicio en MASTER no está disponible, notificará al VRRP. subproceso en la máquina local para su eliminación Notificar, eliminar la IP virtual y convertirla al estado BACKUP;
Diagrama de arquitectura experimental:
Equilibrio de carga de alta disponibilidad LVS Keepalived. experimento de arquitectura de clúster
1 lt; BRgt;
Proceso experimental:
Requisitos previos de construcción de clúster de alta disponibilidad:
1. Los nodos proxy y proxy2 deben sincronizarse
Se recomienda utilizar el protocolo ntp para la sincronización;
Blog de referencia:
Blog de referencia:
Esta es la primera vez que utilizamos el clúster LVS Keepalived.
3088108/1598314
2. Los nodos deben comunicarse a través de nombres de host;
Se recomienda utilizar el archivo de hosts;
El nombre utilizado en la comunicación debe ser el igual que " uname -n "El nombre que se muestra en el comando es consistente
[root@proxy ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4 .localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.0.1 server.magelinux.com servidor
172.16 .31.52 proxy .stu31.com proxy
172.16.31.53 proxy2.stu31.com proxy2
172.16.31.50 tom1.stu31.com tom1
172.16.31.51 tom2.stu31.com tom2
3. Los nodos pueden comunicarse según claves ssh;
Agente de nodo:
# ssh-keygen -t rsa -P " " p>
# ssh-copy-id -i .ssh/id_rsa.pub proxy2
nodo proxy2:
# ssh-keygen -t rsa -P " " p>
# ssh-copy-id -i .ssh/id_rsa.pub proxy
Prueba de comunicación sin llave ssh:
123 [root@proxy ~]# fecha; ssh proxy2 fecha
Sábado 17 de enero 15:29:26 CST 2015
Sábado 17 de enero 15:29:26 CST 2015
I. instalar LVS keepalived
1. Utilice yum install
# yum install -y keepalived ipvsadm
Tenga en cuenta que la herramienta Ipvsadm se instala aquí principalmente para ver las reglas de lvs. para ser utilizado y no es necesario instalarlo. La herramienta ipvsadm también puede configurar reglas con éxito, pero no es conveniente;
2.Modificar el archivo de configuración keepalived
archivo keepalived. ruta/etc/keepalived/keepalived.conf
Modificar el archivo de configuración principal del proxy del nodo maestro
[root@proxy ~]# vim /etc/keepalived/keepalived.conf
! archivo de configuración de keepalived
global_defs {
notification_email { #Establecer dirección de correo electrónico de notificación de alerta, puede configurar varias direcciones
root@localhost
}
notificación_correo electrónico_de admin@stu
31.com #Establecer la dirección para enviar correos electrónicos
smtp_server 127.0.0.1 #Establecer la dirección del servidor SMTP, que debe existir
smtp_connect_timeout 30 #Establecer el tiempo de espera para conectarse al servidor SMTP
router_id LVS_DEVEL # La identificación del servidor Keepalived en ejecución, la información que se muestra en el encabezado del correo electrónico al enviar un correo electrónico
}
vrrp_instance VI_1 { #Definir VRRP instancia, nombre de instancia personalizado<
estado MASTER #Especifique la función de Keepalived, MASTER es el servidor principal y BACKUP es el servidor de respaldo
interfaz eth0 #Especifique la interfaz a monitorear por HA
virtual_router_id 51 #Identificador de ruta virtual, que es un número (1-255, en una instancia VRRP, los identificadores del servidor primario y del servidor de respaldo deben ser los mismos
<). p> prioridad 100 #Prioridad, cuanto mayor sea el número, mayor será la prioridad. En un caso, la prioridad del servidor principal debe ser mayor que la del servidor de respaldoadvert_int 1 #Establezca el intervalo de tiempo. para verificar la sincronización entre el servidor principal y el servidor de respaldo (con Segundos)
Autenticación { #Establecer tipo de autenticación y contraseña
auth_type PASS #Hay dos tipos de autenticación {PASS|HA} .
auth_pass Oracle #Establece la contraseña de autenticación En una instancia, la contraseña principal y la contraseña de respaldo son consistentes
}
virtual_ ipaddress { #Define el virtual. IP Puede haber varias direcciones, una por línea
172.16.31.188
}
}
virtual_server 172.16.31.188 { #Settings Servidor virtual, debe especificar la IP virtual y el puerto de servicio, separados por espacios<
delay_loop 6 #Establecer el tiempo de verificación de estado, en segundos
lb_algo rr #Establecer la altura de carga algoritmo, rr es Polling
lb_kind DR #Establece el mecanismo de equilibrio de carga de LVS, que puede ser {NAT|TUN|DR}
nat_mask 255.255.0.0 #Establece la máscara p>
persistence_timeout 50 #Tiempo de retención de la sesión (en segundos) esta opción es muy útil para páginas web dinámicas y proporciona una buena solución para disfrutar de la sesión en sistemas de clúster
protocolo TCP #; Especifique el tipo de protocolo de reenvío. {TCP|UDP} se puede configurar al mismo tiempo.
real_server 172.16.31.50 80 { #Nodo del servidor backend, debe especificar la IP y el puerto de Real_server, separados por espacios
peso 1 #Configurar el peso del nodo de servicio, cuanto mayor sea el número, mayor será el peso Cuanto mayor sea el valor
HTTP_GET { #Establezca el método de detección de nodos de servicio en tiempo real.
GET { # Establecer el método para detectar Realserver como canal forzado
17 de enero 15:57:42 proxy Keepalived_vrrp[15025]: registrar canal compartido ARP gratuito
17 de enero 15:57 :42 proxy Keepalived_healthcheckers[15024]: Netlink reflector informa IP 172.16.31.52 agregado
17 de enero 15:57:42 proxy Keepalived_healthcheckers[15024]: Healthcheckers[15024]: Netlink reflector informa IP fe80::a00: 27ff: fe3b: 2360 agregado
17 de enero 15:57:42 proxy Keepalived_healthcheckers[15024]: registrar el reflector de red del kernel
17 de enero 15:57:42 proxy Keepalived_healthcheckers[15024] : Registrar el canal de comando netlink del kernel
17 de enero 15:57:42 proxy Keepalived_vrrp[15025]: Abriendo el archivo '/etc/keepalived/keepalived.conf'.
17 de enero 15:57:42 proxy Keepalived_vrrp[15025]: Configuración en uso: 63202 Bytes
17 de enero 15:57:42 proxy Keepalived_vrrp[15025]. Usando el reflector de cadena de red del kernel LinkWatch...
17 de enero 15:57:42 proxy Keepalived_healthcheckers[15024]: Abriendo archivo '/etc/keepalived/keepalived.conf'.
17 de enero 15:57:42 proxy Keepalived_healthcheckers[15024]: Configuración en uso: 16989 Bytes
17 de enero 15:57:42 proxy Keepalived_vrrp[15025]: VRRP sockpool:[ ifindex(2), proto(112), unicast(0), fd(10, 11)]
17 de enero 15:57:42 proxy Keepalived_healthcheckers[15024]: utiliza el reflector de cadena de red del kernel LinkWatch. .
17 de enero 15:57:42 proxy Keepalived_healthcheckers[15024]: Activar comprobadores de estado para el servicio[172.16.31.50]:8080
17 de enero 15:57:42 proxy Keepalived_healthcheckers[ 15024]: Activando comprobadores de estado para el servicio [172.16.31.51]: 8080
17 de enero 15:57:43 proxy Keepalived_vrrp [15025]: VRRP_Instance(VI_1) Transición a ESTADO MAESTRO
17 de enero 15:57:44 proxy Keepalived_vrrp[15025]: VRRP_Instance(VI_1) ingresando al ESTADO MAESTRO
17 de enero 15:57:44 proxy Keepalived_vrrp[15025]: VRRP_Instance(VI_1) configurando protocolo VIP. p>
17 de enero 15:57:44 proxy Keepalived_healthcheckers[15024]: Netlink reflector informa que se ha agregado IP 172.16.31.188
17 de enero 15:57:44 proxy Keepalived_vrrp[15025] :VRRP_Instance (VI_1) configuración del protocolo VIPs.Instance(VI_1) Envío de ARP gratuitos en eth0 para 172.16.31.188
Registros del nodo BACKUP:
[root@proxy2 keepalived]# tail - f / var/log/messages
17 de enero 15:57:42 proxy2 Keepalived[15005]: Iniciando Keepalived v1.2.13 (15/10, 2014)
17 de enero 15: 57: 42 proxy2 Keepalived[15007].
Inicie el subproceso Healthcheck, pid=15009
17 de enero 15:57:42 proxy2 Keepalived[15007]: Inicie el subproceso VRRP, pid=15010
17 de enero 15 :57:42 proxy2 Keepalived[15007]: Inicia el subproceso VRRP, pid=15010
17 de enero 15:57:42 proxy2 Keepalived_vrrp[15010]: Netlink reflector informa que se ha agregado la IP 172.16.31.53 p>
17 de enero 15:57:42 proxy2 Keepalived_vrrp[15007]: Iniciando proceso hijo VRRP, pid=15010
17 de enero 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Informes del reflector Netlink se ha agregado esa IP 172.16.31.53
17 de enero 15:57:42 proxy2 Keepalived_vrrp[15010]: Netlink reflector informa IP fe80::a00:27ff:fe6e:bd28 agregada
17 de enero 15:57:42 proxy2 Keepalived_vrrp[15010]: registrando el reflector de enlace de red del Kernel
17 de enero 15:57:42 proxy2 Keepalived_vrrp[15010]: registrando el reflector de enlace de red del Kernel
17 de enero 15:57: 42 proxy2 Keepalived_vrrp[15010]: Registrando el canal de comando Kernel netlink
17 de enero 15:57:42 proxy2 Keepalived_vrrp[15010]. Registrando el canal compartido ARP gratuito
17 de enero. 15:57: 42 proxy2 Keepalived_healthcheckers[15009]: Netlink reflector informa IP agregada fe80::a00:27ff:fe6e:bd28
17 de enero 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Registro del reflector de netlink del kernel
17 de enero 15:57.42 proxy2 Keepalived_healthcheckers[15009]: Registrando el canal de comando Kernel netlink
17 de enero 15:57:42 proxy2 Keepalived_vrrp[15010]. keepalived/keepalived.conf'.
17 de enero 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Abriendo archivo '/etc/keepalived/keepalived.conf'.
17 de enero 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Configuración en uso: 16991 Bytes
17 de enero 15:57:42 proxy2 Keepalived_vrrp[15010]: Configuración en uso : 63204 Bytes
17 de enero 15:57:42 proxy2 Keepalived_vrrp[15010]: Usando el reflector de cadena de red del kernel LinkWatch...
17 de enero 15:57:42 proxy2 Keepalived_vrrp[ 15010 ]: VRRP_Instance(VI_1) Ingresando ESTADO DE RESPALDO
17 de enero 15:57:42 proxy2 Keepalived_vrrp[ 15010]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd ( 10, 11)]
17 de enero 15:57:42 proxy2 Keepalived_healthcheckers[15009]: Usando el reflector de cadena de red del kernel LinkWatch...
17 de enero 15:57:42 proxy2 Keepalived_healthcheckers [15009]: Activando comprobadores de estado para el servicio [172.16.31.50]: 8080
17 de enero 15:57:4242 proxy2 Keepalived_healthcheckers[15009]: Activando estado para el servicio [172.16.31.51]: 8080 Procedimiento de verificación
6. Habilite la función de reenvío de enrutamiento entre el nodo principal y el servidor del nodo de respaldo
#sed -i 's/net.ipv4.ip_forward = 0/net.ip_forward =. 1/g' /etc/sysctl.conf