精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Keepalived的原理和Web服務高可用實踐

開發 架構
Keepalived軟件起初是專為LVS負載均衡軟件設計的,用來管理并監控LVS集群系統中各個服務節點的狀態,后來又加入了可以實現高可用的VRRP功能。

[[424472]]

溫故而知新,每次學習都有不一樣的收獲,今天就來爬爬keepalived的坑。

一、Keepalived介紹

摘抄自官網的介紹:

Keepalived is a routing software written in C.

The main goal of this project is to provide simple and robust facilities for loadbalancing and high-availability to Linux system and Linux based infrastructures.

項目地址:https://github.com/acassen/keepalived

Keepalived的作用是檢測服務器狀態,如果一臺服務器宕機或者出現其他故障導致當前服務器不可用,keep alived就會檢測到并將故障的服務器從系統中剔除,同時使用備用服務器替代該服務器的工作,當服務器工作正常后Keepalived自動將服務器加入到服務器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的服務器。

Keepalived軟件起初是專為LVS負載均衡軟件設計的,用來管理并監控LVS集群系統中各個服務節點的狀態,后來又加入了可以實現高可用的VRRP功能。因此,Keepalived除了能夠管理LVS軟件外,還可以作為其他服務(例如:Nginx、Haproxy、MySQL等)的高可用解決方案軟件。

Keepalived軟件主要是通過VRRP協議實現高可用功能的。VRRP是Virtual Router RedundancyProtocol(虛擬路由器冗余協議)的縮寫,VRRP出現的目的就是為了解決靜態路由單點故障問題的,它能夠保證當個別節點宕機時,整個網絡可以不間斷地運行。

所以,Keepalived 一方面具有配置管理LVS的功能,同時還具有對LVS下面節點進行健康檢查的功能,另一方面也可實現系統網絡服務的高可用功能。

二、Keepalived的應用場景

管理LVS軟件

基于VRRP實現高可用

健康檢查,故障切換

通過官網的介紹我們可以看到Keepalived提供了兩個重要的功能:loadbalancing和high-availability。最初是專門為LVS負載均衡軟件設計,可以用來管理并監控LVS集群系統中各個服務節點的狀態,后來的版本中又加入了可以實現高可用的VRRP功能。

因此,Keeaplived主要有兩種應用場景,一個是通過配置keepalived結合ipvs做到負載均衡(LVS+Keepalived);另一個是通過自身健康檢查、資源接管等功能做高可用(雙機熱備),實現故障轉移,功能近似于Heartbeat。

目前全球監控的分布式MySQL集群,使用了Keeaplived來實現proxy的雙機熱備功能,所以下面只介紹在高可用場景下的相關知識。

三、Keepalived的工作原理

1.VRRP協議

keepalived是以VRRP協議為實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗余協議,可以認為是實現路由器高可用的協議。

  • VRRP是用來實現路由器冗余的協議。
  • VRRP協議是為了消除在靜態缺省路由環境下路由器單點故障引起的網絡失效而設計的主備模式的協議,使得發生故障而進行設計設備功能切換時可以不影響內外數據通信,不需要再修改內部網絡的網絡參數。
  • VRRP協議需要具有IP備份,優先路由選擇,減少不必要的路由器通信等功能。
  • VRRP協議將兩臺或多臺路由器設備虛擬成一個設備,對外提供虛擬路由器IP(一個或多個)。然而,在路由器組內部,如果實際擁有這個對外IP的路由器如果工作正常的話,就是master,或者是通過算法選舉產生的,MASTER實現針對虛擬路由器IP的各種網絡功能,如ARP請求,ICMP,以及數據的轉發等,其他設備不具有該IP,狀態是BACKUP。除了接收MASTER的VRRP狀態通告信息外,不執行對外的網絡功能,當主機失效時,BACKUP將接管原先MASTER的網絡功能。
  • VRRP協議配置時,需要配置每個路由器的虛擬路由ID(VRID)和優先權值,使用VRID將路由器進行分組,具有相同VRID值的路由器為同一個組,VRID是一個0-255的整整數;同一個組中的路由器通過使用優先權值來選舉MASTER。優先權大者為MASTER,優先權也是一個0-255的正整數。

對應到高可用的場景,實際上就是把路由器換成了服務器或者服務器上的應用:

通常情況下是將兩臺linux服務器組成一個熱備組(master-backup),同一時間熱備組內只有一臺主服務器(master)提供服務,同時master會虛擬出一個共用IP地址(VIP),這個VIP只存在master上并對外提供服務。

如果keepalived檢測到master宕機或服務故障,備服務器(backup)會自動接管VIP成為master,keepalived并將master從熱備組移除,當master恢復后,會自動加入到熱備組,默認再搶占成為master,起到故障轉移功能。

2.核心組件

keepalived是模塊化設計,不同模塊負責不同的功能,主要有三個模塊,分別是core、check和VRRP,其中:

  • core模塊:為keepalived的核心組件,負責主進程的啟動、維護以及全局配置文件的加載和解析;
  • check:負責健康檢查,包括常見的各種檢查方式,這里的配置決定了工作在哪個層;
  • VRRP模塊:是來實現VRRP協議的。

