日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

集群服务负载均衡------LVS

發(fā)布時(shí)間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集群服务负载均衡------LVS 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

個(gè)人的理解,以一種通俗易懂的方式講述出來(lái),如果有哪些地方說(shuō)的不正確的話,希望大家留言指出來(lái)。筆者會(huì)非是常的感謝!

Cluster服務(wù)器集群,直接理解為一些單一的服務(wù)器的集合通過(guò)某種方式組合起來(lái),為客戶端提供服務(wù)。重要的是在外部看來(lái)它們僅僅是一個(gè)系統(tǒng)。

關(guān)于為什么要建立服務(wù)集群這個(gè)問(wèn)題,這里可以用時(shí)下最火的淘寶交易平臺(tái)為例,淘寶網(wǎng)8月份的商品成交總額是1.2億人名幣,會(huì)員數(shù)量達(dá)到220萬(wàn),網(wǎng)頁(yè)瀏覽量為5000萬(wàn),這個(gè)還是2004年公布的保守?cái)?shù)據(jù),現(xiàn)在那就不好說(shuō)了是吧,就說(shuō)當(dāng)是的這個(gè)網(wǎng)頁(yè)瀏覽量說(shuō)5000萬(wàn)的瀏覽量,如果是由單一的服務(wù)器提供服務(wù),就是這個(gè)服務(wù)器的性能再好,面對(duì)如此高的訪問(wèn)量,在響應(yīng)客戶端的時(shí)候,你能想象嗎?這么多的請(qǐng)求都要讓它自己來(lái)處理,用不了多久,服務(wù)器就會(huì)累趴下吧!它一旦趴下(down機(jī))你能想象嗎?元方你怎么看?

綜上總結(jié)服務(wù)器面臨三個(gè)問(wèn)題:

          1、 并發(fā)請(qǐng)求數(shù)量大,這就要求服務(wù)器容量要足夠大

          2、 在線訪問(wèn)量大,要求服務(wù)器不能中斷

          3、 總體的訪問(wèn)量龐大,禪理性能要足夠的強(qiáng)

?

面對(duì)這些問(wèn)題我們以往采取的方式是Scale up:(向上擴(kuò)展),即是將當(dāng)前使用的服務(wù)器,用比它性能更好的服務(wù)器替換掉(新機(jī)替換掉老機(jī))。服務(wù)器單一管理起來(lái)非常方便,但是,要知道換上的新機(jī)比老機(jī)提升了的性能和在這個(gè)新機(jī)上的花銷可不是成比增長(zhǎng)的,并且還會(huì)造成對(duì)老機(jī)的浪費(fèi)。所以就有了Scale out(向外擴(kuò)展)即是以增加機(jī)器的方式來(lái)提升服務(wù)器的性能,這其實(shí)就是Cluster“集群”。

針對(duì)以上的三個(gè)問(wèn)題,按服務(wù)集群的功能能將其分為三個(gè)類別: 1、負(fù)載均衡集群(LB,load Balance Cluster) 2、高可用集群(HA,High Available Cluster) 3、高性能集群(HP,High Performance Cluster) 負(fù)載均衡集群在Linux中的軟件實(shí)現(xiàn)方式:LVS 高可用集群在Linux中的軟件實(shí)現(xiàn)方式:heartbeat corosync 高性能集群在Linux中的軟件實(shí)現(xiàn)方式:hadoop 首先我們來(lái)說(shuō)說(shuō)下先負(fù)載均衡集群,通過(guò)硬件實(shí)現(xiàn)的方式,在硬件技術(shù)上傳到常用到的調(diào)度器有F5的BIG IP可處理的并發(fā)請(qǐng)求數(shù)量高達(dá)1000萬(wàn),IBM的A10并發(fā)請(qǐng)求數(shù)量可達(dá)600萬(wàn),Citrix,Netscaler可處理并發(fā)請(qǐng)求數(shù)量為500萬(wàn),都可以滿足我們的需求,但是都太貴了,而我們的軟件實(shí)現(xiàn)方式很好的彌補(bǔ)了這個(gè)缺憾哈!而其中最具代表性之一的解決方案即是淘寶的章文嵩博士創(chuàng)立的LVS。 -----------------------------------LVS框架圖-------------------------------------------

