Hyper-v安装Centos7系统与Mariadb10.5互为主从与keepalive高可用 |
发表者:admin分类:数据库2020-12-14 17:40:10 阅读[900] |
Hyper-v安装Centos7系统与Mariadb10.5互为主从与keepalive高可用
MySQL的高可用方案有很多种,双主、MHA、MMM等等,这里只是写下最简单的双主这种高可用方案。
一、配置MySQL互为主从.
系统 | IP | 主机名 | 服务 |
---|---|---|---|
Centos 7.5 | 192.168.137.31 | centos-31 | MariaDB10.5+keepalived 1.3.5 |
Centos 7.5 | 192.168.137.38 | centos-38 | MariaDB10.5+keepalived 1.3.5 |
2,MariaDB10.5 互为主从的配置,参考: https://www.micoder.cc/blog/2324.html ,配置比较简单。
二、配置keepalived高可用
1、安装keepalived
两个节点都需要执行以下命令,以便安装keepalived。
yum -y install keepalived
2、修改主机Centos7-31的keepalived配置文件。我这里配置了三个vip ,配置多少vip并不影响使用。
[root@centos-31 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id mysql-2
vrrp_skip_check_adv_addr
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.137.41/24
192.168.137.42/24
192.168.137.43/24
}
}
virtual_server 192.168.137.41 3306 {
delay_loop 2
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.137.31 3306 {
weight 1
notify_down /etc/keepalived/bin/mysql.sh #检测到real_server的MySQL服务宕机后执行的脚本。
TCP_CHECK {
connect_port 3306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
3,准备指定的脚本
[root@centos-31 keepalived]# pwd
/etc/keepalived
[root@centos-31 keepalived]# mkdir bin
[root@centos-31 keepalived]# vim bin/mysql.sh
#!/bin/bash
pkill keepalived #停止keepalived服务
[root@centos-31 keepalived]# chmod +x bin/mysql.sh #赋予脚本执行权限
[root@centos-31 ~]# systemctl start keepalived #启动keepalived服务
4,确定eth0网卡有虚拟Ip
5,修改主机Centos7-38的keepalived配置文件,只需要修改priority,real_server 三个参数就行。
具体配置文件如下:
[root@centos-38 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id mysql-2
vrrp_skip_check_adv_addr
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.137.41/24
192.168.137.42/24
192.168.137.43/24
}
}
virtual_server 192.168.137.41 3306 {
delay_loop 2
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.137.38 3306 {
weight 1
notify_down /etc/keepalived/bin/mysql.sh #检测到real_server的MySQL服务宕机后执行的脚本。
TCP_CHECK {
connect_port 3306
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
说明:
1)两个keepalived都是配置 BACKUP角色,priority优先级也是一样的值,那么哪个keepalived先启动,那么就会成会master。
即使vip漂移后,原来旧的master恢复正常后,vip也不再漂移。如果两个主机一样环境,建议此种方案。
2)两个keepalived都是配置 BACKUP角色,priority优先级不一样,那么优先级高的,就会成master,即使vip漂移后,
原来的master主机恢复正常后,vip也会漂移回来。两台主机如果配置不一样,建议采用此种方案。
3)vrrp_instance 区域中添加参数: lvs_sync_daemon_interface eth0 ,那么心跳检测运行在eth0网卡上。
4) router_id的值是否一样,未发现有什么区别,当然最好是唯一的,不要一样。
6,配置脚本 mysql.sh,然后启动keepalived服务。
如果VIP 转移到 centos7-38主机,说明,keepalived是配置正常的。测试下IP是否互通。
7,测试主机或mariadb有故障时,vip是否能转移。
8,keepalived的vip会出现master网卡禁用后,vip漂移到slave时,可能会出现无法生成vip,原因在于arp没有更新。
如下面检查arp信息出现的情况。
[root@node2 ~]# ip neigh show
192.168.137.32 dev eth0 FAILED
192.168.137.1 dev eth0 lladdr 00:15:5d:02:c6:04 REACHABLE
172.17.0.2 dev docker0 lladdr 02:42:ac:11:00:02 STALE
可能需要刷新arp后才能正常生成vip信息。
[root@node2 ~]# ip neigh flush dev eth0
9, 添加防火墙规则
因为vrrp使用224.0.0.18
这个组播地址,所以必须添加组播规则或者关闭防火墙,否则会出现脑裂现象。
添加:
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens33 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface ens33 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --reload
查看:
firewall-cmd --direct --get-all-rules ipv4 filter OUTPUT 0 --out-interface ens33 --destination 224.0.0.18 --protocol vrrp -j ACCEPT ipv4 filter INPUT 0 --in-interface ens33 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
转载请标明出处【Hyper-v安装Centos7系统与Mariadb10.5互为主从与keepalive高可用】。
《www.micoder.cc》
虚拟化云计算,系统运维,安全技术服务.
Tags: | [阅读全文...] |
最新评论