bond模式詳解


bond模式詳解

一、什么是bond?

CentOS7系統可以將多個網絡接口綁定在一起,來作為單一的接口去給上層應用使用。

二、為什么使用bond?

bong可以將多個網卡綁定到一起,可以讓兩個或多個接口作為一個接口,同時提高帶寬,並提供網絡鏈路的冗余,當有其中一塊網卡故障的時候,不會中斷服務器的業務。

三、bond模式配置

1、配置linux bond

a)、加載bonding模塊

# 對於CentOS系統默認會加載bonding模塊,我們也可以使用root用戶手動加載模塊**
# 臨時加載模塊,重啟失效。
modprobe --first-time bonding
# 永久加載模塊
modprobe bonding 

# 查看模塊信息
modinfo bonding

b)、配置bond

b-1)、創建bond接口,在 /etc/sysconfig/network-scripts/ 目錄中創建名為 ifcfg-bondN 的文
件,使用接口號碼替換 N,比如 0

### 創建bond接口
# vim /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0          //和文件名中的ifcfg-bond0中的bond0是一致的。
NAME=bond0            //設備名字,為了NetworkManage方便管理,和DEVICE保持一致
TYPE=Bond             //TYPE要設置成Bond,表示該接口為bond接口
BONDING_MASTER=yes       
IPADDR=192.168.1.1   
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=4 miion=100"  //bond選項,引號里面的內容,需要配置,這里配置了之后,就不需要配置

b-2)、修改物理接口的配置文件

### vim /etc/sysconfig/network-scripts/ifcfg-em1

DEVICE=em1
ONBOOT=yes
HOTPLUG=no
NM_CONTROLLED=no
PEERDNS=no
MASTER=bond0                                  // 
SLAVE=yes                                    //
BOOTPROTO=none
同樣的修改物理網卡,em2.

b-3)、驗證、查看bond

### 查看bond0的綁定結果
[root@control1 network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: em1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: em1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: b8:ca:3a:6c:49:68
Slave queue ID: 0

Slave Interface: em2
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: b8:ca:3a:6c:49:6a
Slave queue ID: 0

#######到這里,我們的bond可以直接用了,如果想將bond綁定到ovs上面,可以看下面的步驟########

2、將bond綁定到ovs上面(可選)

a)、前置條件

### 安裝openvswitch 
yum install -y openvswitch
systemctl enable openvswitch
systemctl start openvswitch

b)、配置網卡

b-1)、修改bond網卡

###
# vim /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
ONBOOT=yes
HOTPLUG=no
NM_CONTROLLED=no
PEERDNS=no
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
MACADDR="b8:ca:3a:6c:46:b0"
BONDING_OPTS="mode=802.3ad miimon=100"
MTU=9000

b-2)、創建br-ex,並定義br-ex為ovs虛擬網橋。

###
# vim /etc/sysconfig/network-scripts/ifcfg-br-ex

DEVICE=br-ex
ONBOOT=yes
HOTPLUG=no
NM_CONTROLLED=no
DEVICETYPE=ovs
TYPE=OVSBridge
MTU=9000
OVS_EXTRA="set bridge br-ex fail_mode=standalone"

四、bond模式

1、模式0

模式0(mode=0,round-robin):此模式使用輪詢策略,即順序的在每一個被bond的網卡上發送數據包,這種模式提供負載均衡和容錯能力。Bond0可以保證bond虛擬網卡和被bond的兩張或多張物理網卡擁有相同的MAC地址,其中bond虛擬網卡的MAC地址是其中一張物理網卡的MAC地址,而bond虛擬網卡的MAC地址是根據bond自己實現的一個算法來選擇的。
在bond0模式下,如果一個連接或者會話的數據包從不同的網口發出,途中再經過不同的鏈路,則在客戶端很有可能會出現數據包無序到達的現象,而無序到達的數據包一般需要重新發送,這樣網絡的吞吐量就會下降。同時,如果做bond0的兩張或多張網卡接到了同一交換機上,還需對其配置聚合模式。

2、模式1

​ 模式1(mode=1,active-backup):此模式使用主被策略(熱備)。在所有做bond1的物理網卡中,同一時刻只有一張網卡被激活,當且僅當活動網卡失效時才會激活其他的網卡。這種模式下做bond的兩張或多張網卡的MAC地址和Bond虛擬網卡的MAC地址相同,而Bond的MAC地址是Bond創建啟動后活動網卡(Active Slave)的MAC地址。這種模式要求主被網卡能快速的切換,即當主網卡出現故障后能迅速地切換至備用網卡。切換過程中,上層的應用幾乎不受影響,因為Bond的驅動程序會臨時接管上層應用的數據包,存放至數據緩沖區,等待備用網卡啟動后再發送出去。但是如果切換時間過長,則會引起緩沖區的溢出,導致丟包。

3、模式2

 模式2(mode=2,balance-xor):xor為異或運算(二進制位相異為1,相同為0)。此模式的默認選擇策略是:

選擇網卡的序號=(源MAC地址 XOR 目標MAC地址) % Slave網卡(從網卡)的數量。
其他的傳輸策略可以通過xmit_hash_policy配置項指定。

4、模式3

​ 模式3(mode=3,broadcast):使用廣播策略,數據包會被廣播至所有Slave網卡進行傳送。

5、模式4

模式4(mode=4,802.3ad):使用動態鏈接聚合策略,啟動時會創建一個聚合組,所有Slave網卡共享同樣的速率和雙工設定。

必要條件:
1.支持使用ethtool工具獲取每個slave網卡的速率和雙工設定;
2.需要交換機支持IEEE 802.3ad 動態鏈路聚合(Dynamic link aggregation)模式

6、模式5

模式5(mode=5,balance-tlbtransmitload balancing):基於每個slave網卡的速率選擇傳輸網卡。
必要條件:支持使用ethtool工具獲取每個slave網卡的速率。

7、模式6

模式6(mode=6,balance-alb,Adaptive load balancing):該模式包含了bond5模式,同時還支持對IPV4流量接收時的負載均衡策略(receive load balance, rlb),而且不需要任何交換機的支持。
必要條件:

  1. ethtool支持獲取每個slave的速率;
  2. 底層驅動支持設置某個網卡設備的硬件地址。

五、如何選擇bond 模式

配置bond 模式主要是為了和交換機做協商。一般交換機支持LACP鏈路聚合,交換機的LACP又分為靜態動態。下面是交換機的兩種聚合方式介紹:

####################################

1,靜態:

mode on,手動強制模式:
  不發送也不接收LACP協商報文,交換機物理端口被強制捆綁到etherchannel,數據包根據聚合口負載均衡模式在多個物理口上傳輸。一般默認的為基於包的負載均衡,即在多個網口之間輪詢發送數據包。使用這種聚合模式時,對端也必須是mode on,強制形成etherchannel。

########################################
2,動態:

active,主動協商模式:
  交換機聚合口主動發出LACPDU報文,與對端符合802.3ad規范的動態聚合口主動協商。
  一般推薦使用主動模式。

passive,被動協商模式:

  交換機聚合口只接收LACPDU報文,被動與對端符合802.3ad規范的動態聚合口進行協商。

問題:那么服務器的bond 和交換機的鏈路聚合是如何匹配的?

轉載圖片


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM