企业级WEB的负载均衡高可用之LVS+Keepalived(3)
②分別在二臺lvs機上啟動servcie keepalived start就可實現(xiàn)負載均衡及高可用集群;keepalived.conf內容說明如下:
●全局定義塊
1、email通知。作用:有故障,發(fā)郵件報警。
2、Lvs負載均衡器標識(lvs_id)。在一個網絡內,它應該是唯一的。
3、花括號“{}”。用來分隔定義塊,因此必須成對出現(xiàn)。如果寫漏了,keepalived運行時,不會得到預期的結果。由于定義塊內存在嵌套關系,因此很容易遺漏結尾處的花括號,這點要特別注意。
●VRRP定義塊
1、同步vrrp組vrrp_sync_group。作用:確定失敗切換(FailOver)包含的路由實例個數(shù)。即在有2個負載均衡器的場景,一旦某個負載均衡器失效,需要自動切換到另外一個負載均衡器的實例是哪些?
2、實例組group。至少包含一個vrrp實例。
3、Vrrp實例vrrp_instance。實例名出自實例組group所包含的那些名字。
(1)實例狀態(tài)state。只有MASTER和BACKUP兩種狀態(tài),并且需要大寫這些單詞。其中MASTER為工作狀態(tài),BACKUP為備用狀態(tài)。當MASTER所在的服務器失效時,BACKUP所在的系統(tǒng)會自動把它的狀態(tài)有BACKUP變換成MASTER;當失效的MASTER所在的系統(tǒng)恢復時,BACKUP從MASTER恢復到BACKUP狀態(tài)。
(2)通信接口interface。對外提供服務的網絡接口,如eth0,eth1.當前主流的服務器都有2個或2個以上的接口,在選擇服務接口時,一定要核實清楚。
(3)lvs_sync_daemon_inteface。負載均衡器之間的監(jiān)控接口,類似于HA HeartBeat的心跳線。但它的機制優(yōu)于Heartbeat,因為它沒有“裂腦”這個問題,它是以優(yōu)先級這個機制來規(guī)避這個麻煩的。在DR模式中,lvs_sync_daemon_inteface 與服務接口interface 使用同一個網絡接口。
(4)虛擬路由標識virtual_router_id。這個標識是一個數(shù)字,并且同一個vrrp實例使用唯一的標識。即同一個vrrp_stance,MASTER和BACKUP的virtual_router_id是一致的,同時在整個vrrp內是唯一的。
(5)優(yōu)先級priority。這是一個數(shù)字,數(shù)值愈大,優(yōu)先級越高。在同一個vrrp_instance里,MASTER 的優(yōu)先級高于BACKUP。若MASTER的priority值為150,那么BACKUP的priority只能是140或更小的數(shù)值。
(6)同步通知間隔advert_int。MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位為秒。
(7)驗證authentication。包含驗證類型和驗證密碼。類型主要有PASS、AH兩種,通常使用的類型為PASS,據(jù)說AH使用時有問題。驗證密碼為明文,同一vrrp實例MASTER與BACKUP 使用相同的密碼才能正常通信。
4、 虛擬ip地址virtual_ipaddress。可以有多個地址,每個地址占一行,不需要指定子網掩碼。注意:這個ip必須與我們在lvs客戶端設定的vip相一致!
●虛擬服務器virtual_server定義塊
虛擬服務器定義是keepalived框架最重要的項目了,是keepalived.conf必不可少的部分。
1、虛擬服務器virtual_server。這個ip來自于vrrp定義塊的第“4”步,后面一個空格,然后加上端口號。定義一個vip,可以實現(xiàn)多個tcp端口的負載均衡功能。
(1)delay_loop。健康檢查時間間隔,單位是秒。
(2)lb_algo。負載均衡調度算法,互聯(lián)網應用常使用wlc或rr。
(3)lb_kind。負載均衡轉發(fā)規(guī)則。一般包括DR、NAT、TUN3種,在我的方案中,都使用DR的方式。
(4)persistence_timeout。會話保持時間,單位是秒。這個選項對動態(tài)網站很有用處:當用戶從遠程用帳號進行登陸網站時,有了這個會話保持功能,就能把用戶的請求轉發(fā)給同一個應用服務器。在這里,我們來做一個假設,假定現(xiàn)在有一個lvs 環(huán)境,使用DR轉發(fā)模式,真實服務器有3個,負載均衡器不啟用會話保持功能。當用戶第一次訪問的時候,他的訪問請求被負載均衡器轉給某個真實服務器,這樣他看到一個登陸頁面,第一次訪問完畢;接著他在登陸框填寫用戶名和密碼,然后提交;這時候,問題就可能出現(xiàn)了---登陸不能成功。因為沒有會話保持,負載均衡器可能會把第2次的請求轉發(fā)到其他的服務器。
(5)轉發(fā)協(xié)議protocol。一般有tcp和udp兩種。實話說,我還沒嘗試過udp協(xié)議類的轉發(fā)。
2、真實服務器real_server,也即服務器池。Real_server的值包括ip地址和端口號,多個連續(xù)的真實ip。
(1)權重weight,權重值是一個數(shù)字,數(shù)值越大,權重越高。使用不同的權重值的目的在于為不同性能的機器分配不同的負載,性能較好的機器,負載分擔大些;反之,性能差的機器,則分擔較少的負載,這樣就可以合理的利用不同性能的機器資源。
(2)Tcp檢查tcp_check。
附注:以上就是lvs+keepalived的基本配置步驟,有興趣的同學建議可做下lvs的1+2的基本架構實驗,即不需要keepalived,采用單lvs的方式,其lvs_dr腳本如下
#vim?/usr/local/sbin/lvs-dr.sh ?
???????#!/bin/bash ?
???????#website?director?vip. ?
???????SNS_VIP=192.168.1.188 ?
???????SNS_RIP1=192.168.1.104 ?
???????SNS_RIP2=192.168.1.105 ?
??????./etc/rc.d/init.d/functions ?
?????????logger?$0?called?with?$1 ?
?????????case?"$1"?in ?
?????????start) ?
?????????#?set?squid?vip ?
?????????/sbin/ipvsadm?--set?30?5?60 ?
?????????/sbin/ifconfig?eth0:0?$SNS_VIP?broadcast?$SNS_VIP?netmask?255.255.255.255?broadcast?$SNS_VIP?up ?
?????????/sbin/route?add?-host?$SNS_VIP?dev?eth0:0 ?
?????????/sbin/ipvsadm?-A?-t?$SNS_VIP:80?-s?wrr?-p?3 ?
?????????/sbin/ipvsadm?-a?-t?$SNS_VIP:80?-r?$SNS_RIP1:80?-g?-w?1 ?
?????????/sbin/ipvsadm?-a?-t?$SNS_VIP:80?-r?$SNS_RIP2:80?-g?-w?1 ?
?????????touch?/var/lock/subsys/ipvsadm?>/dev/null?2>&1 ?
????????;; ?
stop) ?
?????????/sbin/ipvsadm?-C ?
?????????/sbin/ipvsadm?-Z ?
?????????ifconfig?eth0:0?down ?
?????????route?del?$SNS_VIP ?
?????????rm?-rf?/var/lock/subsys/ipvsadm?>/dev/null?2>&1 ?
?????????echo?"ipvsadm?stoped" ?
????????;; ?
status) ?
?????????if?[?!?-e?/var/lock/subsys/ipvsadm?];then ?
?????????????????echo?"ipvsadm?stoped" ?
?????????????????exit?1 ?
?????????else ?
?????????????????echo?"ipvsadm?OK" ?
?????????fi ?
???????;; ?
*) ?
?????????echo?"Usage:?$0?{start|stop|status}" ?
?????????exit?1 ?
esac ?
exit?0?
最新版更新內容如下:
①每臺服務器都有二塊網卡,分別連接內外網;后端的mysql數(shù)據(jù)庫與web連接采用內網方式,整個網絡環(huán)境采用內網;
②增加了keepalivedyiyyy .conf語法內容;
③刪除了lvs.sh腳本內容,直接讓keepalived內容更直接明了,新增加了單lvs的配置腳本lvs_dr.sh;
④lvs主從機上的keepalived.conf文件我直接從生產服務器上download下來了,可方便大家使用。
轉載于:https://blog.51cto.com/changjianglinux/1862127
總結
以上是生活随笔為你收集整理的企业级WEB的负载均衡高可用之LVS+Keepalived(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端倒计时不准的问题
- 下一篇: sqlMapConfig.xml配置文件