LVS(Linux Vitual Server)---虛擬服務(wù)器,在工作當(dāng)中它是作為一個(gè)前段的Director(調(diào)度器)工作的,Director它本身不提供任何的服務(wù),只是將接收到的請(qǐng)求轉(zhuǎn)發(fā)給后端的Real Seerver處理,然后在響應(yīng)給客戶端。所以我們也稱LVS為“4 layer switch/route"。LVS本身的兩個(gè)基本的組件就是:ipvs和ipvsadm。而ipvs是一個(gè)工作在內(nèi)核當(dāng)中的,它其實(shí)就是相當(dāng)于做成了netfilter框架的一個(gè)模塊。就像netfilter當(dāng)中有filter表、net表、mangle表,而你現(xiàn)在又加入了Ipvs表,主要是用于讓定義好的規(guī)則生效,ipvsadm是工作在用戶空間,用來(lái)定義LVS的轉(zhuǎn)發(fā)規(guī)則。LVS是工作在INPUT鏈上的。 -------------------------------------轉(zhuǎn)發(fā)過(guò)程圖----------------------------------------

Director(調(diào)度器)即是負(fù)載均衡器,一個(gè)合格的Director要滿足以下的要求。 1、考慮服務(wù)器負(fù)載能力通過(guò)某種調(diào)度方法,調(diào)度后端服務(wù)器。 2、考慮后端服務(wù)器是否正常工作,這也是需要一種機(jī)制來(lái)完成,我們稱其為后端主機(jī)健康狀態(tài)測(cè)。 3、考慮Director本身如果出故障,整個(gè)服務(wù)癱瘓的問(wèn)題。這里不得不用到高可用集群。即在添加一個(gè)Director. 4、為多臺(tái)的Real Server提供一個(gè)共享存儲(chǔ)。說(shuō)到共享存儲(chǔ)就不得不說(shuō)到DAS、NAS、SAN。 DAS:直接輔加存儲(chǔ),即直接連接到主機(jī)總線上的存儲(chǔ)設(shè)備。優(yōu)點(diǎn)在于存儲(chǔ)容量擴(kuò)展方便,實(shí)施起來(lái)很簡(jiǎn)單,但是這種方式太過(guò)于限制,它必須要和服務(wù)器在同一個(gè)機(jī)架上。 NAS:網(wǎng)絡(luò)輔加存儲(chǔ),雙方共享文件服務(wù)器,只要連接到NAS上就可以實(shí)現(xiàn)共享存儲(chǔ)。并且Real Server同時(shí)寫入的時(shí)候不會(huì)崩潰,因?yàn)樗俏募到y(tǒng)級(jí)別的,但是DNS最多只能同時(shí)為十臺(tái)服務(wù)器提供共享存儲(chǔ)。 SAN:存儲(chǔ)區(qū)域網(wǎng)絡(luò), FC SAN光驅(qū)動(dòng) IP SAN(SSISC) 每個(gè)Real Sever都有RIP VIP? 每個(gè)Drector都有DIP VIP LVS有三種轉(zhuǎn)發(fā)模型:NAT模型 DR模型 TUN模型,其中DR模型應(yīng)用最廣。 NAT模型:網(wǎng)絡(luò)地址轉(zhuǎn)換模型, NAT模型的特點(diǎn): 1、Diretor和Real Server(RS)必須在同一個(gè)子網(wǎng)中。 2、RIP通常使用私有地址,僅限于本地通信 3、Director工作在Clients和RS中間,負(fù)責(zé)處理進(jìn)出的全部報(bào)文 4、RS網(wǎng)關(guān)要指向DIP 5、可以實(shí)現(xiàn)端口轉(zhuǎn)換(映射) 6、RS可以是任何操作系統(tǒng) 7、Director可能成為性能瓶頸,所以不適用于教大規(guī)模的負(fù)載均衡場(chǎng)景 DR模型:直接路由模型 DR模型的特點(diǎn): 1、RS跟Director必須在同一物理網(wǎng)上(即中間不能隔路由設(shè)備)。 2、RIP可以使用公網(wǎng)地址 3、Director僅處理請(qǐng)求報(bào)文 4、RS的網(wǎng)關(guān)不能指向DIP 5、不能使用端口映射 6、大多數(shù)操作系統(tǒng)可以用于RS 7、一般DR模型的Director能處理比NAT模型多的多的請(qǐng)求 DR模型詳解: CIP向VIP發(fā)出請(qǐng)求,CIP經(jīng)由路由設(shè)備,到達(dá)局域網(wǎng),它的目的是想和Director的VIP通信,但是它不知道VIP的MAC,在局域網(wǎng)內(nèi)部通訊看的是MAC地址,所以它要發(fā)廣播,所有收到廣播包的都會(huì)回應(yīng)此廣播,此時(shí)就會(huì)產(chǎn)生問(wèn)題了,RS1、RS2也會(huì)回應(yīng)因?yàn)樗麄円灿型瑯拥腣IP啊,那交換機(jī)怎么知道,哪個(gè)是Director的MAC呢?所以我們這里必須要控制RS1和RS2不回應(yīng)此廣播包,這就不得不提到兩個(gè)內(nèi)核參數(shù),arp_ignor和arp_annouce,在RS1和RS2上均對(duì)這兩個(gè)參數(shù)給與定義,則RS1和RS2就不會(huì)回應(yīng)由交換發(fā)出的這個(gè)找VIP的對(duì)應(yīng)的MAC的廣播包了。此時(shí)數(shù)據(jù)包就可以到達(dá)Director了,Director通過(guò)某種調(diào)度方法計(jì)算發(fā)現(xiàn)RS1符合這個(gè)要求,所以它要把這個(gè)請(qǐng)求包交給RS1來(lái)處理,但是它也不知道RS1的MAC啊,所以它也要發(fā)起廣播消息,此時(shí)Director發(fā)起的廣播是在其內(nèi)部發(fā)起的,每個(gè)RS的這個(gè)私有的地址都是不一樣的。所以當(dāng)RS1收到這個(gè)廣播的時(shí)候發(fā)現(xiàn)時(shí)找它的,它就會(huì)回應(yīng),則此時(shí)Director就得到了RS1的MAC,它將請(qǐng)求報(bào)文的目標(biāo)MAC地址換成RS1的MAC地址,然后在將這個(gè)請(qǐng)求包返回給交換機(jī),此時(shí)交換機(jī)就認(rèn)為這個(gè)請(qǐng)求是發(fā)給RS1的,它就會(huì)將其發(fā)給RS1,RS1收到請(qǐng)求包,直接用自己的VIP給予回應(yīng),不再經(jīng)由Director.所以這就需要在RS1中定義一條路由"route add -host VIP dev lo:0"明確告知RS1,只要是請(qǐng)求VIP的,我就用lo:0這個(gè)上面的VIP來(lái)給予回應(yīng)。 注意:1、RS和DR都是單網(wǎng)卡的哦,每個(gè)RS的VIP是設(shè)置在lo:0上的,這個(gè)lo:0是虛擬的哈。DR的VIP是在eth0:0上面配置的。 2、由DR發(fā)出的廣播包不被RS屏蔽掉的原因是因?yàn)樗菑V播的RIP這是他們的私有網(wǎng)絡(luò)的地址,剛剛設(shè)置的參數(shù)arp_ignor和arp_annouce,只是針對(duì)VIP的哈

