天天看點

 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 模式

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

1,靜态:

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

########################################
2,動态:

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

passive,被動協商模式:

  交換機聚合口隻接收LACPDU封包,被動與對端符合802.3ad規範的動态聚合口進行協商。
           
上一篇: 網卡bond實戰
下一篇: 網卡綁定bond