1. 程式人生 > >CentOS7 Keepalived+LVS 負載均衡 後臺節點健康檢查

CentOS7 Keepalived+LVS 負載均衡 後臺節點健康檢查

CentOS7 安裝Keepalived以及基本配置    這篇文章介紹瞭如何安裝keepalived以及配置虛擬IP實現雙機故障切換。

本文主要介紹 Keepalived+LVS 負載均衡配置與後臺節點健康檢查。

1.安裝LVS

1:下載RPM軟體包 http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26-1.src.rpm

2:安裝 rpm -ivh ipvsadm-1.26-1.src.rpm 包

3:yum install ipvsadm 安裝軟體

4:執行  ipvsadm   看是否有下面輸出說明安裝成功


5:執行命令 lsmod|grep ip_vs 檢查當前載入的核心模組,看是否存在 ip_vs 模組


注 1、只有執行 ipvsadm 以後,才會在核心載入 ip_vs 模組

2.安裝keepalived 

2:配置檔案/etc/keepalived/keepalived.conf  

! Configuration File for keepalived

global_defs {  
   notification_email {  
     [email protected]  
   }  
   notification_email_from [email protected]  
   smtp_server localhost  
   smtp_connect_timeout 30  
   router_id  NodeA  
} 


vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.220
    }
}