TUN模型:隧道模型 TUN模型的特點(diǎn) 1、RS跟Director不必在同一個(gè)物理網(wǎng)絡(luò)中 2、RIP一定不能使用私有地址 3、多數(shù)情況下Director僅處理請(qǐng)求報(bào)文 4、正常情況下響應(yīng)報(bào)文不能經(jīng)過(guò)Director 5、不能使用端口映射 6、僅允許支持隧道協(xié)議的操作系統(tǒng)用于RS ___________________________________________________________________ LVS的十種調(diào)度方法,分為靜態(tài)和動(dòng)態(tài)兩類。 靜態(tài)四種;僅根據(jù)算法本身調(diào)度,不關(guān)心RS上當(dāng)前的連接狀態(tài)。 1、RR 根據(jù)規(guī)則依次論調(diào),不考慮RS的性能。輪到誰(shuí)就轉(zhuǎn)發(fā)給誰(shuí)。 2、WRR 加權(quán)輪詢,加入了weight(權(quán)重),可以根據(jù)RS的性能為其設(shè)置權(quán)重值,權(quán)重越大功能越強(qiáng),但是不能發(fā)硬當(dāng)前的服務(wù)器的運(yùn)行的情況。 3、DH 目標(biāo)地址hash,適用于前段是一個(gè)drector后端是幾個(gè)緩存服務(wù)器,當(dāng)客戶端第一次訪問(wèn)到的是RS1的時(shí)候,DH這種算法保證,在客戶端刷新后還是訪問(wèn)的是RS1。 4、SH 源地址hash,用于保證響應(yīng)的報(bào)文和請(qǐng)求的報(bào)文是同一個(gè)路徑。 動(dòng)態(tài)六種:要將RS得連接狀態(tài)計(jì)入調(diào)度考量標(biāo)準(zhǔn)。 1、LC least connection,當(dāng)一個(gè)用戶請(qǐng)求過(guò)來(lái)的時(shí)候,就計(jì)算下哪臺(tái)RS的鏈接誰(shuí)最小,那么這臺(tái)RS就獲得了下次響應(yīng)客戶端請(qǐng)求的機(jī)會(huì),計(jì)算的方法Overhead=active*256+inactive,如果兩者的結(jié)果是相同的則從LVS中的規(guī)則依次往下選擇RS。這種算法也是不考慮服務(wù)器的性能的。 2、WLC 這個(gè)就是加了權(quán)重的LC,考慮了RS的性能,即是性能好的就給的權(quán)重值大一些,不好的給的權(quán)重值小一些。缺點(diǎn)就是如果Overhead相同,則會(huì)按規(guī)則表中的順序,由上而下選擇RS,Overhead=(active*256+inactive)/weight 3、SED 就是對(duì)WLC的情況的補(bǔ)充,Overhead=(active+1)*256/weight,加一,就是為了讓其能夠比較出大小。 4、NQ never queue 基本和SED相同,避免了SED當(dāng)中的性能差的服務(wù)器長(zhǎng)時(shí)間被空閑的弊端,它是第一個(gè)請(qǐng)求給性能好的服務(wù)器,第二個(gè)請(qǐng)求一定是給的空閑服務(wù)器不論它的性能的好與壞。以后還是會(huì)把請(qǐng)求給性能好的服務(wù)器 5、LBLC 它就是動(dòng)態(tài)DH和LC的組合,適用于cache群,對(duì)于從來(lái)沒(méi)有來(lái)過(guò)的那些新的請(qǐng)求會(huì)分給當(dāng)前連接數(shù)較少的那臺(tái)服務(wù)器。 6、LBLCR 帶有復(fù)制功能的LBLC,它的適用場(chǎng)景這里舉例說(shuō)明一下,比如說(shuō)現(xiàn)在又RS1和RS2,第一次訪問(wèn)RS1的5個(gè)請(qǐng)求第二次又來(lái)了,理所應(yīng)到Director將會(huì)將其交給RS1,而此時(shí)在RS2是非常閑的,所以此時(shí)最好的處理方法就是可以將后來(lái)的這5個(gè)請(qǐng)求分別交給RS1和RS2,所以此時(shí)就需要把客戶端第一次請(qǐng)求的資源復(fù)制下來(lái)。(特殊情況) 活動(dòng)鏈接active和非活動(dòng)鏈接inactive小解: 這里以http為例,http本身是一種無(wú)狀態(tài)的鏈接,當(dāng)客戶端請(qǐng)求訪問(wèn)的時(shí)候,有個(gè)等待響應(yīng)過(guò)程,這個(gè)時(shí)段可以稱其為活動(dòng)鏈接active狀態(tài).當(dāng)服務(wù)器端給與響應(yīng)后,請(qǐng)求因?yàn)閗eepalive而并未斷開(kāi),則此段時(shí)間的狀態(tài)就是非活動(dòng)鏈接狀態(tài)。 無(wú)連接狀態(tài)即是無(wú)追蹤 cookie即是個(gè)標(biāo)識(shí)用于追蹤用戶訪問(wèn)過(guò)哪個(gè)資源,追蹤用戶的身份,這種單一的cookie是不安全的 session結(jié)合cookie或者url完成用戶跟蹤,客戶端的cookie只需要保留session id敏感信息保留在服務(wù)器端. 持久連接是靠director上的持久模板來(lái)完成的,模板上的條目用hash保存. 防火墻標(biāo)記服務(wù),將兩種服務(wù)標(biāo)記成一種服務(wù),用mangle給某數(shù)據(jù)報(bào)文一個(gè)標(biāo)記MARK,但是不具有永久性,所以需要使用持久連接 LVS中的持久連接類型: PCC 來(lái)自同一個(gè)用戶端的所有的集群服務(wù)請(qǐng)求通通轉(zhuǎn)發(fā)給后端的某個(gè)特定的Real Server PPC 將某客戶端的特定的服務(wù)請(qǐng)求通過(guò)某種算法,轉(zhuǎn)發(fā)給后端的某個(gè)特定的Real Server PFWM 將兩種服務(wù)綁定,即這兩種服務(wù)都是通過(guò)后端所指定的某個(gè)Real Sever響應(yīng)即是將多個(gè)PPC和并起來(lái),但是并未達(dá)到PCC標(biāo)準(zhǔn) -p定義持久連接超時(shí)時(shí)間的,默認(rèn)是5分鐘 ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-O] [-M netmask] ipvsadm -Ln --persistent-conn這是用于查看長(zhǎng)連接的超時(shí)時(shí)常的 【管理集群服務(wù)】 1、增加集群服務(wù) ipvsadm -A|E -t|u|f service-address [-s scheduler] -s sheduler 指定調(diào)度方法,如果不指定的話默認(rèn)是WLC -t|u|f 分別表示tcp|udp|firemark 2、刪除集群服務(wù) ipvsadm -D -t|u|f ?service-address 【管理集群服務(wù)中的RS】? 1、增加集群服務(wù)的RS ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m]? [-w weight]? a|e 其中a表示的是增加 e表示修改 [-g|i|m] -g表示DR模型(gatewaying) -i表示的TUN隧道模型(ipip) m表示的是nat模型(masquerading) ,如果默認(rèn)不指定的話是DR模型. 2、刪除集群服務(wù)當(dāng)中的RS ipvsadm -d -t|u|f service-address -r server-address 【查看服務(wù)信息(規(guī)則)】 ipvsadm -L|l -n 不進(jìn)行反解 -c 查看連接個(gè)數(shù) --stats 查看統(tǒng)計(jì)總數(shù) --rate 查看連接速率 ipbsadm -Z 清空計(jì)數(shù)器 【清空所有定義的規(guī)則】 ipvsadm -C 【保存集群服務(wù)的規(guī)則】 ipvsadm -R = ipvsadm-restore ipvsadm -S = ipvsadm-save service ipvsadm save 高可用集群(High Availabitity Cluster) 高可用集群的軟件實(shí)現(xiàn)方式是:heartbeat corosycn 在SAN共享存儲(chǔ)中用到了HA Cluster,HA的實(shí)現(xiàn)即是相當(dāng)于做一個(gè)冗余 高可用集群通常會(huì)采用可用性來(lái)衡量基實(shí)際效果。計(jì)算機(jī)系統(tǒng)的可用性是通過(guò)平均無(wú)故障時(shí)間(MTTF)及平均維修時(shí)間(MTTR)來(lái)度量。

?

轉(zhuǎn)載于:https://www.cnblogs.com/deamon/archive/2012/11/27/2791507.html

總結(jié)

以上是生活随笔為你收集整理的集群服务负载均衡------LVS的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。