LVS+keepalived配置

Keepalived軟件起初是專為L(zhǎng)VS負(fù)載均衡軟件設(shè)計(jì)的誊垢,用來管理并監(jiān)控LVS集群系統(tǒng)中各個(gè)服務(wù)節(jié)點(diǎn)的狀態(tài)悔捶,后來又加入了可以實(shí)現(xiàn)高可用的VRRP功能响迂。因此拜马,Keepalived除了能夠管理LVS軟件外渗勘,還可以作為其他服務(wù)(例如:Nginx、Haproxy一膨、MySQL等)的高可用解決方案軟件呀邢。

高可用協(xié)議

Keepalived軟件主要是通過VRRP協(xié)議實(shí)現(xiàn)高可用功能的。VRRP是Virtual Router RedundancyProtocol(虛擬路由器冗余協(xié)議)的縮寫豹绪,VRRP出現(xiàn)的目的就是為了解決靜態(tài)路由單點(diǎn)故障問題的价淌,它能夠保證當(dāng)個(gè)別節(jié)點(diǎn)宕機(jī)時(shí),整個(gè)網(wǎng)絡(luò)可以不間斷地運(yùn)行瞒津。

VRRP ,全 稱 Virtual Router Redundancy Protocol ,中文名為虛擬路由冗余協(xié)議 蝉衣,VRRP的出現(xiàn)就是為了解決靜態(tài)踣甶的單點(diǎn)故障問題,VRRP是通過一種競(jìng)選機(jī)制來將路由的任務(wù)交給某臺(tái)VRRP路由器的巷蚪。

 1) VRRP是通過一種竟選協(xié)議機(jī)制來將路由任務(wù)交給某臺(tái) VRRP路由器的病毡。
 2) VRRP用 IP多播的方式(默認(rèn)多播地址(224.0.0.18))實(shí)現(xiàn)高可用對(duì)之間通信。
 3) 工作時(shí)主節(jié)點(diǎn)發(fā)包屁柏,備節(jié)點(diǎn)接包啦膜,當(dāng)備節(jié)點(diǎn)接收不到主節(jié)點(diǎn)發(fā)的數(shù)據(jù)包的時(shí)候,就啟動(dòng)接管程序接管主節(jié)點(diǎn)的開源淌喻。備節(jié)點(diǎn)可以有多個(gè)僧家,通過優(yōu)先級(jí)競(jìng)選,但一般 Keepalived系統(tǒng)運(yùn)維工作中都是一對(duì)裸删。

虛擬IP配置

master
global_defs {  #全局定義
 #  notification_email { #定義郵件
 #     alvin@126.com  #定義郵件地址
 #  }
 #  notification_email_from alvin@126.com #定義郵件地址
 #  smtp_server mail.126.com #郵件服務(wù)器
 #  smtp_connect_timeout 30 #郵件超時(shí)時(shí)間
   router_id LVS_DEVEL_1 #route_id標(biāo)識(shí)
}

vrrp_instance VI_1 {   #定義VRR組八拱,
    state MASTER       #定義為MASTER主
    interface ens33      #對(duì)外訪問的網(wǎng)絡(luò)接口
    virtual_router_id 100 #虛擬路由標(biāo)識(shí)。注意主從要一致
    priority 150 #主從優(yōu)先級(jí)涯塔,主的優(yōu)先級(jí)要高于從肌稻。注意
    advert_int 1 #:廣播周期秒數(shù)
    authentication {
        auth_type PASS
        auth_pass 2209
    }
    virtual_ipaddress {
        192.168.112.137/32 dev ens33  #:虛擬VIP地址,真實(shí)環(huán)境這里應(yīng)該是公網(wǎng)IP
 }
slave
global_defs {  #全局定義
 #  notification_email { #定義郵件
 #     alvin@126.com  #定義郵件地址
 #  }
 #  notification_email_from alvin@126.com #定義郵件地址
 #  smtp_server mail.126.com #郵件服務(wù)器
 #  smtp_connect_timeout 30 #郵件超時(shí)時(shí)間
   router_id LVS_DEVEL_2   #route_id標(biāo)識(shí)不可與master相同
}

vrrp_instance VI_1 {         #定義VRR組匕荸,
    state BACKUP             #定義為BACKUP
    interface ens33            #對(duì)外訪問的網(wǎng)絡(luò)接口
    virtual_router_id 100   #虛擬路由標(biāo)識(shí)爹谭。主從要*一致*
    priority 100                  #主從優(yōu)先級(jí),主的優(yōu)先級(jí)要高于從榛搔。注意
    advert_int 1                 #:廣播周期秒數(shù)
    authentication {           
        auth_type PASS
        auth_pass 2209
    }
    virtual_ipaddress {
        192.168.112.137/32 dev ens33  #:虛擬VIP地址旦棉,真實(shí)環(huán)境這里應(yīng)該是公網(wǎng)IP
 }

注意
1.配置時(shí)不要把主從IP弄混淆齿风。(我做的蠢事是,明明是配置兩個(gè)機(jī)器绑洛,結(jié)果在xshell中把一個(gè)IP設(shè)置為兩個(gè)登錄名救斑,結(jié)果就很尷尬,好似見鬼了)
2.做高可用時(shí)應(yīng)注意幾臺(tái)機(jī)器必須有一臺(tái)是MASTER真屯,否則會(huì)出現(xiàn)虛擬IP獲取不到的現(xiàn)象脸候。
3.配置啟動(dòng)時(shí),應(yīng)先啟動(dòng)master绑蔫,如果先啟動(dòng)backup运沦,backup不會(huì)有虛擬IP,只有master獲取到虛擬IP后vrrp的通訊才會(huì)開始配深,之后再關(guān)閉master携添,backup 就會(huì)獲取到虛擬IP了。

lvs(負(fù)載均衡配置)

負(fù)載均衡的配置主從配置是一樣的篓叶,本次事例配置lvs的DR模式烈掠,DR模式是互聯(lián)網(wǎng)使用最多的形式。
特點(diǎn)

當(dāng)一個(gè)client發(fā)送一個(gè)請(qǐng)求到VIP缸托,Director根據(jù)VIP選擇對(duì)應(yīng)的real-server的Pool左敌,根 據(jù)算法,在Pool中選擇一臺(tái)Real-server俐镐,然后將client的請(qǐng)求包發(fā)給選擇的Real-server矫限,最后選擇的Real-server 應(yīng) 答包直接傳給client ip。

Director端配置

1開啟端口轉(zhuǎn)發(fā)
[root@keepalived-master ~]# cat /etc/sysctl.conf 
      net.ipv4.ip_forward = 1
[root@keepalived-master ~]# sysctl -p
      net.ipv4.ip_forward = 1

keepalived.conf
virtual_server 192.168.112.137 80 { #:虛擬VIP地址 與 端口佩抹,DR架構(gòu)WEB端口要和虛擬端口監(jiān)聽一致叼风。否則將無法訪問
    delay_loop 6 #健康檢查時(shí)間間隔,單位是秒
    lb_algo rr   #調(diào)用算法為RR
    lb_kind DR   #調(diào)用架構(gòu)模式為DR
    persistence_timeout 50 #:同一IP 50秒內(nèi)的請(qǐng)求都發(fā)到同個(gè)real server
    protocol TCP  #使用TCP協(xié)議
    real_server 192.168.112.135 80 {
        weight 1 #:轉(zhuǎn)發(fā)伐值棍苹,越高調(diào)用的越多
        TCP_CHECK {
        connect_timeout 10   #:連接超時(shí)為10秒
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80  #連接端口為80无宿,要和上面的保持一致
       }
    }
查看配置是否成功
[root@keepalived-master ~]# ipvsadm -Ln --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
TCP  192.168.112.137:80                  0        0        0        0        0
  -> 192.168.112.135:80                  0        0        0        0        0

real-server端配置

配置腳本

[root@keepalived_backup ~]# cat realserver.sh 
#!/bin/bash
# Written by NetSeek
# description: Config realserver lo and apply noarp
WEB_VIP="192.168.112.137"      
. /etc/rc.d/init.d/functions
case "$1" in
start)
       ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP 
       /sbin/route add -host $WEB_VIP dev lo:0
####后面四句的配置是忽略arp的響應(yīng)和應(yīng)答,由于配置的虛擬IP在回環(huán)口廊勃,mac地址是不對(duì)的。如果配置為0將會(huì)報(bào)錯(cuò)经窖,轉(zhuǎn)發(fā)模式無法進(jìn)行坡垫。
       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
       sysctl -p >/dev/null 2>&1
       echo "RealServer Start OK"
       ;;
stop)
       ifconfig lo:0 down
       route del $WEB_VIP >/dev/null 2>&1
       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 "RealServer Stoped"
       ;;
status)
        # Status of LVS-DR real server.
        islothere=`/sbin/ifconfig lo:0 | grep $WEB_VIP`
        isrothere=`netstat -rn | grep "lo:0" | grep $web_VIP`
        if [ ! "$islothere" -o ! "isrothere" ]
        then
            echo "LVS-DR real server Stopped."
        else
            echo "LVS-DR Running."
        fi 
        ;;
*)
        # Invalid entry.
        echo "$0: Usage: $0 {start|status|stop}"
        exit 1
        ;;
esac

exit 0
啟動(dòng)腳本
[root@keepalived_backup ~]# . realserver.sh start

配置時(shí)的注意事項(xiàng)
1.lsof無法檢測(cè)配置是否成功,因?yàn)閐irector不會(huì)開啟響應(yīng)端口画侣。
2.director要直接能轉(zhuǎn)發(fā)到(直連)real-server冰悠,不要經(jīng)過路由器或其他服務(wù)器跳轉(zhuǎn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末配乱,一起剝皮案震驚了整個(gè)濱河市溉卓,隨后出現(xiàn)的幾起案子皮迟,更是在濱河造成了極大的恐慌,老刑警劉巖桑寨,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伏尼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡尉尾,警方通過查閱死者的電腦和手機(jī)爆阶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沙咏,“玉大人辨图,你說我怎么就攤上這事≈辏” “怎么了故河?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)吆豹。 經(jīng)常有香客問我鱼的,道長(zhǎng),這世上最難降的妖魔是什么瞻讽? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任鸳吸,我火速辦了婚禮,結(jié)果婚禮上速勇,老公的妹妹穿的比我還像新娘晌砾。我一直安慰自己,他們只是感情好烦磁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布养匈。 她就那樣靜靜地躺著,像睡著了一般都伪。 火紅的嫁衣襯著肌膚如雪呕乎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天陨晶,我揣著相機(jī)與錄音猬仁,去河邊找鬼。 笑死先誉,一個(gè)胖子當(dāng)著我的面吹牛湿刽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播褐耳,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼诈闺,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了铃芦?” 一聲冷哼從身側(cè)響起雅镊,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤襟雷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后仁烹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耸弄,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年晃危,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叙赚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡僚饭,死狀恐怖震叮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鳍鸵,我是刑警寧澤苇瓣,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站偿乖,受9級(jí)特大地震影響击罪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贪薪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一媳禁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧画切,春花似錦竣稽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至典格,卻和暖如春岛宦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背耍缴。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工砾肺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人防嗡。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓变汪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親本鸣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疫衩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容