- 1. Linux進程地址空間的分析參考手冊 doc文檔
- 2. wdcp(linux服務(wù)器管理系統(tǒng)) v2.1官網(wǎng)最新版
- 3. Wine(在Linux中執(zhí)行WIN程序的工具) 1.3.34 穩(wěn)定版
- 4. linux sd卡驅(qū)動分析流程圖
- 5. linux U盤和硬盤啟動安裝工具
- 6. linux mint最新版本linuxmint11桌面壁紙免費下載
- 7. XnConvert for Linux V1.10 多國語言官方安裝版
- 8. Adobe Flash Player for Linux(Linux操作系統(tǒng)FLASH...
- 9. Adobe Flash Player for Linux最新官方免費下載 V1...
- 10. Linux Kernel操作系統(tǒng)最新官方下載 V2.6.39.1
Linux下雙網(wǎng)卡綁定技術(shù)實現(xiàn)負(fù)載均衡和失效保護(bond)
對于bonding的網(wǎng)絡(luò)負(fù)載均衡是我們在文件服務(wù)器中常用到的,比如把三塊網(wǎng)卡,當(dāng)做一塊來用,解決一個IP地址,流量過大,服務(wù)器網(wǎng)絡(luò)壓力過大的問題。對于文件服務(wù)器來說,比如NFS或SAMBA文件服務(wù)器,沒有所有一個管理員會把內(nèi)部網(wǎng)的文件服務(wù)器的IP地址弄非常多個來解決網(wǎng)絡(luò)負(fù)載的問題。如果在內(nèi)網(wǎng)中,文件服務(wù)器為了管理和應(yīng)用上的方便,大多是用同一個IP地址。對于一個百M的本地網(wǎng)絡(luò)來說,文件服務(wù)器在多個用戶同時使用的情況下,網(wǎng)絡(luò)壓力是極大的,特別是SAMABA和NFS服務(wù)器。為了解決同一個IP地址,突破流量的限制,畢竟網(wǎng)線和網(wǎng)卡對數(shù)據(jù)的吞吐量是有限制的。如果在有限的資源的情況下,實現(xiàn)網(wǎng)絡(luò)負(fù)載均衡,最佳的辦法就是 bonding ;
另一種情況就是服務(wù)器的一個網(wǎng)卡失效或網(wǎng)絡(luò)連接意外斷開,如果做了bonding就能轉(zhuǎn)換到另一個網(wǎng)卡的網(wǎng)絡(luò)連接上.確保服務(wù)的不中斷.
首先要看linux是否支持bonding,RHEL4已默認(rèn)支持了.(大部分發(fā)行版都支持)
# modinfo bonding
filename: /lib/modules/2.6.18-8.el5/kernel/drivers/net/bonding/bonding.ko
author: Thomas Davis,
tadavis@lbl.gov
and many others
description: Ethernet Channel Bonding Driver, v3.0.3
version: 3.0.3
license: GPL
srcversion: 2547D22885C2FDF28EF7D98
如果有類似上面的信息輸出,說明已支持了.
如果沒有,說明內(nèi)核不支持bonding,需要重新編譯內(nèi)核
編譯內(nèi)核的步驟這里就不多寫了,在make menuconfig里面
找到Bonding driver support這樣的對話框,選中他.
如果是模塊編譯,還需要掛載模塊.掛載bonding 模塊的方法;
[root@localhost#] modprobe bonding
如果/sbin/ifenslave沒有,我們還需要把他也獨立編譯出來
[root@lin:/home/beinan#] cd /usr/src/linux-2.6.20/Documentation/networking
[root@lin:/home/networking#] gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux-2.6.20/include ifenslave.c -o ifenslave
[root@lin:/home/networking#] cp ifenslave /sbin/ifenslave
1.#cp ifcfg-etho ifcfg-bond
2.#vim ifcfg-bond
DEVICE=bond0
IPADDR=192.168.100.2
NETMASK=255.255.255.0
NOBOOT=yes
BOOTPROTO=none
USERCTL=no
#vim ifcfg-eth0
DEVICE=eth0
HWADDR=xxxxxxxxxx
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
TYPE=Ethernet
#vim ifcfg-eth1
DEVICE=eth1
HWADDR=xxxxxxxxxx
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
TYPE=Ethernet
3. #vim /etc/modprobe.conf
加入下列行
alias bond0 bonding
options bond0 miimon=100 mode=1
alias net-pf-10 off //這行是關(guān)閉ipv6支持,也能不要)
說明:miimon是用來進行鏈路監(jiān)測的。 比如:miimon=100,那么系統(tǒng)每100ms監(jiān)測一次鏈路連接狀態(tài),如果有一條線路不通就轉(zhuǎn)入另一條線路;mode的值表示工作模式,他共有0,1,2,3四種模式,常用的為0,1兩種。
mode=0表示load balancing (round-robin)為負(fù)載均衡方式,兩塊網(wǎng)卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主備的工作方式,也就是說默認(rèn)情況下只有一塊網(wǎng)卡工作,另一塊做備份.
bonding只能提供鏈路監(jiān)測,即從主機到交換機的鏈路是否接通。如果只是交換機對外的鏈路down掉了,而交換機本身并沒有故障,那么bonding會認(rèn)為鏈路沒有問題而繼續(xù)使用
4 # service network restart
重啟后我們用ifconfig查看網(wǎng)卡信息,能看到多出一個bond0網(wǎng)卡.
bond0 Link encap:Ethernet HWaddr xxxxxxxxx
inet addr:192.168.1.200 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:48 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8817 (8.6 KiB) TX bytes:4807 (4.6 KiB)
eth0 Link encap:Ethernet HWaddr xxxxxxxxx
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8196 (8.0 KiB) TX bytes:6007 (5.8 KiB)
Interrupt:169 Base address:0x2000
eth1 Link encap:Ethernet HWaddr xxxxxxxxx
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:861 (861.0 b) TX bytes:0 (0.0 b)
Interrupt:193 Base address:0x2080
那也就是說在主備模式下,當(dāng)一個網(wǎng)絡(luò)接口失效時(例如主交換機掉電等),不回出現(xiàn)網(wǎng)絡(luò)中斷,系統(tǒng)會按照cat /etc/rc.d/rc.local里指定網(wǎng)卡的順序工作,機器仍能對外服務(wù),起到了失效保護的功能.
能查看到bond0的工作狀態(tài)
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:c2:b3:44
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:c2:b3:4e
從另一臺機器ping我們剛才設(shè)置的IP地址,然后在虛擬機vmware下面,點其中的一個網(wǎng)卡
選中disconnect(斷開)
能看到ping只是出現(xiàn)了兩個time out后就又恢復(fù)了正常.說明我們的設(shè)置起作用了.
需要說明的是如果想做成負(fù)載均衡,僅僅設(shè)置這里options bond0 miimon=100 mode=0是不夠的,還需要設(shè)置交換機的端口.
從原理分析一下(bond運行在mode 0下):
mode 0下bond所綁定的網(wǎng)卡的IP都被修改成相同的mac地址,如果這些網(wǎng)卡都被接在同一個交換機,那么交換機的arp表里這個mac地址對應(yīng)的端口就有多個,那么交換機接受到發(fā)往這個mac地址的包應(yīng)該往哪個端口轉(zhuǎn)發(fā)呢?正常情況下mac地址是全球唯一的,一個mac地址對應(yīng)多個端口肯定使交換機迷惑了。
所以mode0下的bond如果連接到交換機,交換機這幾個端口應(yīng)該采取聚合方式(cisco稱為ethernetchannel,foundry稱為portgroup),因為交換機做了聚合后,聚合下的幾個端口也被捆綁成一個mac地址.我們的解決辦法是,兩個網(wǎng)卡接入不同的交換機即可。
取消linux bond的方法
另外大家關(guān)心的一個問題應(yīng)該是:設(shè)置了bond 后如何去掉?
- 1. Linux下雙網(wǎng)卡綁定技術(shù)實現(xiàn)負(fù)載均衡和失效保護(bo...
- 2. 在linux中emacs安裝package.el
- 3. Linux與人工智能的歷史性“交匯”
- 4. 構(gòu)建高安全電子商務(wù)網(wǎng)站之Linux服務(wù)器iptables規(guī)則...
- 5. Linux tar 如何在壓縮之后刪除原文件
- 6. 讓Linux下播放CSF格式視頻技巧
- 7. 詳細(xì)理解Linux LVM邏輯卷
- 8. 充分利read命令在linux中發(fā)揮強大的作用
- 9. Firefox用戶迎來福音: Linux版本開始提速
- 10. 讀Linux那些事兒之我是HUB筆記