記一次keepalived和VIP導致的故障


起因

nginx服務器采用的keepalived+vip實現的雙活,最近由於一台服務器有問題,更換了一台nginx:

操作:

  • 停止有問題服務器keepalived和nginx
  • 新服務器部署keepalived和nginx

更換后一切正常,但是過了幾個小時,出現大面積的不能訪問。

keepalived 升級

檢查nginx正常,重啟keepalived后OK,懷疑可能是keepalived的問題,於是編譯安裝最新的keepalived:

curl --progress http://keepalived.org/software/keepalived-1.2.15.tar.gz | tar xz
cd keepalived-1.2.15
./configure --prefix=/usr/local/keepalived-1.2.15
make
sudo make install

升級后,一切正常,。

再出故障,最終定位

一晚過去無異常,第二天又出現部分域名不能訪問,檢查服務一切正常,因此懷疑是VIP導致的問題,檢查之前有問題服務器的ip:

ip addr

果不其然:

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 90:b1:1c:2a:92:e4 brd ff:ff:ff:ff:ff:ff
    inet 172.31.161.42/32 scope global eno1
       valid_lft forever preferred_lft forever
    inet 172.31.161.41/32 scope global eno1
       valid_lft forever preferred_lft forever
    inet 172.31.161.38/24 brd 172.31.161.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet 172.31.161.42/0 scope global eno1::1
       valid_lft forever preferred_lft forever
3: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu

41,42 是我們設置的VIP,竟然還在這個有問題服務器的網卡上,這就導致一個機房內,有2台服務器綁定相同的vip。

解決方案, 通過ip addr delete刪除綁定的vip

ip addr delete 172.31.161.42/32 dev eno1
ip addr delete 172.31.161.41/32 dev eno1
ip addr delete 172.31.161.41/0 dev eno1

順道介紹如何給網卡綁定vip:

ip addr add 172.31.161.41/32 dev eno1

溯源與問題總結

問題的根源在於,keepalived為網卡停止后,keepalived為網卡綁定的VIP並沒有移除,導致多台機器出現同樣的ip。

切記: 停止keepalived,vip不會自動刪除,需要手動清理


作者:Jadepeng
出處:jqpeng的技術記事本--http://www.cnblogs.com/xiaoqi
您的支持是對博主最大的鼓勵,感謝您的認真閱讀。
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM