instalación keepalived
Consulte aquí la configuración de doble maestro de MySQL: https://tongyao.blog.csdn.net/article/details/132016200?spm=1001.2014.3001.5502
Los pasos de instalación para los dos servidores 128 y 129 son los mismos, pero los archivos de configuración son diferentes, que se presentan a continuación.
1. Instale los paquetes de dependencia relevantes, descargue el paquete de instalación keepalived, descomprima, configure y compile
[root@128 ~]# cd /opt
[root@128 opt]# yum -y install gcc openssl-devel popt-devel psmisc
[root@128 opt]# wget https://www.keepalived.org/software/keepalived-2.2.7.tar.gz
[root@128 opt]# tar -zxvf keepalived-2.2.7.tar.gz
[root@128 opt]# cd keepalived-2.2.7
[root@128 keepalived-2.2.7]# ./configure --prefix=/opt/keepalived-2.2.7
[root@128 keepalived-2.2.7]# make && make install
2. Copie el archivo al directorio correspondiente.
[root@128 keepalived-2.2.7]# mkdir /etc/keepalived
[root@128 keepalived-2.2.7]# cp keepalived/etc/keepalived/keepalived.conf.sample /etc/keepalived/keepalived.conf
[root@128 keepalived-2.2.7]# cp keepalived/etc/init.d/keepalived /etc/init.d/
[root@128 keepalived-2.2.7]# cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@128 keepalived-2.2.7]# cp bin/keepalived /usr/sbin/
3. Cree un nuevo archivo /etc/keepalived/shutdown.sh con el siguiente contenido:
#!/bin/bash
#该脚本是在mysql服务出现异常时,将keepalived应用停止,从而使虚拟vip主机自动连接到另一台mysql上
killall keepalived
Haga cumplir la autorización; de lo contrario, keepalived no se cerrará cuando ocurra una excepción de MySQL:
chmod 777 /etc/keepalived/shutdown.sh
4. Utilice el comando ifconfig para verificar el nombre de la tarjeta de red. El nombre de la tarjeta de red local es ens33.
5. Modifique el archivo de configuración 128 server/etc/keepalived/keepalived.conf de la siguiente manera:
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_MASTER
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
#interface为刚才查到的本机网卡名称
interface ens33
#同一网段中同一组virtual_router_id值相同。不同组virtual_router_id值唯一。
#如server-1、server-2为一组,virtual_router_id=51
#server-3、server-4为一组,则virtual_router_id不能为51
virtual_router_id 51
#字数越大,优先级越高,master必须大于backup
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#该ip为虚拟出来的vip地址
192.168.222.130
}
}
#配置virtual_server ip为上面配置的虚拟vip地址 端口为mysql的端口
virtual_server 192.168.222.130 3306 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
#real_server 该配置为实际物理机ip地址 以及实际物理机mysql端口
real_server 192.168.222.128 3306 {
#当该ip 端口连接异常时,执行该脚本
notify_down /etc/keepalived/shutdown.sh
TCP_CHECK {
#实际物理机ip地址
connect_ip 192.168.222.128
#实际物理机port端口
connect_port 3306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
6. Modifique el archivo de configuración 129 server/etc/keepalived/keepalived.conf. La diferencia con la configuración de 128 son las dos configuraciones de real_server y connect_ip. Es necesario configurar la IP del host real correspondiente. Los detalles son los siguientes:
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_MASTER
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
#interface为刚才查到的本机网卡名称
interface ens33
#同一网段中同一组virtual_router_id值相同。不同组virtual_router_id值唯一。
#如server-1、server-2为一组,virtual_router_id=51
#server-3、server-4为一组,则virtual_router_id不能为51
virtual_router_id 51
#字数越大,优先级越高,master必须大于backup
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#该ip为虚拟出来的vip地址
192.168.222.130
}
}
#配置virtual_server ip为上面配置的虚拟vip地址 端口为mysql的端口
virtual_server 192.168.222.130 3306 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
#real_server 该配置为实际物理机ip地址 以及实际物理机mysql端口
real_server 192.168.222.129 3306 {
#当该ip 端口连接异常时,执行该脚本
notify_down /etc/keepalived/shutdown.sh
TCP_CHECK {
#实际物理机ip地址
connect_ip 192.168.222.129
#实际物理机port端口
connect_port 3306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
Para una configuración detallada, consulte "Explicación detallada de la instalación y configuración de Keepalived".
7. Agregue los servidores 128 y 129 keepalived para que se inicien automáticamente en el arranque e inicien el servicio.
[root@128 keepalived-2.2.7]# systemctl enable keepalived
[root@128 keepalived-2.2.7]# systemctl start keepalived
8. Después del inicio, si el estado de keepalived es: activo (en ejecución), es normal.
9. Después del inicio, es equivalente a virtualizar un VIP 192.168.222.130. Puede usar la herramienta de conexión remota para conectarse al servidor. Después de conectarse, use ifconfig para verificar que el servidor físico real utilizado por el VIP virtual es el servidor 129. .
10. Detenga la aplicación keepalived del servidor 129 y verifique nuevamente el servicio 130 ifconfig. Puede ver que el servidor 130 deriva automáticamente la IP de la máquina física al servidor 128. En este punto, se completa la implementación de keepalived
.
prueba general de alta disponibilidad mysql dual master dual active + keepalived
1. Primero inicie todas las aplicaciones mysql y keepalived en los dos servidores 128 y 129, y luego use la herramienta de conexión mysql para conectarse al servidor 192.168.222.130 virtualizado por keepalived.
2. Inserte id = 3, nombre = 'wangwu' en la tabla t_test de la biblioteca test_db de la base de datos 130
3. En este momento, puede ver las bases de datos 128 y 129 y los datos se han sincronizado.
4. Verifique que la máquina física real utilizada por ifconfig del servidor 130 sea 128, de modo que el servidor mysql de 128 sea la base de datos principal.
5. En este momento, detenga manualmente el servidor mysql 128. Keepalived detecta que la conexión del puerto de servicio 3306 falla y ejecutará el script /etc/keepalived/shutdown.sh para finalizar la aplicación keepalived del servidor 128.
6. En este momento, conéctese nuevamente al servicio 130, verifique ifconfig y descubra que la máquina física realmente se ha transferido del servidor 128 al servidor 129.
7. Luego use la herramienta de conexión mysql para conectarse al mysql de 130, inserte un dato id = 4, nombre = 'zhaoliu' y pruebe si los datos están almacenados en el mysql del servidor 129.
8. Verifique los datos 129 del servidor mysql. Los datos se han sincronizado, lo que indica que keepalived ha establecido con éxito una alta disponibilidad. Cuando ocurre un problema con el 128 servidor mysql, keepalived desvía automáticamente la IP al servidor 129 de la máquina física, de modo que el 129 El servidor mysql sirve como base de datos principal.
9. En este momento, inicie el servidor 128 mysql y las aplicaciones keepalived.
10. Verifique los datos de la tabla t_test de la base de datos 128. Los datos se han sincronizado correctamente.
11. Si la deriva falla, puede deberse a la duplicación de virtual_router_id en el mismo segmento de red. Comando ejecutable para comprobar si se utilizan otras IP
[root@128 keepalived-2.2.7]# tcpdump -i 网卡名 vrrp -n |grep virtual_router_id值
#例如:
[root@128 keepalived-2.2.7]# tcpdump -i eno16777736 vrrp -n |grep 51
En este punto, se completa la implementación y prueba de alta disponibilidad de mysql dual-master dual-active + keepalived.
Referencia del artículo: https://blog.csdn.net/a360284634/article/details/89892028 , con ligeras modificaciones.
Algunos otros detalles de configuración: https://www.cnblogs.com/cyleon/p/10338822.html