通過bonding技術(shù)應(yīng)該如何實現(xiàn)網(wǎng)絡(luò)負載均衡及冗余-創(chuàng)新互聯(lián)

下文給大家?guī)硗ㄟ^bonding技術(shù)應(yīng)該如何實現(xiàn)網(wǎng)絡(luò)負載均衡及冗余,希望能夠給大家在實際運用中帶來一定的幫助,負載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書籍,今天我們就用創(chuàng)新互聯(lián)在行業(yè)內(nèi)累計的經(jīng)驗來做一個解答。

創(chuàng)新互聯(lián)主營茂名網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā),茂名h5微信小程序開發(fā)搭建,茂名網(wǎng)站營銷推廣歡迎茂名等地區(qū)企業(yè)咨詢

第二種模式:mod=1,即: (active-backup) Active-backup policy(主-備份策略) 特點:只有一個設(shè)備處于活動狀態(tài),當(dāng) 一個宕掉另一個馬上由備份轉(zhuǎn)換為主設(shè)備。mac地址是外部可見得,從外面看來,bond的MAC地址是唯一的,以避免switch(交換機)發(fā)生混亂。此模式只提供了容錯能力;由此可見此算法的優(yōu)點是可以提供高網(wǎng)絡(luò)連接的可用性,但是它的資源利用率較低,只有一個接口處于工作狀態(tài),在有 N 個網(wǎng)絡(luò)接口的情況下,資源利用率為1/N


通過bonding技術(shù)應(yīng)該如何實現(xiàn)網(wǎng)絡(luò)負載均衡及冗余

第三種模式:mod=2,即:(balance-xor) XOR policy(平衡策略)

特點:基于指定的傳輸HASH策略傳輸數(shù)據(jù)包。缺省的策略是:(源MAC地址 XOR 目標(biāo)MAC地址) % slave數(shù)量。其他的傳輸策略可以通過xmit_hash_policy選項指定,此模式提供負載平衡和容錯能力

第四種模式:mod=3,即:broadcast(廣播策略)

特點:在每個slave接口上傳輸每個數(shù)據(jù)包,此模式提供了容錯能力

第五種模式:mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 動態(tài)鏈接聚合)

特點:創(chuàng)建一個聚合組,它們共享同樣的速率和雙工設(shè)定。根據(jù)802.3ad規(guī)范將多個slave工作在同一個激活的聚合體下。

外 出流量的slave選舉是基于傳輸hash策略,該策略可以通過xmit_hash_policy選項從缺省的XOR策略改變到其他策略。需要注意的是, 并不是所有的傳輸策略都是802.3ad適應(yīng)的,尤其考慮到在802.3ad標(biāo)準(zhǔn)43.2.4章節(jié)提及的包亂序問題。不同的實現(xiàn)可能會有不同的適應(yīng)性。 必要條件:

條件1:ethtool支持獲取每個slave的速率和雙工設(shè)定

條件2:switch(交換機)支持IEEE 802.3ad Dynamic link aggregation

條件3:大多數(shù)switch(交換機)需要經(jīng)過特定配置才能支持802.3ad模式

第六種模式:mod=5,即:(balance-tlb) Adaptive transmit load balancing(適配器傳輸負載均衡)

特點:不需要任何特別的switch(交換機)支持的通道bonding。在每個slave上根據(jù)當(dāng)前的負載(根據(jù)速度計算)分配外出流量。如果正在接受數(shù)據(jù)的slave出故障了,另一個slave接管失敗的slave的MAC地址。 該模式的必要條件:ethtool支持獲取每個slave的速率

第七種模式:mod=6,即:(balance-alb) Adaptive load balancing(適配器適應(yīng)性負載均衡)

特點:該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡(receive load balance, rlb),而且不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協(xié)商實現(xiàn)的。bonding驅(qū)動截獲本機發(fā)送的ARP應(yīng)答,并把源硬件地址改寫為bond中某個slave的唯一硬件地址,從而使得不同的對端使用不同的硬件地址進行通信。

來 自云服務(wù)器端的接收流量也會被均衡。當(dāng)本機發(fā)送ARP請求時,bonding驅(qū)動把對端的IP信息從ARP包中復(fù)制并保存下來。當(dāng)ARP應(yīng)答從對端到達 時,

通過bonding技術(shù)應(yīng)該如何實現(xiàn)網(wǎng)絡(luò)負載均衡及冗余

bonding驅(qū)動把它的硬件地址提取出來,并發(fā)起一個ARP應(yīng)答給bond中的某個slave。使用ARP協(xié)商進行負載均衡的一個問題是:每次廣播 ARP請求時都會使用bond的硬件地址,因此對端學(xué)習(xí)到這個硬件地址后,接收流量將會全部劉翔當(dāng)前的slave。這個問題通過給所有的對端發(fā)送更新 (ARP應(yīng)答)來解決,應(yīng)答中包含他們獨一無二的硬件地址,從而導(dǎo)致流量重新分布。當(dāng)新的slave加入到bond中時,或者某個未激活的slave重新 激活時,接收流量也要重新分布。接收的負載被順序地分布(round robin)在bond中最高速的slave上