此外還有:

  • system call:系統調用
  • watch dog:監控check和vrrp進程的看管者
  • libipfwc:iptables(ipchains)庫,配置LVS會用到
  • libipvs*:配置LVS會用到

3.分層工作

keepalived做負載均衡時工作在TCP/IP協議的3/4/5層,做高可用時工作在OSI七層協議模型的3/4/7層,基本上是一樣的,叫法不同而已

分層 功能 相關協議
應用層 網絡服務和最終用戶的一個接口 TFTP,HTTP,SNMP,DNS,FTP,SMTP,TELNET
表示層 數據的表示、安全、壓縮 無協議
會話層 會話的建立、管理、中止 無協議
傳輸層 定義傳輸數據的協議端口號,以及流控和差錯校驗 TCP,UDP
網絡層 進行邏輯地址尋址,實現不同網絡之間的路徑選擇 IP,ICMP,RIP,OSPF,BGP,IGMP
數據鏈路層 建立邏輯連接、硬件地址尋址、差錯校驗等功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理層 建立、連接、斷開物理連接 ISO2110,IEEE802,IEEE802.2

Layer3:工作在三層時,keepalived會定期向熱備組中的服務器發送一個ICMP數據包,來判斷某臺服務器是否故障,如果沒有響應則將這臺服務器從熱備組移除。

Layer4:工作在四層時,keepalived以TCP端口的狀態判斷服務器是否故障,比如檢測MySQL的3306端口,如果無法訪問則將這臺服務器從熱備組移除。

Layer7:工作在七層時,keepalived根據用戶設定的策略判斷服務器上的程序是否正常運行,比如使用HTTP請求的方式,如果返回錯誤的狀態碼則將這臺服務器從熱備組移除。

在Keepalived服務器群之間,只有作為主的服務器不斷發送VRRP廣播包,告訴備它還活著,此時備不會搶占主,只有當主不可用,既備接受不到主的VRRP廣播包,這時候備就會啟動相關的服務接管主的任務向外提供服務,以保證服務的正常使用。

4.工作狀態

keepalived正常啟動的時候,共啟動3個進程:

一個是父進程,負責監控其子進程;一個是VRRP子進程,另外一個是checkers子進程;

兩個子進程都被系統watchlog看管,Healthcheck子進程檢查各自服務器的健康狀況。

如果healthchecks進程檢查到master上服務不可用了,就會通知本機上的VRRP子進程,讓他刪除通告,并且去掉虛擬IP,轉換為BACKUP狀態。

四、Keepalived使用

1.配置介紹

keepalived配置文件按層級和模塊劃分的,每層由"{ }"來界定。在主配置文件中可以通過include來涵蓋多個子配置文件。

詳細語法說明:官方文檔

