服務器網卡bonding配置淺讀
最近看了下服務器網卡bonding驅動的文檔,網絡比較關心,和大家分享下,文檔參見Linux內核目錄($KERNEL_DIR/Documentation/networking/bonding.txt)
我看的是內核linux-2.6.32.60的,源碼和文檔可以去www.kernel.org下載。
網卡綁定支持7中模式,使用mode選項來配置,具體如下:
balance-rr or 0
這是默認配置,即服務器開啓bond,但是不配mode選項的話,默認就是mode 0,也就是輪詢,我的理解是,從網絡上看,服務器2塊網卡使用同一個MAC地址,
每一個miimon內,同時只有一塊網卡在工作,也就是說從交換機上看,這個MAC一會在這個端口,一會在另一個端口,但同時只能有一個端口存在流量,所以瓶頸
是1塊網卡的極限。而且該mode如果交換機不配port-channel的話,會出現嚴重的MAC地址抖動。
active-backup or 1
主備模式,也是線上用的比較多的一種,服務器端只會有一塊網卡是活動狀態,只有當activce slave網卡down掉後,另外的slave纔會切換到active狀態,也
就是說交換機無需任何特殊配置即可和服務器正常通信。
balance-xor or 2
異或模式,傳輸路線會根據異或的結果來選擇,默認是拿源MAC和目的MAC做異或操作來決定走哪塊網卡,通過xmit_hash_policy參數來修改策略。
broadcast or 3
廣播模式,在所有網卡上接受所有的數據包,只提供冗餘,不提供負載均衡。
802.3ad or 4
LACP模式,也是線上用的最多的一種,雙網卡使用一個MAC和IP同時工作,網卡性能是所有slave之和。需要支持ethtool獲取所有slave的speed和duplex;
交換機支持802.3ad;
balance-tlb or 5
不需要交換機特殊支持,bond程序會選擇一塊網卡作爲active網卡收包,而出方向則是根據slave上的traffic來的;如果bond選擇的slavedown掉了,會有另外
的slave會接管之前失效的MAC地址來收發包。總之就是單進雙出。
balance-alb or 6
在balance-tlb的基礎,增加了入方向rlb,字面上看就是 receive load balance,同樣不需要交換機配LACP,但是需要服務器網卡支持ethtool獲取speed和duplex,
且網卡支持設置網卡硬件地址,和mode 4一樣,需要配置updelay參數,文檔原話:“The updelay parameter (detailed below) mustbe set to a value equal or
greater than the switch'sforwarding delay so that the ARP Replies sent to the peers will not be blocked by the switch.”
mode 802.3ad線上用的比較多,就對802.3ad中可以設置的一些參數做一下介紹:
1、ad_select
該參數制定鏈路聚合策略,有以下幾種:
stable or 0
按照最大帶寬去聚合;
在所有slave down的情況,或者active聚合組沒有slave的情況下會重新聚合;
bandwidth or 1
和stable一樣,只是重新聚合的條件不一樣;
一個slave的加入或者刪除會重新聚合;
任何slave的狀態改變會重新聚合;
任何slave的802.3ad協議狀態的改變會重新聚合;
bond狀態改變也會重新聚合;
count or 2
按照端口數量最大來聚合,個人最這個最多端口和最大帶寬理解還不是太懂,具體要看實驗的表現;
重新聚合發生在“bandwidth”參數的設置;
2、lacp_rate
該參數指定LACPDU報文發送速率,有以下2種:
slow or 0
30s一次,默認就是slow;
fast or 1
1s一次;
3、miimon
該參數指定鏈路檢測頻率,驅動程序推薦是miimon=100,也就是100ms一次,default是0;
4、xmit_hash_policy
layer2
使用2層(source MAC XOR destination MAC) 來hash;
layer2+3
使用2+3層(((source IP XOR dest IP) AND 0xffff) XOR( source MAC XOR destination MAC )) 來hash;IP地址XOR完畢後,取低16 bits,再和MAC地址做一次XOR。
layer3+4
使用3+4層((source port XOR dest port) XOR((source IP XOR dest IP) AND 0xffff)來hash;
最後貼一個mode 4配置:
cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bonding miimon=100 mode=4 xmit_hash_policy=2
mode 1 主要的幾個選項:
1、primary
設置主網卡
2、updelay
該參數的配置是爲了防止交換機重啓後端口UP起來,但是還未進入forwarding狀態引起服務器出現流量上來的問題
最後貼一個mode 1配置:
cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bonding miimon=100 mode=1 primary=eth0 updelay=600000
有啥理解不對的地方還請指出,謝謝。近期會對所有mode和想了解的參數測試一遍,看看服務器和交換機的具體表現。
我看的是內核linux-2.6.32.60的,源碼和文檔可以去www.kernel.org下載。
網卡綁定支持7中模式,使用mode選項來配置,具體如下:
balance-rr or 0
這是默認配置,即服務器開啓bond,但是不配mode選項的話,默認就是mode 0,也就是輪詢,我的理解是,從網絡上看,服務器2塊網卡使用同一個MAC地址,
每一個miimon內,同時只有一塊網卡在工作,也就是說從交換機上看,這個MAC一會在這個端口,一會在另一個端口,但同時只能有一個端口存在流量,所以瓶頸
是1塊網卡的極限。而且該mode如果交換機不配port-channel的話,會出現嚴重的MAC地址抖動。
active-backup or 1
主備模式,也是線上用的比較多的一種,服務器端只會有一塊網卡是活動狀態,只有當activce slave網卡down掉後,另外的slave纔會切換到active狀態,也
就是說交換機無需任何特殊配置即可和服務器正常通信。
balance-xor or 2
異或模式,傳輸路線會根據異或的結果來選擇,默認是拿源MAC和目的MAC做異或操作來決定走哪塊網卡,通過xmit_hash_policy參數來修改策略。
broadcast or 3
廣播模式,在所有網卡上接受所有的數據包,只提供冗餘,不提供負載均衡。
802.3ad or 4
LACP模式,也是線上用的最多的一種,雙網卡使用一個MAC和IP同時工作,網卡性能是所有slave之和。需要支持ethtool獲取所有slave的speed和duplex;
交換機支持802.3ad;
balance-tlb or 5
不需要交換機特殊支持,bond程序會選擇一塊網卡作爲active網卡收包,而出方向則是根據slave上的traffic來的;如果bond選擇的slavedown掉了,會有另外
的slave會接管之前失效的MAC地址來收發包。總之就是單進雙出。
balance-alb or 6
在balance-tlb的基礎,增加了入方向rlb,字面上看就是 receive load balance,同樣不需要交換機配LACP,但是需要服務器網卡支持ethtool獲取speed和duplex,
且網卡支持設置網卡硬件地址,和mode 4一樣,需要配置updelay參數,文檔原話:“The updelay parameter (detailed below) mustbe set to a value equal or
greater than the switch'sforwarding delay so that the ARP Replies sent to the peers will not be blocked by the switch.”
mode 802.3ad線上用的比較多,就對802.3ad中可以設置的一些參數做一下介紹:
1、ad_select
該參數制定鏈路聚合策略,有以下幾種:
stable or 0
按照最大帶寬去聚合;
在所有slave down的情況,或者active聚合組沒有slave的情況下會重新聚合;
bandwidth or 1
和stable一樣,只是重新聚合的條件不一樣;
一個slave的加入或者刪除會重新聚合;
任何slave的狀態改變會重新聚合;
任何slave的802.3ad協議狀態的改變會重新聚合;
bond狀態改變也會重新聚合;
count or 2
按照端口數量最大來聚合,個人最這個最多端口和最大帶寬理解還不是太懂,具體要看實驗的表現;
重新聚合發生在“bandwidth”參數的設置;
2、lacp_rate
該參數指定LACPDU報文發送速率,有以下2種:
slow or 0
30s一次,默認就是slow;
fast or 1
1s一次;
3、miimon
該參數指定鏈路檢測頻率,驅動程序推薦是miimon=100,也就是100ms一次,default是0;
4、xmit_hash_policy
layer2
使用2層(source MAC XOR destination MAC) 來hash;
layer2+3
使用2+3層(((source IP XOR dest IP) AND 0xffff) XOR( source MAC XOR destination MAC )) 來hash;IP地址XOR完畢後,取低16 bits,再和MAC地址做一次XOR。
layer3+4
使用3+4層((source port XOR dest port) XOR((source IP XOR dest IP) AND 0xffff)來hash;
最後貼一個mode 4配置:
cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bonding miimon=100 mode=4 xmit_hash_policy=2
mode 1 主要的幾個選項:
1、primary
設置主網卡
2、updelay
該參數的配置是爲了防止交換機重啓後端口UP起來,但是還未進入forwarding狀態引起服務器出現流量上來的問題
最後貼一個mode 1配置:
cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bonding miimon=100 mode=1 primary=eth0 updelay=600000
有啥理解不對的地方還請指出,謝謝。近期會對所有mode和想了解的參數測試一遍,看看服務器和交換機的具體表現。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.