keepalived是如何實現MySQL高可用的?

2021-09-23 09:57:42 字數 1691 閱讀 4831

script "/opt/dtstack/dtagent/agent/mysqlha_check_alive.py 3306"

interval 11 # check every 2 seconds

fall 3 # require 2 failures for ko

rise 3 # require 2 successes for ok

timeout 11}

/opt/dtstack/dtagent/agent/mysqlha_check_alive.py 3306這條命令來判斷的,就是判斷系統3306埠是否存在,如果你的mysql是別的埠,那麼就需要作下更改,指令碼是一大神寫的,就不貼出來了。

state master

inte***ce eth0 #檢測eth0

garp_master_delay 5

virtual_router_id 231 #路由組

priority 251 #權重

advert_int 1

再來看第二部分,這一部分主要決定的你這台機器上的3306埠是否是主庫,而且這台機器的外網是不是eth0網絡卡上。

virtual_router_id這個引數主庫跟備庫必須要一樣,這樣告知keepalived他需要看到是那乙個路由組的機器。

priority權重約大,那麼主庫的方向就越往哪台機器上偏。

auth_type pass

auth_pass pass3306

} virtual_ipaddress

track_script

然後看第三部分,這一部分就是實現2變1的地方,起乙個vip到eth0網絡卡上,當某台資料庫為主庫的時候,那麼這個vip就會票到這個臺機器的eth0網絡卡上。

[root@iz25u0bag2mz ~]service keepalived start

使用指令碼測試是否成功

[root@iz25u0bag2mz ~]/opt/dtstack/dtagent/agent/mysqlha_check_alive.py 3306

check_read

check_read:

然後我們檢視一下主庫的ip上是否飄著我們的vip

1: lo: mtu 16436 qdisc noqueue state unknown

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eth0:

mtu 1500 qdisc pfifo_fast state up qlen 1000

link/ether fa:16:3e:71:75:2f brd ff:ff:ff:ff:ff:ff

inet 192.168.40.32/24 brd 192.168.40.255 scope global eth0

inet 192.168.40.231/24 scope global secondary eth0

inet6 fe80::f816:3eff:fe71:752f/64 scope link

valid_lft forever preferred_lft forever

Keepalived 實現高可用

對於主負載均衡伺服器,修改配置檔案 vim etc keepalived keepalived.conf configuration file for keepalived global defs vrrp instance vi 1 virtual ipaddress 備用負載均衡伺服器 vim ...

keepalived實現高可用

一.keepalived是什麼 keepalived最初是為lvs負載均衡設計的,用於監控lvs集群系統中的各個節點的服務狀態。後來又加入了基於vrrp的高可用功能,所以也可以作為nginx,mysql等服務的高可用解決方案使用。vrrp virtual router redundancy prot...

keepalived實現主備切換

wget tar zxvf keepalived 1.2.18 tar.gz c usr local yum install y openssl openssl devel cd keepalived 1.2.18 configure prefix usr local keepalived make...