當(dāng)某個鏈路被重新接上,或者 一個新的slave加入到bond中,接收流量在所有當(dāng)前激活的slave中全部重新分配,通過使用指定的MAC地址給每個 client發(fā)起ARP應(yīng)答。下面介紹的updelay參數(shù)必須被設(shè)置為某個大于等于switch(交換機)轉(zhuǎn)發(fā)延時的值,從而保證發(fā)往對端的ARP應(yīng)答 不會被switch(交換機)阻截。 必要條件:

條件1:ethtool支持獲取每個slave的速率;

條件2:底層驅(qū)動支持設(shè)置 某個設(shè)備的硬件地址,從而使得總是有個

slave(curr_active_slave)使用bond的硬件地址,同時保證每個bond 中的slave都有一個唯一的硬件地址。如果curr_active_slave出故障,它的硬件地址將會被新選出來的 curr_active_slave接管

其實mod=6與mod=0的區(qū)別:mod=6,先把eth0流量占滿,再占

eth3,....ethX;而mod=0的話,會發(fā)現(xiàn)2個口的流量都很穩(wěn)定,基本一樣的帶寬。而mod=6,會發(fā)現(xiàn)第一個口流量很高,第2個口只占了小部分流量

2、bonding驅(qū)動選項

Bonding驅(qū)動的選項是通過在加載時指定參數(shù)來設(shè)定的??梢酝ㄟ^insmod或modprobe命令的命令行參數(shù)來指定,但通常在/etc/modprobe.conf配置文件中指定,或其他的配置文件中

下 面列出可用的bonding驅(qū)動參數(shù)。如果參數(shù)沒有指定,驅(qū)動會使用缺省參數(shù)。剛開始配置bond的時候,建議在一個終端窗口中運行"tail -f

/var/log/messages"來觀察bonding驅(qū)動的錯誤信息【譯注:/var/log/messages一般會打印內(nèi)核中的調(diào)試信息】

有些參數(shù)必須要正確的設(shè)定,比如miimon、arp_interval和arp_ip_target,否則在鏈接故障時會導(dǎo)致嚴(yán)重的網(wǎng)絡(luò)性能退化。很少的設(shè)備不支持miimon,因此沒有任何理由不使用它們。

有些選項不僅支持文本值的設(shè)定,出于兼容性的考慮,也支持?jǐn)?shù)值的設(shè)定,比如,"mode=802.3ad"和"mode=4"效果是一樣的

具體的參數(shù)列表: 1)primay

指 定哪個slave成為主設(shè)備(primary device),取值為字符串,如eth0,eth3等。只要指定的設(shè)備可用,它將一直是激活的slave。只有在主設(shè)備(primary device)斷線時才會切換設(shè)備。這在希望某個slave設(shè)備優(yōu)先使用的情形下很有用,比如,某個slave設(shè)備有更高的吞吐率

注意: primary選項只對active-backup模式有效

2)updelay

指定當(dāng)發(fā)現(xiàn)一個鏈路恢復(fù)時,在激活該鏈路之前的等待時間,以毫秒計算。該選項只對miimon鏈路偵聽有效。updelay應(yīng)該是miimon值的整數(shù)倍,如果不是,它將會被向下取整到最近的整數(shù)。缺省值為0

3)arp_interval

指 定ARP鏈路監(jiān)控頻率,單位是毫秒(ms)。如果APR監(jiān)控工作于以太兼容模式(模式0和模式2)下,需要把switch(交換機)配置為在所有鏈路上均 勻的分發(fā)網(wǎng)絡(luò)包。如果switch(交換機)被配置為以XOR方式分發(fā)網(wǎng)絡(luò)包,所有來自ARP目標(biāo)的應(yīng)答將會被同一個鏈路上的其他設(shè)備收到,這將會導(dǎo)致其 他設(shè)備的失敗。ARP監(jiān)控不應(yīng)該和miimon同時使用。設(shè)定為0將禁止ARP監(jiān)控。缺省值為0

4)arp_ip_target

指 定一組IP地址用于ARP監(jiān)控的目標(biāo),它只在arp_interval > 0時有效。這些IP地址是ARP請求發(fā)送的目標(biāo),用于判定到目標(biāo)地址的鏈路是否工作正常。該設(shè)定值為ddd.ddd.ddd.ddd格式。多個IP地址通 過逗號分隔。至少指定一個IP地址。最多可以指定16個IP地址。缺省值是沒有IP地址

5)downdelay

