首頁 > 軟體

Linux多網絡卡系結聚合-bond技術

2020-06-16 17:13:40

將多個Linux網路埠系結為一個,可以提升網路的效能,比如對於備份伺服器,需要在一個晚上備份幾個T的資料,如果使用單個的千兆網口將會是很嚴重的瓶頸。其它的應用,比如ftp伺服器,高負載的下載網站, 都有類似的問題。因此使用Linux teaming或bond來系結多個網絡卡作為一個邏輯網口,設定單個的IP地址,會大幅提升伺服器的網路吞吐(I/O)。

Linux的多網絡卡系結功能使用的是核心中的"bonding"模組,關於此模組可以參考Linux Ethernet Bonding Driver文件, 但是目前發布各個Linux版本核心均已包含了此模組,大多數情況下不需要重新編譯核心。 Linux 的 bonding 驅動提供了系結/整合(bond)多個網絡卡為一個虛擬邏輯網口的功能。並請注意繫結的網口(bonded)有多種工作模式; 一般來說,分為 熱後備(hot standby) 和 負載均衡(load balancing). 在RedHat/Fedora和其它類Redhat Linux中是比較容易設定的。

1.建立bond0組態檔
vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0  --物理裝置名字
IPADDR=192.168.1.1 --IP地址
NETMASK=255.255.255.0 --子網掩碼
NETWORK=192.168.1.0 --所屬子網
BROADCAST=192.168.1.255 --廣播地址
GATEWAY=192.168.1.254 --閘道器
ONBOOT=yes --隨機啟動
BOOTPROTO=none
USERCTL=no --是否允許非root使用者控制該裝置

2.修改被繫結的eth0和eth1的組態檔
vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0    ***
SLAVE=yes    ***
BOOTPROTO=none
HWADDR=00:15:17:CC:FC:35

eth1的組態檔與之相同,只是device的值改為eth1即可。

3.裝在bond模組驅動
編輯/etc/modprobe.conf或者/etc/modules.conf檔案,加入如下內容,使系統啟動時載入bonding模組驅動

alias bond0 bonding
option bond0 miimon=100 mode=1

說明:
1).miimon=100 用來進行鏈路監測的。即每100ms監測一次鏈路狀態。bonding只監測主機與交換機之間鏈路。如果交換機出去的鏈路出問題而本身沒有問題,那麼bonding認為鏈路沒有問題而繼續使用。
2).mode=1 表示提供冗餘功能。除此之外還可以為0、2、3,共四種模式。0表示負載均衡

4.在/etc/rc.d/rc.local檔案中加入如下語句,使得系統啟動自動執行

ifenslave bond0 eth0 eth1
route add -net 192.168.1.254 netmask 255.255.255.0  bond0  #如有需要才加該路由

5.檢測、驗證設定
首先執行命令裝載bonding模組:modprobe bonding
重新啟動網路服務,並確認bond0正確啟動:servicenetwork restart
確認裝置已經正確載入:less /proc/net/bonding/bond0
列出所有網口:ifconfig
 
至此,bond 的設定就基本結束了

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-05/144335.htm


IT145.com E-mail:sddin#qq.com