virtual_server 192.168.1.220 8080 { 
   delay_loop 6                  
   lb_algo rr                     
   lb_kind DR                     
   nat_mask 255.255.255.0           
   persistence_timeout 0           
   protocol TCP                    
   real_server 192.168.1.107 8080 {   
       weight 1                      
        HTTP_GET {
            url { 
              path /index.jsp
              digest d654f21f87b7e6900b887f07c19e73fe
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }       
   }
   real_server 192.168.1.108 8080 {    
       weight 11
        HTTP_GET {
            url { 
              path /index.jsp
              digest 625eddd79c61cf84c71c0c17448f8093
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }        
   }
}

vrrp_instance VI_1 :不在這裡解釋了,看我另外一篇文章,地址在上面。

virtual_server 192.168.1.220 8080   : 這裡配置虛擬伺服器 (192.168.1.220 為虛擬IP, 監聽8080埠)客戶端就訪問這個地址。

delay_loop :健康檢查時間間隔,單位是秒。

lb_algo :負載均衡排程演算法,網際網路應用常使用 wlc 或 rr。

lb_kind :負載均衡轉發規則。一般包括 DR,NAT,TUN3 種,在我的方案中,都使用DR 的方式。

persistence_timeout. :會話保持時間,單位是秒。這個會話是網路7層傳輸協議中的(第三層)會話。比如我們把它設定為60,那麼客戶端60秒內訪問LVS虛擬伺服器的請求都會被轉到到同1個後臺伺服器節點。如果設定為0,那麼每次請求都會根據配置的排程情況進行分發。

轉發協議 protocol. 一般有 tcp 和 udp 兩種。實話說,我還沒嘗試過 udp 協議類的轉發。

real_server 192.168.1.107 8080  : 這裡配置真實伺服器的地址與埠。

weight 1  :權重,不解釋了。一般都是機器效能好的高一些,低的小一些。

HTTP_GET:配置健康檢查

url { 
        path /index.jsp  健康檢查的頁面
        digest 625eddd79c61cf84c71c0c17448f8093  根據頁面計算出的MD5的值,這個值一定不能隨便寫,不然keepliv
}

下面說一下如何計算digest 

我的keepalived的安裝目錄在 /usr/local/keepalive/

進入到/usr/local/keepalive/bin

./genhash -s 192.168.1.107 -p 8080 -u /index.jsp
通過上訴命令計算digest  然後寫到配置檔案上就可以了。

connect_timeout 5   :連線超時時間
nb_get_retry 3        :重連次數
delay_before_retry 3  :重連間隔時間
connect_port 8080        :檢測埠

3:啟動keepalived

2:也可以直接 /usr/local/keepalive/sbin/keepalived -D 啟動,怎麼啟動都行。

3:啟動成功輸入命令 ps aux | grep keepalived  


Keepalived 正常執行時,共啟動 3 個程序,其中一個程序是父程序,負責監控其子程序;一個是 vrrp 子程序;另外一個是 checkers 子程序。

4:也可以檢視日誌:tail -f /var/log/message

5:可以用其它伺服器去ping 192.168.1.220這個虛擬IP,Telnet 8080埠,測試虛擬伺服器是否有問題。


4:配置真實伺服器

說明:一般真實網際網路應用都配置為lb_kind = dr 模式,因為這種模式效率是最高的,缺點就是配置稍微複雜一點,需要配置客戶端。 DR模式原理請參考:http://atong.blog.51cto.com/2393905/1348602 簡單說一下:  假設A為前端負載均衡伺服器, B,C為後端真實伺服器。 A接收到資料包以後,會把資料包的MAC地址改成B的(根據排程演算法,假設發給B伺服器),然後把資料包重新發出去,交換機收到資料包根據MAC地址找到B,把資料包交給B。 這時B會收到資料包,同時驗證請求IP地址,由於資料包裡的IP地址是給A的,所以正常情況下B會丟棄資料包,為了防止這種情況,需要在B機器的迴環網絡卡上配置A的IP地址。並設定ARP壓制。

1:在真實伺服器上執行指令碼檔案

#!/bin/bash  
#description : start realserver
VIP=192.168.1.220
/etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS Directorserver"
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac 

VIP=192.168.1.220   大家只要修改這個地方為虛擬IP即可,別的地方都不需要改。

2:需要對指令碼授權 

chmod +x lvs_real.sh


3:如果指令碼是在windows編輯在拷貝過去的會有問題,好像是回車換行符不同導致的。

sed -i 's/\r$//' lvs_real.sh


4:執行指令碼

./lvs_real.sh

5:輸入ifconfig檢視虛擬IP是否已經繫結到迴環網絡卡


6:測試的時候最好先關閉防火牆,免得給自己挖坑。

7:如果想知道當前測試機的訪問請求被轉發到那個伺服器去了,可以在 ipvsadm 命令後帶一個選項,其完整形式為:ipvsadm –lcn | grep 159.226.240.63 (你的IP)。

5.其它健康檢查方式

1:TCP方式檢查

virtual_server 192.168.80.120 8080 { 
   delay_loop 6                  
   lb_algo rr                     
   lb_kind DR                     
   nat_mask 255.255.255.0           
   persistence_timeout 0           
   protocol TCP                    
   real_server 192.168.80.129 8080 {   
       weight 1                      
      TCP_CHECK {
        connect_port    8080
        connect_timeout 5
      }      
   }
   real_server 192.168.80.131 8080 {    
       weight 1
      TCP_CHECK {
        connect_port    8080
        connect_timeout 5
      }      
   }
}
2:其它方式請參考keepalived提供的配置檔案

相關推薦

CentOS7 Keepalived+LVS 負載均衡 後臺節點健康檢查

CentOS7 安裝Keepalived以及基本配置    這篇文章介紹瞭如何安裝keepalived以及配置虛擬IP實現雙機故障切換。 本文主要介紹 Keepalived+LVS 負載均衡配置與後臺節點健康檢查。 1.安裝LVS 1:下載RPM軟體包 http://w

CentOS7.4——LVS負載均衡群集—直接路由模式(LVS-DR)

CentOS7—LVS負載均衡—DR模式LVS負載均衡群集—直接路由模式(LVS-DR)環境:調度服務器一臺:Linux—CentOS7.4IP地址:192.168.80.20Web服務器兩臺:Linux—CentOS7.4IP地址:192.168.80.30(SERVER AA)IP地址:192.168.8

Linux下部署搭建Keepalived+LVS負載均衡實戰

1.1 LVS簡介     LVS(Linux Virtual Server),也就是Linux虛擬伺服器, 是一個自由軟體專案。使用LVS技術要達到的目標是:通過LVS提供的負載均衡技術和Linux作業系統實現一個高效能、高可用的伺服器群集,它具有良好可靠性、可擴充套件性和可

Keepalived+LVS負載均衡雙機備熱

實驗環境 兩臺Keepalived伺服器,三臺提供http服務的節點伺服器 主排程器(192.168.3.4) 從排程器(192.168.3.5) HTTP-1(192.168.3.1) HTTP-2(192.168.3.2) HTTP-3(192.168.3.3) 主

keepalived+lvs+負載均衡的windows實現

       關於這方面的文章網上一大堆,但是大部分都是寫keepalived的配置問題,並沒有說明白原理方面的東西,如果配置上稍微有點問題,都不知道問題出在什麼地方,下面我寫下keepalived的常用配置以及lvs的原理、負責均衡的工作原理。1.keepalived和lv

lvs+keepalived實現負載均衡

keepalive 裝載 announce log loopback -s scheduler sad apr LVS簡介: lvs是負載均衡較常用的軟件之一,lvs官方提供了一個命名的約定: vip:虛擬ip地址,縮寫是vip,vip是負載均衡器對外提供服務的ip。 ri

LVS(負載均衡)+keepalived(HA)+Nginx(反向代理)+Web(動靜態網站服務器)

網站服務器 web服務器 虛擬機 帶寬 規模 集群 考慮到LVS和Nginx的缺點(由於LVS采用的是同步請求轉發策略而Nginx采用的是異步轉發策略,結合兩者的缺點:作為負載均衡服務器的Nginx和LVS處理相同的請求時,所有的請求和響應流量都會經過Nginx服務器,但是使用LVS時

手把手教程: CentOS 6.5 LVS + KeepAlived 搭建 負載均衡 高可用 集群

ipvs 管理 bar 10.10 方正 希望 滿足 open chm 為了實現服務的高可用和可擴展,在網上找了幾天的資料,現在終於配置完畢,現將心得公布處理,希望對和我一樣剛入門的菜鳥能有一些幫助。 一、理論知識(原理) 我們不僅要知其然,而且要知其所以然,所以先

LVS(DR) + Keepalived 實現負載均衡

lvs keepalived apacheLVS(DR) + Keepalived 實現負載均衡高可用一、為什麽要使 用負載均衡技術?1、 系統高可用性2、 系統可擴展性3、 負載均衡能力 LVS+keepalived能很好的實現以上的要求,LVS提 供負載均衡,keepalived提供健康檢查,

lvs+keepalived+nginx負載均衡搭建測試

lvs keepalived nginx centos7 ipvsadm 1. 簡介1.1 LVS簡介 LVS(Linux Virtual Server),也就是Linux虛擬服務器, 是一個由章文嵩博士發起的自由軟件項目。使用LVS技術要達到的目標是:通過LVS提供的負載均衡技

CentOS7.4——構建LVS負載均衡群集—地址轉換模式(LVS-NAT)

LVS負載均衡—NAT模式LVS負載均衡群集—地址轉換模式(LVS-NAT)環境:調度服務器一臺:Linux—CentOS7.4IP地址:192.168.80.20(內網)192.168.90.20(外網)Web服務器兩臺:Linux—CentOS7.4IP地址:192.168.80.30(SERVER AA

LVS DR模式負載均衡搭建、keepalived高可用+LVS負載均衡配合

lvs lvs dr模式 lvs負載均衡 keepalived+LVS LVS DR模式搭建 準備:dir(調度器):192.168.188.2rs1:192.168.188.3rs2:192.168.188.6vip:192.168.188.200 安裝ipvsadm yum insta

Keepalived管理LVS負載均衡實戰

Keepalived LVS Linux 負載均衡 眾所周知,早期LVS軟件,需要通過命令行或腳本實現管理,而且沒有針對LVS節點的健康檢查功能。為了解決LVS的這些使用不便問題,Keepalived便誕生。Keepalived服務的三大重要功能 管理VLS負載均衡 實現對LVS集群node

linux,centos7上搭建LVS負載均衡

for rpm -ivh /bin/bash 同步 tab 創建 log BE .rpm 在linux,centos7上搭建LVS負載均衡 實前準備 準備五臺虛擬機 四臺centos7 一臺做調度 一臺做nfs緩存 兩臺做wed群集 一臺windows7 開始逐個配置

CentOS7上部署LVS負載均衡群集之LVS-NAT(地址轉換模式)

local 添加 fig iptable block rip 除了 處理 路由轉發 CentOS7中的LVS負載均衡群集之LVS-NAT(地址轉換模式) 簡介 在當今各種互聯網應用中,隨著站點對硬件性能、響應速度、服務穩定性、數據可靠性等的要求越來越高,單臺服務器將難以承擔

centos7上實現LVS負載均衡群集之NAT轉換模式

基於ip地址 ted 應用 立即生效 iptable 顯示 反饋 輪詢 模式 LVS虛擬服務器 Linux Virtual Server(LVS)是針對 Linux內核開發的一個負載均衡項目,由我國的章文嵩博土在1998年5月創建,官方站點位於http://www.linu

lvs負載均衡的四種模式原理,LVS之DR模型,LVS+keeaplived實現負載均衡keepalived實現高可用

一,LVS的簡介: Linux virtual system,是由目前阿里著名工程師章文嵩開發的一寬開源的軟體。LVS工作在一臺server上提供Directory(負載均衡器)的功能,它本身並不提供任何服務,只是把特定的請求轉發給對應的realserver(

lvs 負載均衡Centos7

echo 1 > /proc/sys/net/ipv4/ip_forward ipv=/sbin/ipvsadm vip=192.168.1.110 rs1=192.168.1.113 rs2=192.168.1.133 ifconfig eth0:0 down ifconfig eth0:0 $v

LVS+keepalived 實現負載均衡

一、資源規劃     在開始搭建之前,我們首先需要準備和規劃好搭建所需的資源。因為效能等方面的考慮,我們使用當前比較流行的DR模式。 搭建前我們需要了解,搭建環境的機器必須在同一網段內,此次環境搭建需要1個VIP和四臺機器(我這裡使用四臺VM) 具體清單如下: 伺服

Linux CentOs集群LVS負載均衡的實現

mac host 明顯 獲取 輸出 最好 開始 director 沒有 準備工作 環境:Win10下Centos6.4虛擬機。 負載均衡:兩臺(一主一備) LVS + Keepalived。 HTTP服務器:3臺。 給每臺服務器配置IP 1、VIP(virtual ip)