您好,登錄后才能下訂單哦!
keepalived 1.3.5的常見配置是什么以及常見問題的解決方法,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
[root@mysql01 keepalived] tar -zxvf keepalived-1.3.5.tar.gz
[root@mysql01 keepalived] cd keepalived-1.3.5/
[root@mysql01 keepalived] ./configure --help|grep prefix
[root@mysql01 keepalived] ./configure --prefix=/usr/local/keepalived
[root@mysql01 keepalived] make && make install
[root@mysql01 keepalived] cd /usr/local/keepalived
[root@mysql02 keepalived]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
[root@mysql01 keepalived]# cp etc/sysconfig/keepalived /etc/sysconfig/
如果是Linux 6還需要拷貝下面文件:
[root@mysql01 keepalived] cp /tmp/keepalived-1.3.2/keepalived/etc/init.d/keepalived /etc/rc.d/init.d/
vi /usr/lib/systemd/system/keepalived.service
# 確認下面兩個變量指向正確的可執行keepalived
EnvironmentFile
ExecStart
vi /etc/sysconfig/keepalived
修改keepalived日志輸出設備為0號設備,并修改系統日志程序0號輸出設備輸出文件,以及添加dump配置文件數據。
vi /etc/keepalived/keepalived.conf
KEEPALIVED_OPTIONS="-D -d -S 0"
# 修改keepalived使用0號日志輸出設備,并單獨輸出日志到指定文件。
vi /etc/rsyslog.conf
local0.* /usr/local/keepalived/log/keepalived.log
# 編輯keepalived配置文件,配置vip以及服務監測,通知腳本等模塊。
vi /etc/keepalived/keepalived.conf
vrrp_script check_run {
script "/etc/keepalived/scripts/keepalived_check_mysql.sh"
interval 30
weight 0
}
vrrp_instance VI_1 {
state BACKUP
nopreempt
interface team0 # 網卡,根據實際情況填寫
virtual_router_id 88 # 主備機器id必須相同,不同vrrp_instance需要不同。
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.204.88 # 虛擬IP
}
track_script {
check_run
}
notify_master /etc/keepalived/scripts/notify_master.sh
}
l Notify scripts
that are run when a vrrp instance or vrrp group
changes state, or a virtual server quorum changes between up and down.
# global script_user and script_group to MASTER transition
notify_master /path/to_master.sh [username [groupname]]
l vrrp tracking scripts
that will cause vrrp instances to go down it
they exit a non-zero exist status, or if a weight is specified will add
or subtract the weight to/from the priority of that vrrp instance.
l nopreempt
A higher priority VRRP instance will normally preempt a lower priority instance
when it comes online. "nopreempt" stops the higher priority machine taking
over the master role, and allows the lower priority machine to remain as
master.
NOTE: For this to work, the initial state must not be MASTER.
啟用keepalived服務,啟動keepalived服務:
systemctl enable keepalived
systemctl start keepalived
l 現象
[root@mysql01 ~]# systemctl status keepalived.service
May 7 17:12:51 mysql01 Keepalived[5467]: Configuration file '/etc/keepalived/keepalived.conf' is not a regular non-executable file
l 原因
/etc/keepalived/keepalived.conf文件權限不是664。
l 解決
修改/etc/keepalived/keepalived.conf權限為664即可。
l 現象
[root@mysql01 ~]# systemctl status keepalived.service
May 07 17:41:14 mysql01 Keepalived_vrrp[9448]: (VI_1): Cannot find an IP address to use for interface enp0s9
l 原因
/etc/keepalived/keepalived.conf配置文件中interface模塊,網卡上沒有IP地址,
l 解決
可以通過添加臨時IP來解決,或者在keepalived版本2.0.5之后添加dynamic_interfaces
[root@mysql01 ~]# ifconfig eth2 172.16.20.101/16 up
eth2配置IP,因為如果接口沒有IP,keepalived將以FAULT狀態啟動,keepalived 2.0.5以上版本,只需將dynamic_interfaces添加到global_defs即可
l 現象
[root@mysql01 ~]# tail -f /var/log/messages
May 7 11:07:15 mysql01 Keepalived[8755]: daemon is already running
May 7 11:07:15 mysql01 systemd: PID file /usr/local/var/run/keepalived.pid not readable (yet?) after start.
May 7 11:08:45 mysql01 systemd: keepalived.service start operation timed out. Terminating.
May 7 11:08:45 mysql01 systemd: Failed to start LVS and VRRP High Availability Monitor.
May 7 11:08:45 mysql01 systemd: Unit keepalived.service entered failed state.
May 7 11:08:45 mysql01 systemd: keepalived.service failed.
l 原因
NetworkManager自動管理網絡,keepalived使用虛擬IP無法綁定到指定接口,日志中報錯又無法定位原因,提前關閉NetworkManager,手工設置網卡ip地址即可。
l 解決
[root@mysql01 ~]# systemctl disable NetworkManager
[root@mysql01 ~]# systemctl stop NetworkManager
l 現象
[mysql@mysql01 65mysql]$ sudo systemctl status keepalived
May 07 19:06:08 mysql01 Keepalived_vrrp[16144]: VRRP_Instance(VI_1) Entering BACKUP STATE
May 07 19:06:08 mysql01 Keepalived_vrrp[16144]: VRRP sockpool: [ifindex(4), proto(112), unicast(0), fd(10,11)]
May 07 19:06:12 mysql01 Keepalived_vrrp[16144]: VRRP_Instance(VI_1) Now in FAULT state
l 原因
/etc/keepalived/keepalived.conf配置文件vrrp_script模塊腳本未檢查,返回總是非0錯誤值,導致keepalived狀態一直無法完成初始化,無法綁定vip。
l 解決
修正腳本錯誤,重啟keepalived。
●現象
[mysql@mysql02 keepalived]$ sudo systemctl status keepalived
keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)
Active: failed (Result: timeout) since Thu 2020-05-07 20:44:08 CST; 14min ago
Process: 31073 ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
Tasks: 6
CGroup: /system.slice/keepalived.service
├─ 2687 /usr/local/keepalived/sbin/keepalived -D -d -S 0
├─ 2688 /bin/bash /etc/keepalived/scripts/keepalived_check_mysql.sh
├─ 2815 sleep 2
├─25921 /usr/local/keepalived/sbin/keepalived -D -d -S 0
├─25922 /usr/local/keepalived/sbin/keepalived -D -d -S 0
└─25923 /usr/local/keepalived/sbin/keepalived -D -d -S 0
May 07 20:42:38 mysql02 systemd[1]: Starting LVS and VRRP High Availability Monitor...
May 07 20:42:38 mysql02 systemd[1]: PID file /var/run/keepalived.pid not readable (yet?) after start.
May 07 20:44:08 mysql02 systemd[1]: keepalived.service start operation timed out. Terminating.
May 07 20:44:08 mysql02 systemd[1]: Failed to start LVS and VRRP High Availability Monitor.
May 07 20:44:08 mysql02 systemd[1]: Unit keepalived.service entered failed state.
May 07 20:44:08 mysql02 systemd[1]: keepalived.service failed.
[mysql@mysql02 keepalived]$ sudo systemctl start keepalived
Job for keepalived.service failed because a timeout was exceeded. See "systemctl status keepalived.service" and "journalctl -xe" for details.
l 原因
原來keepalived程序運行不正常,無法繼續,systemctl restart keepalived已經無法正確重啟keepalived。
l 解決
[mysql@mysql02 ~]$ ps -ef|grep keepalived
kill掉所有keepalived進程,重啟keepalived
[mysql@mysql02 ~]$ sudo systemctl restart keepalived.service
[mysql@mysql02 ~]$ sudo systemctl status keepalived.service
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。