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...