配置文件包括以下幾個模塊:

  • LOBAL CONFIGURATION
  • BFD CONFIGURATION
  • VRRPD CONFIGURATION
  • LVS CONFIGURATION
  1. [root@localhost ~]# cat /etc/keepalived/keepalived.conf 
  2. ! Configuration File for keepalived 
  3. global_defs {                                     #全局定義部分 
  4.     notification_email {                          #設置報警郵件地址,可設置多個 
  5.         acassen@firewall.loc                      #接收通知的郵件地址 
  6.     } 
  7.     notification_email_from test0@163.com         #設置 發送郵件通知的地址 
  8.     smtp_server smtp.163.com                      #設置 smtp server 地址,可是ip或域名.可選端口號 (默認25) 
  9.     smtp_connect_timeout 30                       #設置 連接 smtp server的超時時間 
  10.     router_id LVS_DEVEL                           #主機標識,用于郵件通知 
  11.     vrrp_skip_check_adv_addr 
  12.     vrrp_strict                                   #嚴格執行VRRP協議規范,此模式不支持節點單播 
  13.     vrrp_garp_interval 0 
  14.     vrrp_gna_interval 0 
  15.     script_user keepalived_script                 #指定運行腳本的用戶名和組。默認使用用戶的默認組。如未指定,默認為keepalived_script 用戶,如無此用戶,則使用root 
  16.     enable_script_security                        #如果路徑為非root可寫,不要配置腳本為root用戶執行。 
  17.   
  18. vrrp_instance VI_1 {                              #vrrp 實例部分定義,VI_1自定義名稱 
  19.     state MASTER                                  #指定 keepalived 的角色,必須大寫 可選值:MASTER|BACKUP 
  20.     interface ens33                               #網卡設置,lvs需要綁定在網卡上,realserver綁定在回環口。區別:lvs對訪問為外,realserver為內不易暴露本機信息 
  21.     virtual_router_id 51                          #虛擬路由標識,是一個數字,同一個vrrp 實例使用唯一的標識,MASTER和BACKUP 的 同一個 vrrp_instance 下 這個標識必須保持一致 
  22.     priority 100                                  #定義優先級,數字越大,優先級越高。 
  23.     advert_int 1                                  #設定 MASTER 與 BACKUP 負載均衡之間同步檢查的時間間隔,單位為秒,兩個節點設置必須一樣 
  24.     authentication {                              #設置驗證類型和密碼,兩個節點必須一致 
  25.         auth_type PASS 
  26.         auth_pass 1111 
  27.     } 
  28.     virtual_ipaddress {                           #設置虛擬IP地址,可以設置多個虛擬IP地址,每行一個 
  29.         192.168.119.130 
  30.     } 
  31.     track_script {                                #腳本監控狀態 
  32.         chk_nginx_service                         #可加權重,但會覆蓋聲明的腳本權重值。chk_nginx_service weight -20 
  33.     } 
  34.         notify_master "/etc/keepalived/start_haproxy.sh start"  #當前節點成為master時,通知腳本執行任務 
  35.         notify_backup "/etc/keepalived/start_haproxy.sh stop"   #當前節點成為backup時,通知腳本執行任務 
  36.         notify_fault  "/etc/keepalived/start_haproxy.sh stop"   #當當前節點出現故障,執行的任務; 
  37.   
  38. virtual_server 192.168.119.130 80  {          #定義RealServer對應的VIP及服務端口,IP和端口之間用空格隔開 
  39.     delay_loop 6                              #每隔6秒查詢realserver狀態 
  40.     lb_algo rr                                #后端調試算法(load balancing algorithm) 
  41.     lb_kind DR                                #LVS調度類型NAT/DR/TUN 
  42.     #persistence_timeout 60                   同一IP的連接60秒內被分配到同一臺realserver 
  43.     protocol TCP                              #用TCP協議檢查realserver狀態 
  44.     real_server 192.168.119.120 80 { 
  45.         weight 1                              #權重,最大越高,lvs就越優先訪問 
  46.         TCP_CHECK {                           #keepalived的健康檢查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC 
  47.             connect_timeout 10                #10秒無響應超時 
  48.             retry 3                           #重連次數3次 
  49.             delay_before_retry 3              #重連間隔時間 
  50.             connect_port 80                   #健康檢查realserver的端口 
  51.         } 
  52.     } 

2.使用keepalived對nginx進行高可用搭建

2.1 環境準備

主機ip 角色 部署軟件
192.168.73.135 master keepalived、nginx
192.168.73.136 salve keepalived、nginx
192.168.73.100 虛ip  

2.2 nginx軟件安裝和配置

在192.168.73.136操作為例,135上把index改成135即可

  1. [root@localhost ~]# yum -y install nginx 
  2. [root@localhost ~]# cd /usr/share/nginx/html/ 
  3. [root@localhost html]# mv index.html index.html.back 
  4. [root@localhost html]# echo "I am 192.168.73.136" > index.html 
  5. [root@localhost html]# systemctl start nginx 
  6. [root@localhost html]# curl 192.168.73.136 
  7. I am 192.168.73.136 

2.3 Keepalived軟件安裝

  1. [root@localhost ~]# yum install keepalived -y 
  2. [root@localhost ~]# rpm -ql keepalived 
  3. /etc/keepalived 
  4. /etc/keepalived/keepalived.conf  # 主配置文件 
  5. /etc/sysconfig/keepalived 
  6. /usr/bin/genhash 
  7. /usr/lib/systemd/system/keepalived.service 
  8. /usr/libexec/keepalived 
  9. /usr/sbin/keepalived 

2.4 監聽存活腳本

  1. [root@localhost ~]# vim /etc/keepalived/check_port.sh 
  2. #!/bin/bash 
  3. #keepalived 監控端口腳本 
  4. #使用方法: 
  5. #在keepalived的配置文件中 
  6. #vrrp_script check_port {#創建一個vrrp_script腳本,檢查配置 
  7. #    script "/etc/keepalived/check_port.sh 80" #配置監聽的端口 
  8. #    interval 2 #檢查腳本的頻率,單位(秒) 
  9. #} 
  10. CHK_PORT=$1 
  11. if [ -n "$CHK_PORT" ];then 
  12.         PORT_PROCESS=`ss -lnt|grep $CHK_PORT|wc -l` 
  13.         if [ $PORT_PROCESS -eq 0 ];then 
  14.                 echo "Port $CHK_PORT Is Not Used,End." 
  15.                 exit 1 
  16.         fi 
  17. else 
  18.         echo "Check Port Cant Be Empty!" 
  19. fi 
  20. [root@localhost ~]# chmod  +x /etc/keepalived/check_port.sh 

2.5 最終配置文件

(1)Master配置

  1. [root@localhost ~]# vim /etc/keepalived/keepalived.conf 
  2. ! Configuration File for keepalived 
  3. global_defs { 
  4.    router_id 192.168.73.136 
  5. vrrp_script chk_nginx { 
  6.     script "/etc/keepalived/check_port.sh 80" 
  7.     interval 2 
  8.     weight -20 
  9. vrrp_instance VI_1 { 
  10.     state MASTER 
  11.     interface ens33 
  12.     virtual_router_id 251 
  13.     priority 100 
  14.     advert_int 1 
  15.     authentication { 
  16.         auth_type PASS 
  17.         auth_pass 11111111 
  18.     } 
  19.     track_script { 
  20.          chk_nginx 
  21.     } 
  22.     virtual_ipaddress { 
  23.         192.168.73.100 
  24.     } 

(2)Slave配置

  1. ! Configuration File for keepalived 
  2. global_defs { 
  3.         router_id 192.168.73.135 
  4. vrrp_script chk_nginx { 
  5.         script "/etc/keepalived/check_port.sh 80" 
  6.         interval 2 
  7.         weight -20 
  8. vrrp_instance VI_1 { 
  9.         state BACKUP 
  10.         interface ens33 
  11.         virtual_router_id 251 
  12.         priority 90 
  13.         advert_int 1 
  14.         authentication { 
  15.                 auth_type PASS 
  16.                 auth_pass 11111111 
  17.         } 
  18.         track_script { 
  19.                 chk_nginx 
  20.         } 
  21.         virtual_ipaddress { 
  22.                 192.168.73.100 
  23.         } 

2.6 啟動主從的Keepalived

  1. [root@localhost ~]]systemctl start keepalived && systemctl enable keepalive 

2.7 查看VIP是否啟動

  1. [root@localhost keepalived]# ip addr 
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
  4.     inet 127.0.0.1/8 scope host lo 
  5.        valid_lft forever preferred_lft forever 
  6.     inet6 ::1/128 scope host 
  7.        valid_lft forever preferred_lft forever 
  8. 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 
  9.     link/ether 00:0c:29:6f:74:0a brd ff:ff:ff:ff:ff:ff 
  10.     inet 192.168.73.136/24 brd 192.168.73.255 scope global noprefixroute ens33 
  11.        valid_lft forever preferred_lft forever 
  12.     inet 192.168.73.100/32 scope global ens33 
  13.        valid_lft forever preferred_lft forever 
  14.     inet6 fe80::af0e:a936:d997:18da/64 scope link noprefixroute 
  15.        valid_lft forever preferred_lft forever 

2.8 測試

首先在瀏覽器中訪問vip,可以看到我們訪問的是BACKUP上的web地址

關掉master上的nginx,查看VIP是否漂移到備機。

  1. # 關閉主nginx 
  2. [root@localhost ~]# systemctl stop nginx 
  3. # 查看備上的IP信息,我們發現vip已經偏移到備機上了 
  4. [root@localhost ~]# ip addr 
  5. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 
  6.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
  7.     inet 127.0.0.1/8 scope host lo 
  8.        valid_lft forever preferred_lft forever 
  9.     inet6 ::1/128 scope host 
  10.        valid_lft forever preferred_lft forever 
  11. 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 
  12.     link/ether 00:0c:29:6f:74:0a brd ff:ff:ff:ff:ff:ff 
  13.     inet 192.168.73.136/24 brd 192.168.73.255 scope global noprefixroute ens33 
  14.        valid_lft forever preferred_lft forever 
  15.     inet6 fe80::af0e:a936:d997:18da/64 scope link noprefixroute 
  16.        valid_lft forever preferred_lft forever 

在瀏覽器中訪問vip,可以看到我們訪問的是master上的web地址

五、需要注意的問題

1.腦裂介紹

在高可用系統中,如果兩個節點的心跳線斷開,本來兩個節點為一個整體、動作協調的一個HA系統,現在由于兩個之間的心跳線斷開導致它們分裂成了兩個單獨的個體。由于雙方互相失去了聯系,都會以為對方出了故障。這時候這兩個單獨的個體就像"腦裂人"一樣互相爭搶共享資源、爭用應用服務,這樣就會造成嚴重問題:

共享資源被瓜分,兩邊服務都起不來;

兩邊服務都起來了,同時提供服務,同時讀寫存儲,導致數據不一致甚至損壞。

1.1 產生腦裂的原因

一般來說,腦裂的發生,有以下幾種原因:

(1)HA服務器之間心跳線故障,導致無法正常通信;

(2)HA服務器上開啟了防火墻,阻擋了心跳線的信息傳輸;

(3)HA服務器上心跳網卡配置不正確,導致心跳信息發送失敗;

(4)其他服務器配置不當的原因。比如心跳方式不同,心跳廣播沖突,軟件BUG等;

(5)Keepalived配置里同一 VRRP實例中如果 virtualrouterid兩端參數配置不一致也會導致裂腦問題發生。

1.2 常見的解決辦法

在實際環境中,我們可以從以下幾個方面來防止腦裂的問題:

(1)同時使用串行線路或者以太網電纜連接,同時使用兩條心跳線路,如果一條壞了,另外一條還能正常提供服務;

(2)當檢測到腦裂時強行關閉一個節點(該功能需要特殊設備支持,如Stonith,feyce),相當于備節點接受不到心跳消息,通過單獨的線路發送關機命令關閉主節點的電源;

(3)做好腦裂監控報警(用zabbix等來監控),在問題發生時能在第一時間介入仲裁,降低損失。

(4)啟動磁盤鎖。正在服務一方鎖住共享磁盤,“裂腦”發生時,讓對方完全“搶不走”共享磁盤資源。但使用鎖磁盤也會有一個不小的問題,如果占用共享盤的一方不主動“解鎖”,另一方就永遠得不到共享磁盤。現實中假如服務節點突然死機或崩潰,就不可能執行解鎖命令。后備節點也就接管不了共享資源和應用服務。于是有人在HA中設計了“智能”鎖。即:正在服務的一方只在發現心跳線全部斷開(察覺不到對端)時才啟用磁盤鎖,平時就不上鎖了;

(5)加入仲裁機制。例如設置網關IP,當腦裂發生時,兩個節點都各自ping以下這個網關IP,不通則表明斷點就在本端,不僅“心跳”、還兼對外“服務”的本端網絡鏈路斷了,即使啟動(或繼續)應用服務也沒有用了,那就主動放棄競爭,讓能夠ping通網關IP的一端去起服務。更保險一些,ping不通網關IP的一方干脆就自我重啟,以徹底釋放有可能還占用著的那些共享資源。

1.3 Keepalived監控nginx防止腦裂

(1)執行腳本,用來檢測

  1. [root@zdd211-11 ~]# vim /etc/keepalived/check_keepalived.sh 
  2. #!/bin/bash 
  3. NGINX_SBIN="which nginx" 
  4. NGINX_PORT=80 
  5. function check_nginx(){ 
  6.      NGINX_STATUS="nmap localhost -p ${NGINX_PORT} | grep "80/tcp open" | awk '{print $2}'" 
  7.      NGINX_PROCESS="ps -ef | grep nginx|grep -v grep|wc -l" 
  8. check_nginx 
  9. if [ "$NGINX_STATUS" != "open"  -o  $NGINX_PROCESS -lt 2 ] 
  10. then 
  11.     ${NGINX_SBIN} -s stop 
  12.     ${NGINX_SBIN} 
  13.     sleep 3 
  14.     check_nginx 
  15.     if [ "$NGINX_STATUS" != "open"  -o  $NGINX_PROCESS -lt 2 ];then 
  16.         systemctl stop keepalived 
  17.     fi 
  18.  fi 
  19.  [root@localhost ~]# chmod  +x /etc/keepalived/check_port.sh 

(2)安裝nmap

因為上面腳本有用到這個工具,因此兩個主機都需要安裝

  1. [root@localhost ~]# yum install nmap -y 

(3) 修改master配置

  1. [root@localhost ~]# vim /etc/keepalived/keepalived.conf 
  2. ! Configuration File for keepalived 
  3. global_defs { 
  4.    router_id 192.168.73.136 
  5. vrrp_script chk_nginx { 
  6.     script "/etc/keepalived/check_port.sh 80" 
  7.     interval 2 
  8.     weight -20 
  9. vrrp_script chk_nginx { 
  10.     script "/etc/keepalived/check_keepalive.sh" # 腳本路徑 
  11.     interval 2                                  # 執行時間間隔 
  12.     weight -5                                   # 計算權重值,腳本結果導致的優先級變更,檢測失敗(腳本返回非0)則優先級 -5 
  13.     fall 3                                      # 檢測連續3次失敗才算確定是真失敗。會用weight減少優先級(1-255之間) 
  14.     rise 2                                      # 檢測2次成功就算成功。但不修改優先級 
  15. vrrp_instance VI_1 { 
  16.     state MASTER 
  17.     interface ens33 
  18.     virtual_router_id 251 
  19.     priority 100 
  20.     advert_int 1 
  21.     authentication { 
  22.         auth_type PASS 
  23.         auth_pass 11111111 
  24.     } 
  25.     track_script { 
  26.          chk_nginx 
  27.     } 
  28.     virtual_ipaddress { 
  29.         192.168.73.100 
  30.     } 

(4) 修改Slave配置配置

  1. ! Configuration File for keepalived 
  2. global_defs { 
  3.         router_id 192.168.73.135 
  4. vrrp_script chk_nginx { 
  5.     script "/etc/keepalived/check_keepalive.sh" 
  6.     interval 2                     # 執行時間間隔 
  7.     weight -5                      # 計算權重值,腳本結果導致的優先級變更,檢測失敗(腳本返回非0)則優先級 -5 
  8.     fall 3                         # 檢測連續3次失敗才算確定是真失敗。會用weight減少優先級(1-255之間) 
  9.     rise 2                         # 檢測2次成功就算成功。但不修改優先級 
  10. vrrp_instance VI_1 { 
  11.         state BACKUP 
  12.         interface ens33 
  13.         virtual_router_id 251 
  14.         priority 90 
  15.         advert_int 1 
  16.         authentication { 
  17.                 auth_type PASS 
  18.                 auth_pass 11111111 
  19.         } 
  20.         track_script { 
  21.                 chk_nginx 
  22.         } 
  23.         virtual_ipaddress { 
  24.                 192.168.73.100 
  25.         } 

2.Keepalived設置故障恢復后不重新搶回VIP

通常生產環境是不允許VIP來回漂移,當主機的業務出問題之后,vip漂移到備機上保證業務不中斷,就算故障恢復keepalived也不會把vip切到主機上;需要進行對應的問題問題,確認主機環境沒有問題之后手動重啟主機上keepalived服務,讓vip切回到主機上。

為了滿足這樣的業務場景,可以使用nopreempt參數,不搶占VIP的機制實現

修改master配置如下:

  1. [root@localhost ~]# vim /etc/keepalived/keepalived.conf 
  2. ! Configuration File for keepalived 
  3. global_defs { 
  4.    router_id 192.168.73.136 
  5. vrrp_script chk_nginx { 
  6.     script "/etc/keepalived/check_keepalive.sh" # 腳本路徑 
  7.     interval 2                                  # 執行時間間隔 
  8.     weight -5                                   # 計算權重值,腳本結果導致的優先級變更,檢測失敗(腳本返回非0)則優先級 -5 
  9.     fall 3                                      # 檢測連續3次失敗才算確定是真失敗。會用weight減少優先級(1-255之間) 
  10.     rise 2                                      # 檢測2次成功就算成功。但不修改優先級 
  11. vrrp_instance VI_1 { 
  12.     state MASTER 
  13.     interface ens33 
  14.     virtual_router_id 251 
  15.     priority 100 
  16.     advert_int 1 
  17.     nopreempt    ##不搶VIP 機制 
  18.     authentication { 
  19.         auth_type PASS 
  20.         auth_pass 11111111 
  21.     } 
  22.     track_script { 
  23.          chk_nginx 
  24.     } 
  25.     virtual_ipaddress { 
  26.         192.168.73.100 
  27.     } 

可以自己重啟keepalived,然后停止web,然后再啟動web,驗證是否能夠自動漂移回主機

3.組播地址沖突問題

當在同一個局域網內部署了多組keepalived服務器時,可能會發生高可用接管的嚴重故障問題。

因為keepalived高可用功能是通過VRRP協議實現的,VRRP協議默認通過IP多播的形式實現高可用對之間的通信,如果同一個局域網內存在多組Keepalived服務器對,就會造成IP多播地址沖突問題,導致接管錯亂.

不同組的keepalived都會使用默認的224.0.0.18作為多播地址。此時的解決辦法是,在同組的keepalived服務器所有的配置文件里指定獨一無二的多播地址,配置如下:

  1. global_defs 
  2.   ``router_id LVS_19 
  3.   ``vrrp_mcast_group4 224.0.0.19` `#指定多播地址 
責任編輯:武曉燕 來源: 運維開發故事
相關推薦

2022-05-31 08:04:03

Redis高可用集群

2019-09-26 09:04:22

NginxKeepalived服務器

2019-07-30 10:18:06

NginxKeepalived

2023-05-15 08:20:56

2019-10-11 10:52:42

Web架構MongoDB

2011-09-30 13:02:10

51CTO博客一周熱門Web架構

2010-06-21 14:37:18

2024-01-10 07:23:52

高可用策略實踐

2024-11-11 16:29:54

負載均衡器系統

2025-09-24 07:23:01

2022-07-22 20:00:01

高可用路由

2018-09-11 09:33:49

Redis高可用架構

2022-06-21 07:51:06

Redis高可用哨兵進程

2012-02-15 00:01:34

2010-12-08 08:57:11

keepalivedMySQL-HA

2017-05-04 12:48:18

WOT網易NDC

2015-10-21 12:58:58

keepalived集群Linux

2024-12-26 08:02:36

API?Navigator嵌套路由

2023-10-13 18:57:22

2019-10-09 16:02:16

NginxKeepalivedLvs
點贊
收藏

51CTO技術棧公眾號

人人爽人人爽人人片av| 日韩精品视频在线观看视频 | 亚洲盗摄视频| 欧美亚洲图片小说| 91免费版看片| 噜噜噜在线观看播放视频| 日本大胆欧美人术艺术动态| 久久九九免费视频| 亚洲av无码一区二区三区观看| abab456成人免费网址| 亚洲免费在线播放| 日本a级片久久久| 亚洲精品免费在线观看视频| 日韩精品电影一区亚洲| 欧美日韩国产第一页| 亚洲黄色免费视频| 国产亚洲精品美女久久| 欧美精品色综合| 精品久久久久久久无码| 俄罗斯一级**毛片在线播放| 国产精品无人区| 精品无码久久久久久久动漫| 国产美女永久免费| 国产又粗又猛又色又| 精品九九久久| 欧美性猛交xxx| www.男人天堂网| 91啦中文在线| 久久色在线视频| 成人欧美一区二区三区视频| 亚洲永久精品视频| 视频一区欧美精品| 97色在线观看| wwwav国产| 欧美成人精品一区二区三区在线看| 亚洲精品一区二区三区精华液 | 亚洲а∨天堂久久精品喷水| 亚洲第一色av| 天堂综合在线播放| 欧美日韩一区二区三区不卡| 欧美成人免费高清视频| 日韩123区| 亚洲激情图片qvod| 超碰成人在线免费观看| 日韩免费啪啪| 亚洲欧美怡红院| 亚洲自拍偷拍二区| 自拍视频在线网| 国产精品网友自拍| 亚洲国产一区在线| av资源种子在线观看| 日本一区二区三区四区在线视频 | 天天揉久久久久亚洲精品| 在线成人激情黄色| 99久久99久久精品免费看小说.| 免费毛片在线不卡| 亚洲欧美中文日韩在线| 91精品人妻一区二区三区| 日韩理论电影中文字幕| 国产午夜精品理论片a级探花| 久久久久成人精品无码中文字幕| 高清欧美性猛交xxxx黑人猛| 亚洲成人精品久久久| 日本少妇毛茸茸| 亚洲免费成人av在线| 亚洲欧美在线看| 国产又粗又硬视频| 亚洲免费二区| 97久久久久久| 中文字幕69页| 精品亚洲porn| 成人毛片网站| 欧美日韩视频精品二区| 亚洲国产成人午夜在线一区| 中国成人在线视频| 蜜臀av在线播放| 精品女厕一区二区三区| 777米奇影视第四色| 电影亚洲一区| 日韩区在线观看| 粉嫩av懂色av蜜臀av分享| 国产欧美日韩精品一区二区三区| 中文在线不卡视频| 久久一级黄色片| 葵司免费一区二区三区四区五区| 国产美女精品视频| 狠狠人妻久久久久久综合麻豆| 2019国产精品| 四虎影院一区二区| 欧美调教sm| 69堂亚洲精品首页| 国产精品福利导航| 水蜜桃久久夜色精品一区| 欧美高清视频在线| 国产精品xxxxxx| 国产精品原创巨作av| 久草精品电影| 成人在线观看亚洲| 男人皇宫亚洲男人2020| 久久福利毛片| 91精品免费看| 无套内谢的新婚少妇国语播放| 国产日产精品一区| 中文字幕人妻熟女人妻洋洋| 电影亚洲精品噜噜在线观看| 激情av一区二区| 国产日韩在线观看av| a在线观看视频| 2020国产精品| 欧美精品在线播放| 成人av男人的天堂| 日韩二区三区| 嗯啊主人调教在线播放视频| 一区二区免费在线| 天天干在线影院| 国产精品三p一区二区| 最近2019免费中文字幕视频三| 国产精品1234区| 久久er精品视频| 欧美日韩一区在线观看视频| 日韩三级免费| 91精品一区二区三区久久久久久 | 欧美黄页免费| 日韩精品高清在线| 精品无码黑人又粗又大又长| 捆绑变态av一区二区三区| 久久资源av| 69av成人| 欧美tickling网站挠脚心| 一级特黄曰皮片视频| 久久国产精品亚洲77777| 日韩三级中文字幕| av无码久久久久久不卡网站| 久久69成人| 亚洲欧美另类在线观看| 久久久久成人精品无码| 国产一区欧美日韩| 亚洲一区二区三区精品动漫| 欧美成人免费电影| 亚洲美女中文字幕| 中文字幕视频网| 九色在线免费| 欧美午夜不卡影院在线观看完整版免费| 国产精品网址在线| www.在线播放| 欧美色中文字幕| 亚洲色图 激情小说| 老司机亚洲精品| 图片区小说区区亚洲五月| 欧美色999| 一区二区欧美在线| 一区二区视频播放| 亚洲欧美在线另类| 99999精品| 国产美女www爽爽爽| 狠狠色狠狠色综合日日91app| 亚洲国产精品综合| 免费视频观看成人| 久久久精品国产| 国产精品一区二区人人爽| 综合色中文字幕| 波多野结衣电影免费观看| 欧美黄在线观看| 国产精品三区www17con| 97蜜桃久久| 亚洲免费电影在线观看| 波多野结衣视频在线观看| 国产精品色一区二区三区| 国产无遮挡猛进猛出免费软件| 99精品视频在线| 99国精产品一二二线| av在线视屏| 亚洲一区二区黄| 亚洲一级视频在线观看| 一区二区三区在线免费视频| 性猛交╳xxx乱大交| 一本色道久久综合亚洲精品高清 | 日本韩国一区| 热久久久久久久| 亚洲欧洲三级| 蜜桃在线一区| 亚洲91精品在线| 蜜芽tv福利在线视频| 欧美日韩精品一二三区| 青青草手机在线观看| 99精品视频一区二区三区| 日韩免费高清在线| 亚洲精品91| 久久精品国产理论片免费| 粉嫩91精品久久久久久久99蜜桃| 欧美疯狂做受xxxx高潮| 青青草av免费在线观看| 欧美日韩高清一区二区三区| 久久久一区二区三区四区| 久久久久久久综合狠狠综合| 特级西西444www| 麻豆九一精品爱看视频在线观看免费| 一区二区三区四区欧美| 日韩av网站在线免费观看| 成人高h视频在线| 樱桃视频成人在线观看| 久久艳片www.17c.com| 日本天堂在线| 国产精品国产三级国产三级人妇| 久久久久久九九九九| 成人精品国产| 亚洲91精品在线观看| 久操视频在线免费播放| 亚洲精品中文字幕av| 精品国产va久久久久久久| 日本久久一区二区三区| 精品少妇久久久| 日韩中文字幕在线一区| 国产91av在线| bt在线麻豆视频| 在线视频亚洲欧美| 天天操天天干天天插| 日韩亚洲欧美一区二区三区| 久久久久久久久久一级| 欧美日韩国产专区| 久久久久国产精品夜夜夜夜夜| 国产精品久线观看视频| 国产免费看av| 99精品久久久久久| 91九色蝌蚪porny| 国产成人免费在线视频| 日本精品一区在线| 美女视频一区在线观看| 日韩一级在线免费观看| 亚洲欧美网站| 波多野结衣家庭教师在线| 极品尤物久久久av免费看| 男人的天堂视频在线| 国产高清一区| 国产精品夜夜夜爽张柏芝| 区一区二视频| 午夜精品一区二区三区在线观看 | 成年人看的免费视频| 久久久亚洲欧洲日产国码αv| 日韩无码精品一区二区| 成人听书哪个软件好| 国产亚洲精品成人a| 日韩在线观看电影完整版高清免费悬疑悬疑| 国产午夜精品一区| 97品白浆高清久久久久久| 91在线网站视频| 91麻豆精品国产综合久久久| 国产精品久久久久久av下载红粉| 欧美aa视频| 日本一本a高清免费不卡| 白浆视频在线观看| 美女看a上一区| 日韩不卡一二三| 另类小说一区二区三区| 日韩欧美国产片| 国内精品国产三级国产a久久 | 精精国产xxxx视频在线野外| 97精品一区二区视频在线观看| 国产精品蜜芽在线观看| 91精品国产91久久久| 成人美女黄网站| 国产精品男女猛烈高潮激情| 玖玖精品在线| 91免费观看| 欧美国产不卡| 日韩资源av在线| 亚洲v在线看| 欧美黄网在线观看| 国产精品资源| 浓精h攵女乱爱av| 国产剧情在线观看一区二区| 在线观看免费视频国产| 26uuu亚洲| 黄色录像免费观看| 香蕉加勒比综合久久| 中文字幕免费高清网站| 欧美一区二区三区不卡| 污视频网站免费观看| 中文字幕亚洲综合久久| 伦理在线一区| 国产精品高清网站| 日本精品在线观看| 欧美一区二区影视| 一区二区三区四区在线观看国产日韩| 免费看黄在线看| 日韩成人免费电影| 91超薄肉色丝袜交足高跟凉鞋| 久久精品人人做人人爽97| 久久国产高清视频| 精品国产乱码久久久久久天美 | 日本高清xxxx| 男人的天堂成人在线| www.超碰97.com| 99精品在线免费| 亚洲欧美精品aaaaaa片| 欧美日韩一区二区免费在线观看| 国产精品色综合| 精品亚洲男同gayvideo网站| 黄色网址在线免费播放| 欧美中文字幕在线视频| 国产精品久久免费视频| 蜜桃在线一区二区三区精品| 欧美在线网站| 亚洲77777| 久久先锋资源网| 豆国产97在线 | 亚洲| 欧美日韩国产免费一区二区| 亚洲欧美一区二区三| 久久国产精品免费视频| 天堂久久午夜av| 狠狠色综合色区| 亚洲综合婷婷| 日韩中文字幕a| 久久久精品综合| 欧美一级特黄视频| 精品国产一区二区亚洲人成毛片| 日本暖暖在线视频| 国产a∨精品一区二区三区不卡| 成人av动漫| 国产人妻互换一区二区| 日韩和欧美的一区| 欧美成人午夜精品免费| 亚洲综合av网| 精品人妻久久久久一区二区三区| 日韩亚洲欧美成人| a屁视频一区二区三区四区| 欧美极品一区| 亚洲欧美日韩专区| 美女又爽又黄视频毛茸茸| 亚洲国产视频一区二区| 国内精品国产成人国产三级| 久久久91精品国产| av日韩一区| 一区高清视频| 久久成人av少妇免费| 精品一区二区三区蜜桃在线| 精品成人在线视频| 婷婷丁香花五月天| 97香蕉久久超级碰碰高清版| 国产精品久av福利在线观看| 成年女人18级毛片毛片免费| 国产91在线观看| 免费日韩一级片| 亚洲美女激情视频| 玛雅亚洲电影| 日韩国产精品一区二区| 日韩高清欧美激情| 国产精品久久久视频| 欧美午夜精品久久久久久孕妇| www日韩tube| 国产日韩欧美在线播放| 亚洲91中文字幕无线码三区| 国产精品999.| 亚洲夂夂婷婷色拍ww47| 欧美视频xxx| 欧美一级成年大片在线观看| 久久超碰99| 777视频在线| 亚洲美女精品一区| 日本免费不卡视频| 欧洲成人午夜免费大片| 精品久久网站| 亚洲在线观看网站| 午夜精品久久久| 国产美女性感在线观看懂色av| 国产精品毛片a∨一区二区三区|国| 成人av电影在线| 国产免费一区视频观看免费| 菠萝蜜一区二区| 亚洲欧美自拍另类日韩| 亚洲欧洲精品成人久久奇米网| 国产视频第一页| 久久久伊人日本| 国产亚洲电影| 中文字幕12页| 亚洲第一综合色| 超碰免费97在线观看| 91中文字幕在线观看| 99riav1国产精品视频| 日本美女xxx| 精品久久久久久久一区二区蜜臀| 小h片在线观看| 在线播放 亚洲| 99久久精品99国产精品 | 激情福利在线| 91免费福利视频| 久久精品电影| 午夜写真片福利电影网| 亚洲精品一区二区网址| 日本少妇精品亚洲第一区| 女人扒开屁股爽桶30分钟| 亚洲丝袜另类动漫二区| 亚洲欧洲综合在线| 91精品国产综合久久久久久丝袜| 先锋亚洲精品| 久久视频免费看| 久久久97精品| 农村少妇久久久久久久| 国产精品美乳一区二区免费| 亚洲精品美女|