【Linux】Bonding配置,管理
1 透過Ifenslave手動配置Bonding
該方法適用於某些發行包,它們的網路初始化指令碼(sysconfig或initscripts包)沒有bonding相關的知識。SuSE Linux Enterprise Server 版本8就是這樣的一個發行包。
對於這些系統一般的方法是,把bonding模組的引數放進/etc/modules.conf或者/etc/modprobe.conf(針對不同的安裝發行包),然後在系統的全域性初始化指令碼里增加modprobe和/或ifenslave命令。對於sysconfig,全域性初始化指令碼是/etc/init.d/boot.local,而對於initscripts,它是/etc/rc.d/rc.local。
比如,如果你想要實現一個簡單的帶兩個e100裝置(比如eth0和eth1)的bond,而且希望它在重啟後還能存在,那麼編輯對應的檔案(/etc/init.d/boot.local或/etc/rc.d/rc.local),在裡面加上:
modprobe bonding mode=balance-alb miimon=100
modprobe e100
ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up
ifenslave bond0 eth0 eth1
把示例裡bonding模組引數以及bond0的網路配置(IP地址,掩碼等)修改為對應系統的正確配置,不幸的是,這個方法不提供對bond裝置上的ifup和ifdown指令碼支援,為了重新載入bonding配置,你必須執行初始化指令碼,比如:
# /etc/init.d/boot.local
或者
# /etc/rc.d/rc.local
針對這種情況,理想的做法是,建立一個獨立的指令碼用於初始化bonding配置,然後在boot.local中呼叫這個獨立的指令碼,這樣就可以不重啟整個全域性初始化指令碼就開啟bonding。
為了關閉bonding裝置,你首先需要把bonding裝置標記為正在關閉,然後移除對應的裝置驅動模組。針對我們上面的例子,你可以這樣關閉:
# ifconfig bond0 down
# rmmod bonding
# rmmod e100
同樣的,方便起見,最好把這些命令建立在一個獨立的指令碼里。
2 手動配置多個Bonds
針對那些網路初始化指令碼缺少對多bonds配置支援的系統,這裡介紹了透過不同的選項配置多bonding裝置的方法。
如果你需要配置多bonding裝置,但所有裝置使用同樣的選項,你可能希望使用"max_bonds"模組引數,就像上文描述的一樣.為了建立多個不同選項的bonding裝置,需要多次載入bonding驅動。要說明的是,當前版本的sysconfig網路初始化指令碼自動處理這些,如果你的發行包這些指令碼,你不需要額外的操作,參看上文的"配置Bonding驅動",如果你不確定你的網路初始化指令碼是否支援。
為了載入模組的多個例項,需要為每個例項指定一個不同的名字(模組載入系統需要每個載入的模組有唯一的名字,即便它們是同一個模組的不同例項)。這可以透過在/etc/modprobe.conf中指定多個bonding選項,比如:
alias bond0 bonding
options bond0 -o bond0 mode=balance-rr miimon=100
alias bond1 bonding
options bond1 -o bond1 mode=balance-alb miimon=50
這將會兩次載入bonding模組。第一個例項命名為"bond0",將會以balance-rr模式建立bond0裝置,同時使用引數miimon為100。
第二個例項命名為"bond1",將會以balance-alb模式建立bond1裝置,同時使用引數miimon為50。
在某些情況下(通常是較老的發行包),上述引數不能工作,第二個bonding例項不會用到它的選項。在這種情況下,第二個選項可以用如下的選項替換:
install bond1 /sbin/modprobe --ignore-install bonding -o bond1 \
mode=balance-alb miimon=50
這些選項可以重複任意次,以指定任意多個bonding例項,只需要為每個依次的例項指定一個唯一的名字,以替換bond1即可。
3 透過Sysfs手工配置Bonding
從版本3.0開始,Channel Bonding可以透過sysfs介面進行配置。sysfs介面允許在不解除安裝模組的情況下動態配置所有bonds,它也可以在執行時增加和移處bonds。Ifenslave已經不再需要了,儘管它還被支援。使用sysfs介面允許你在不重新載入模組的情況下,對多個bonds使用不同的配置;也允許你使用多個不同配置的bonds,在bonding被編譯進核心的時候。
你必須mount了sysfs檔案系統,以配置bonding。本文裡的示例假定你標準的sysfs的mount點,即/sys,如果你的sysfs檔案系統被mount在其他地方,你需要對應地調整示例裡的路徑。
建立和銷燬Bonds
增加一個新的bond(foo):
# echo +foo > /sys/class/net/bonding_masters
移除一個已存在的bond(bar):
# echo -bar > /sys/class/net/bonding_masters
顯示所有存在的bonds:
# cat /sys/class/net/bonding_masters
注意:由於sysfs檔案的4K大小限制,如果你好多bonds,這個列表可能被截斷。這在通常的情況下並不常見。
增加和移除Slaves
透過使用檔案/sys/class/net//bonding/slaves,我們可以把網路介面從屬於某個bond,這個檔案的語義和bonding_masters檔案是完全相同的。
把eth0加入bond(bond0):
# ifconfig bond0 up
# echo +eth0 > /sys/class/net/bond0/bonding/slaves
從bond(bond0)裡移除eth0:
# echo -eth0 > /sys/class/net/bond0/bonding/slaves
注意:bond必須在slave加入之前啟動,所有slave必須在bond介面斷開前移除。
當一個網路介面加入某個bond,sysfs檔案系統裡會在兩者間建立符號連結,在這時,你可以看到/sys/class/net/bond0/slave_eth0指向/sys/class/net/eth0,而/sys/class/net/eth0/master指向/sys/class/net/bond0。
這意味著你可以透過檢視master的符號連結很快地知道一個介面有沒有被加入。這樣的話:
# echo -eth0 > /sys/class/net/eth0/master/bonding/slaves
將會把eth0正確地從它所從屬的bond上移除,而不需要指定bond介面的名字。
改變Bond的配置
每個bond可以獨立地配置,透過操縱位於/sys/class/net//bonding下的檔案。 這些檔案的名字直接對應於本文裡描述的命令列引數,除了arp_ip_target是個例外,它們總是接受同樣的值。你可以直接把對應檔案cat出來看當前的設定。
把bond0配置為balance-alb模式:
# ifconfig bond0 down
# echo 6 > /sys/class/net/bond0/bonding/mode
- 或者 -
# echo balance-alb > /sys/class/net/bond0/bonding/mode
注意:在修改模式前,請先斷開bond介面。
在bond0上啟用MII監控,使用1秒的時間間隔:
# echo 1000 > /sys/class/net/bond0/bonding/miimon
注意:如果ARP監控被啟用,當MII監控啟用時它會被禁止,反之亦然。
增加ARP目的地址:
# echo +192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
# echo +192.168.0.101 > /sys/class/net/bond0/bonding/arp_ip_target
注意:最多可以指定十個目的地址。
移除ARP目的地址:
# echo -192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
配置示例
為了生成一個簡單的帶兩個e100裝置(假定為eth0和eth1)的bond,而且希望它在重啟後依然存在,你可以編輯對應的檔案(/etc/init.d/boot.local or /etc/rc.d/rc.local),加入如下內容:
modprobe bonding
modprobe e100
echo balance-alb > /sys/class/net/bond0/bonding/mode
ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up
echo 100 > /sys/class/net/bond0/bonding/miimon
echo +eth0 > /sys/class/net/bond0/bonding/slaves
echo +eth1 > /sys/class/net/bond0/bonding/slaves
下面增加第二個bond,帶有兩個e1000介面,工作於active-backup模式,使用ARP監控,把如下內容加入到你的初始化指令碼里:
modprobe e1000
echo +bond1 > /sys/class/net/bonding_masters
echo active-backup > /sys/class/net/bond1/bonding/mode
ifconfig bond1 192.168.2.1 netmask 255.255.255.0 up
echo +192.168.2.100 /sys/class/net/bond1/bonding/arp_ip_target
echo 2000 > /sys/class/net/bond1/bonding/arp_interval
echo +eth2 > /sys/class/net/bond1/bonding/slaves
echo +eth3 > /sys/class/net/bond1/bonding/slaves
我自己的測試:
[root@rac4 network-scripts]# echo -eth1 > /sys/class/net/bond0/bonding/slaves
[root@rac4 network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.2.4 (January 28, 2008)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:56:8f:22:48
[root@rac4 network-scripts]# echo +eth1 > /sys/class/net/bond0/bonding/slaves
[root@rac4 network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.2.4 (January 28, 2008)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:56:8f:22:48
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:56:8f:7d:6f
bond yql 只是一個例子,沒有相對應的配置檔案
[root@rac4 network-scripts]# echo +yql > /sys/class/net/bonding_masters
[root@rac4 network-scripts]# cat /sys/class/net/bonding_masters
bond0 yql
[root@rac4 network-scripts]# cat /proc/net/bonding/yql
Ethernet Channel Bonding Driver: v3.2.4 (January 28, 2008)
Bonding Mode: load balancing (round-robin)
MII Status: down
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
4 檢視Bonding配置
每個bonding裝置對應於一個只讀檔案,存在於/proc/net/bonding目錄,檔案內容包括bonding配置的資訊,選項以及每個slave的狀態。
例如,在使用引數mode=0,miimon=1000時,載入驅動後,/proc/net/bonding/bond0的內容為:
[root@rac4 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.2.4 (January 28, 2008)
Bonding Mode: load balancing (round-robin)
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:50:56:8f:22:48
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:50:56:8f:7d:6f
根據你配置、狀態、以及bonding驅動版本的差異,上述內容的精確格式和內容有可能不同。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-712170/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下Bonding配置Linux
- suse linux配置網路卡bondingLinux
- 雙網路卡bonding配置
- Linux系統下雙網路卡bonding的配置方法Linux
- Linux物理網路卡bondingLinux
- 【Linux】Bonding驅動選項Linux
- linux下網路卡bonding[轉]Linux
- xmanager管理linux 配置Linux
- (轉)linux 實現多網路卡繫結BondingLinux
- Linux安全管理:一,sshd配置Linux
- 配置linux遠端管理 VNCLinuxVNC
- redhat5.4 雙網路卡 bondingRedhat
- NIC bonding 雙網路卡繫結
- Configuring Linux for the Oracle 10g VIP or private interconnect using bonding driverLinuxOracle 10g
- 在Linux中,什麼是配置管理,並且列出常見的配置管理工具。Linux
- Linux配置和管理裝置對映多路徑multipathLinux
- 在Linux中,如何配置和管理系統服務?Linux
- Linux程式管理工具Supervisor的安裝配置Linux
- Linux全攻略–Samba伺服器配置與管理(二)LinuxSamba伺服器
- linux配置Linux
- 【Linux】Linux軟體安裝管理2 使用安裝光碟配置本地yum倉庫Linux
- 【Linux】Linux軟體安裝管理4 使用rpm包配置本地yum倉庫Linux
- Linux 運維工程師面試真題-4-Linux 服務配置及管理Linux運維工程師面試
- 在Linux中,如何在Linux中進行配置管理和自動化部署?Linux
- Mysql管理與配置MySql
- CentOS(Linux)下的apache伺服器配置與管理方法分享CentOSLinuxApache伺服器
- linux網路系統層面的配置、管理及操作命令彙總Linux
- 『學了就忘』Linux檔案系統管理 — 60、Linux中配置自動掛載Linux
- 【Linux】Linux軟體安裝管理6 RHEL6配置使用163 centos yum源LinuxCentOS
- linux配置sftpLinuxFTP
- linux配置jdkLinuxJDK
- linux 配置hostnameLinux
- 配置linux DNSLinuxDNS
- linux配置nginxLinuxNginx
- Linux安全配置Linux
- linux配置sudoLinux
- linux NFS 配置LinuxNFS
- linux 配置autofsLinux