bond模式詳解

bond模式詳解

1、什麼是bond?

CentOS7系統能夠將多個網絡接口綁定在一塊兒,來做爲單一的接口去給上層應用使用。算法

2、爲何使用bond?

bong能夠將多個網卡綁定到一塊兒,可讓兩個或多個接口做爲一個接口,同時提升帶寬,並提供網絡鏈路的冗餘,當有其中一塊網卡故障的時候,不會中斷服務器的業務。shell

3、bond模式配置

一、配置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,好比 0vim

### 建立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上面,能夠看下面的步驟負載均衡

二、將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虛擬網橋。code

###
# 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"

4、bond模式

一、模式0

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

二、模式1

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

三、模式2

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

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

四、模式3

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

五、模式4

模式4(mode=4,802.3ad):使用動態連接聚合策略,啓動時會建立一個聚合組,全部Slave網卡共享一樣的速率和雙工設定。

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

六、模式5

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

七、模式6

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

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

5、如何選擇bond 模式

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

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

1,靜態:

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

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

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

passive,被動協商模式:

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

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

轉載圖片

相關文章
相關標籤/搜索