将多個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 ***
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 的設定就基本結束了
<a href="http://blog.51cto.com/search/result?q=linux%E7%BD%91%E7%BB%9C" target="_blank">本文轉自 80後小菜鳥 51CTO部落格,原文連結:http://blog.51cto.com/zhangxinqi/1930456</a>