指定一個時間,用于在發(fā)現(xiàn)鏈路故障后,等待一段時間然后禁止一個slave,單位是毫秒(ms)。該選項只對miimon監(jiān)控有效。downdelay值應(yīng)該是miimon值的整數(shù)倍,否則它將會被取整到最接近的整數(shù)倍。缺省值為0

6)lacp_rate

指定在802.3ad模式下,我們希望的鏈接對端傳輸LACPDU包的速率??赡艿倪x項:

(1)slow 或者 0

請求對端每30s傳輸LACPDU (2)fast 或者 1

請求對端每1s傳輸LACPDU (3)缺省值是slow

7)max_bonds

為bonding驅(qū)動指定創(chuàng)建bonding設(shè)備的數(shù)量。比如:如果max_bonds為3,而且bonding驅(qū)動還沒有加載,那么bond0,bond1,bond2將會被創(chuàng)建。缺省值為1

6)miimon

指定MII鏈路監(jiān)控頻率,單位是毫秒(ms)。這將決定驅(qū)動檢查每個slave鏈路狀態(tài)頻率

0表示禁止MII鏈路監(jiān)控。100可以作為一個很好的初始參考值。下面的

use_carrier選項將會影響如果檢測鏈路狀態(tài)。更多的信息可以參考“高可靠性”章節(jié)。缺省值為0

8)mode

指定bonding的策略。缺省是balance-rr (round robin,循環(huán)賽)??蛇x的mode包括:0,1,2,3,4,5,6

3、bonding鏈路監(jiān)測方法

官方文檔里說有兩種針對鏈路的監(jiān)測方法(注意:這兩種監(jiān)測不能同時使用)

第一種:miimon(這種方法是最常見的,此方法使用系統(tǒng)的mii-tool命令進行監(jiān)測)

模塊加載設(shè)置(/etc/modprobe.conf): # Start of bonding configure alias bond0 bonding

options bond0 miimon=100 mode=1

注意:使用cat /proc/net/bonding/bond0,可查看Bonding Mode: load balancing (round-robin)狀態(tài)

options bond0 miimon=100 mode=0

注意:使用cat /proc/net/bonding/bond0,可查看Bonding Mode: load balancing ((active-backup))狀態(tài)

root@Web:~# mii-tool

eth0: negotiated 100baseTx-HD, link ok eth3: negotiated 100baseTx-HD, link ok

缺 點:這種方法,只能監(jiān)測交換機與該網(wǎng)卡之間的鏈路;如果它們之外的鏈路的地方斷了,而交換機本身沒有問題,也就是說你的網(wǎng)卡和交換機之間還是UP狀態(tài),它 是不會認(rèn)為網(wǎng)絡(luò)中斷,除非你的網(wǎng)卡是DOWN狀態(tài),它才會把鏈路轉(zhuǎn)到另一塊網(wǎng)卡上,就像是拔掉網(wǎng)線一樣,或者把交換機端口shutdown一樣

第二種:arp(這種方法比較實用,你可以把它看作是arp的ping(二層ping),但是可能會給網(wǎng)關(guān)造成一定的壓力)

模塊加載:

alias bond0 bonding

options bond0 arp_interval=100 arp_ip_target=192.168.1.1 mode=active-backup  primary=eth0 解析如下:

arp_interval=100,表示arp的檢測時間,等同于miimon=100的作用

arp_ip_target=192.168.1.1,表示arp檢測的目標(biāo)IP,必須是同網(wǎng)段的,最好就是網(wǎng)關(guān)

注意:如果使用arp來ping網(wǎng)關(guān)不通,那么在/proc/net/bonding/bond0里會一會down,一會up的

優(yōu)點:使用arp這種方法,如果交換機的上出現(xiàn)問題,網(wǎng)絡(luò)不通,它就會把鏈轉(zhuǎn)到另一塊網(wǎng)卡上,但是不管是哪種方法,在第一塊網(wǎng)卡出現(xiàn)問題,鏈路轉(zhuǎn)到

第二塊后,如果第一塊恢復(fù)正常,鏈路自己不會恢復(fù)的

永久取消綁定

rm -rf ifcfg-bond0 。

vim /etc/modprobe.d/dist.conf

刪除 alias bond0 bonding


options bond0 miimon=100 mode=1

service network restart

看了以上關(guān)于通過bonding技術(shù)應(yīng)該如何實現(xiàn)網(wǎng)絡(luò)負載均衡及冗余,如果大家還有什么地方需要了解的可以在創(chuàng)新互聯(lián)行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術(shù)工程師解答的,創(chuàng)新互聯(lián)技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗了。創(chuàng)新互聯(lián)官網(wǎng)鏈接www.yisu.com

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:通過bonding技術(shù)應(yīng)該如何實現(xiàn)網(wǎng)絡(luò)負載均衡及冗余-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://bm7419.com/article32/hdesc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器定制網(wǎng)站、自適應(yīng)網(wǎng)站、手機網(wǎng)站建設(shè)全網(wǎng)營銷推廣、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)