首頁  >  文章  >  運維  >  CentOS怎麼設定bond

CentOS怎麼設定bond

藏色散人
藏色散人轉載
2021-06-15 11:14:225105瀏覽

下面由centos教學欄位來介紹CentOS怎麼設定bond,希望對需要的朋友有幫助!

CentOS設定bond

一、什麼是網路卡綁定及簡單原理 

    網卡綁定也稱為"網卡捆綁",就是使用多塊實體網卡虛擬成為一塊網卡,以提供負載平衡或冗餘,增加頻寬的作用。當一個網卡壞掉時,不會影響業務。這個聚合起來的設備看起來是一個單獨的乙太網路介面設備,也就是這幾塊網路卡有相同的IP位址而並行連結聚合成一個邏輯連結工作。這種技術在Cisco等網路公司中,被稱為Trunking和Etherchannel 技術,在Linux的2.4.x的核心中將這種技術稱為bonding。  

Bonding的模式總共有7種:

#defineBOND_MODE_ROUNDROBIN       0   (balance-rr模式)网卡的负载均衡模式
#defineBOND_MODE_ACTIVEBACKUP     1   (active-backup模式)网卡的容错模式
#defineBOND_MODE_XOR              2   (balance-xor模式)需要交换机支持
#defineBOND_MODE_BROADCAST        3    (broadcast模式)
#defineBOND_MODE_8023AD           4   (IEEE 802.3ad动态链路聚合模式)需要交换机支持
#defineBOND_MODE_TLB              5   自适应传输负载均衡模式
#defineBOND_MODE_ALB              6   网卡虚拟化方式

 bonding模組的所有工作模式可以分為兩類:多主型工作模式和主備型工作模式,balance-rr 和broadcast屬於多主型工作模式而active-backup屬於主備型工作模式。 (balance-xor、自適應傳輸負載平衡模式(balance-tlb)和自適應負載平衡模式(balance-alb)也屬於多主型工作模式,IEEE 802.3ad動態連結聚合模式(802.3ad)屬於主備型工作模式。

詳細介紹這7種模式:

1、balance-rr (mode=0)

輪轉(Round-robin)策略:從頭到尾順序的在每一個slave介面上面發送資料包。本模式提供負載平衡和容錯的能力。

#2、active-backup(mode=1)

#活動-備份(主備)策略:在綁定中,只有一個slave被啟動。當且僅當活動的slave介面失敗時才會啟動其他slave。為了避免交換器發生混亂此時綁定的MAC位址只有一個外部連接埠上可見。在bongding的2.6.2及其以後的版本中,主備模式下發生一次故障遷移時,bonding將在新啟動的slave上會送一個或多個gratuitous ARP。bonding的主salve介面上以及配置在介面上的所有VLAN介面都會傳送gratuitous ARP,只要這些介面上配置了至少一個IP位址。VLAN介面上傳送的的gratuitous ARP將會附上適當的VLAN id。本模式提供容錯能力,primary option,documented below會影響本模式的行為。

3、balance-xor(mode=2)

XOR策略:基於所選的傳送hash策略。

  本模式提供負載平衡和容錯的能力。

4、broadcast(mode=3)

#廣播策略:在所有的slave介面上傳送所有的封包。本模式提供容錯能力。       

#

5、802.3ad(mode=4)

IEEE 802.3ad 動態連結聚合。建立共享相同的速率和雙工模式的聚合組。能根據802.3ad規範利用所有的slave來建立聚合鏈路。 Salve的出站選擇取決於傳輸的hash策略,預設策略是簡單的XOR策略,而hash策略可以通xmit_hash_policy選項加以改變。要注意的是:不是所有的傳輸策略都與802.3ad相容,尤其是802.3ad標準的43.2.4章節中關於 packet mis-ordering要求的地方。不同個體的實現往往出現很大的不相容。  

先決條件:  
  1. 每個slave的基本驅動支援Ehtool取得速率和雙工狀態。  
  2.交換器支援IEEE 802.3ad動態連結聚合。大多數的交換器都需要使用某種設定方式來啟用802.3ad模式。    

6、balance-tlb(mode=5)

#自適應傳輸負載平衡:通道綁定不需要特殊的交換器支援。出口流量的分佈取決於目前每個slave的負載(計算相對速度)。進口流量從當前的slave的接收。如果接收salve出錯,其他的slave接管失敗的slave的MAC位址繼續接收。  
  先決條件:  
  每個slave的基本驅動支援Ehtool取得速率狀態。    

7、balance-alb(mode=6)

自適應負載平衡:包含balance-tlb(模式5)以及用於IPV4流量的接收負載平衡,且不需要特殊的交換器支援。接收負載平衡透過ARP協商實現。 bonding的驅動攔截本機發出的ARP Replies(ARP回應封包),並且用bond的某一個slave的硬體位址改寫ARP封包的來源位址,使得本伺服器對不同的裝置使用不同的硬體位址。本伺服器建立的連線的接收流量也是負載平衡的。當本機發送ARP Request時,bonding驅動透過ARP封包複製並保存節點的IP資訊。當從其他節點接收到ARP Reply,bonding驅動取得節點的硬體位址並且會回應一個包含綁定好的slave的硬體位址的ARP Reply給所發送的節點。用ARP協商的負載平衡的有一個問題是每次用bond的硬體位址廣播ARP封包,那麼其他節點發送的資料全部集中在一個slave上,處理ARP更新給其他所有節點的時候,每個節點會重新學習硬體位址,導致流量重新分配。當新加入一個slave或一個非啟動的slave重新啟動的時候也會導致接收流量重新分配。接收流量負載是串列(輪轉)的分配在bond的一組速率最高的slave上。  
  當一個連結重連或一個新的slave加入的時候,bond會重新初始化ARP Replies給所有的客戶端。 updelay參數的值必須等於或大於交換器的forwarding delay,以免ARP Replies被交換器阻塞。  
  先決條件:  
  1.每個slave的基本驅動支援Ehtool取得速率狀態。  

  2. 基本驅動支援當裝置開啟時重新設定硬體位址。也要求每一個slave具有唯一的硬體位址。如果curr_active_slave失敗,它的硬體位址會被新選上的curr_active_slave硬體位址來取代。        

#在CentOS設定Bond0和Bond1:#   

首先要看linux是否支援bonding,RHEL4已經預設支援了.(大部分發行版都支援)  

# 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
  
de.ion:    Ethernet Channel Bonding Driver, v3.0.3
  
version:        3.0.3
  
license:        GPL
  
srcversion:     2547D22885C2FDF28EF7D98

如果有类似上面的信息输出,说明已经支持了.      

1、配置Bond 0 负载均衡   

特点:  

1. 双网块同时工作,实现负载均衡,某一网卡不正常时,不会引发网络中断.  

2. 恢复不能正常工作的网卡时,会引发网络中断几秒,然后双网卡同时工作.  

    1.编辑虚拟网络接口配置文件,指定网卡IP    

    cp /etc/sysconfig/network-scripts/ifcfg-lo ifcfg-bond0
  
vi  ifcfg-bond0
  
 
  
DEVICE=bond0
  
IPADDR=10.10.10.1
  
NETMASK=255.255.255.0
  
NETWORK=10.10.10.0
  
BROADCAST=10.10.10.255
  
ONBOOT=yes
  
BOOTPROTO=none
  
USERCTL=no
  
GATEWAY=192.168.0.1

    2.在bond0上添加网关,是确保默认路由无故障   

[root@Linux ~]# route
    
Kernel IP routing table
    
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    
10.0.0.0        *               255.255.255.0   U     0      0        0 bond0
    
10.0.0.0        *               255.255.255.0   U     0      0        0 eth0
    
10.0.0.0        *               255.255.255.0   U     0      0        0 eth1
    
169.254.0.0     *               255.255.0.0     U     0      0        0 bond0
    
default         10.0.0.1        0.0.0.0         UG    0      0        0 bond0
    
 
    
vi  ifcfg-eth0
    
 
    
DEVICE=eth0
    
BOOTPROTO=none
    
ONBOOT=yes
    
USERCTL=no
    
MASTER=bond0
    
SLAVE=yes
    
 
    
vi  ifcfg-eth1
      
 
      
DEVICE=eth1
      
BOOTPROTO=none
      
ONBOOT=yes
      
USERCTL=no
      
MASTER=bond0
      
SLAVE=yes

3 # vi /etc/modprobe.conf              

编辑/etc/modprobe.conf 文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0       

        加入下列两行        

alias bond0 bonding 
      
options bond0 miimon=100 mode=0

        说明:       

miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;      

        mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。       

   mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。      

   mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.                

4 # vi /etc/rc.d/rc.local       

          加入以下内容          

# 仅在热备模式下,eht0 eth1网卡的工作顺序.
        
 
        
ifenslave bond0 eth0 eth1

到这时已经配置完毕重新启动机器.        

重启会看见以下信息就表示配置成功了        

................         

Bringing up interface bond0 OK 
        
Bringing up interface eth0 OK 
        
Bringing up interface eth1 OK

2、配置Bond 1 热备模式         

特点:        

1. 正在工作的网卡不正常后,切换到备用网卡,此时会中间几秒钟        

2. 恢复不正常的网卡时,不会引发网络中断.      

          其他步骤一致,只在第3步骤,将mode设置成1即可.         

alias bond0 bonding 
        
options bond0 miimon=100 mode=1

以上是CentOS怎麼設定bond的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除