生產環境網卡綁定彙總(bonding,team)

生產環境網卡綁定彙總


1 什麼是bonding,team?

  1.1 bonding,team簡介                        

  在瞭解正式的概念之前,我們先從不太專業的角度取解釋這兩個名詞。
 所謂bonding就是聯結。以下是來自柯林斯英漢雙解大詞典對於bonding的解釋。
   the process by which individuals become emotionally attached to one another 形成的密切關係
的過程 →see also   pair bond

 所謂team,你可以理解爲團隊,也可以理解爲一個組。那好,現在正式介紹bonding以及team的概念。
Bonding
 bonding就是將多塊網卡綁定在同一個IP地址上對外提供服務,可以實現高可用或者負載均衡。通過bonding技術,
虛擬出一塊物理網卡(比如bond0)對外提供連接,而被綁定在同一塊bond0上的所有網卡的MAC地址會修改成bond0的
MAC地址。通過這個方法,我們也可以鑑定網卡是否綁定成功。
Team
 team就是升級版的bonding。bonding應用於redhat6,team應用於redhat7。team是將多個網卡聚合在一起的方
法,從而實現冗錯和提高吞吐量。team技術相對於舊版的bonding技術來說,提供了更好的性能和擴展性。
                

          1.2 bonding,team的工作模式 

            我將介紹三種常用的模式,分別是round-robin,active-backup,broadcast模式,這三種模式在bonding以及team中都存在。                                                                

    1. mode 0
       輪轉(round-robin)策略:slave網卡輪流發送數據包,本模式提供負載均衡和容錯的能力。
   2. mode 1
       主備策略(active-backup):只有一塊網卡被激活,當其中的一塊網卡出現故障,另一塊網卡就會激活。
提供容錯的功能。
   3. mode 3
       廣播策略(broadcast):在所有的slave網卡接口傳送所有的報文,提供容錯的能力,但同時也極其消耗系統
資源。
                
        


2 centos6中創建bond0實例

  wKioL1kOixrS2FvvAAAnZ1H1Aq4990.jpg


    2.1 添加兩塊網卡並且驗證網卡
        驗證方式:
         1. ip a 查看網卡是否存在 
         
    2.2 模塊加載
        vi  /etc/modprobe.d/dist.conf
        alias char-major-89-* i2-dev後添加下面一行信息    #一般爲最後一行   
        alias bond0 bonding    #加載bond0驅動
        
    2.3 創建ifcfg-bond0配置文件
        cd /etc/sysconfig/network-scripts/
        vi ifcfg-bond0
            DEVICE=bond0
            TYPE=Ethernet
            ONBOOT=yes
            NM_CONTROLLED=no
            BOOTPROTO=static
            IPADDR=10.0.0.110
            PREFIX=24
            GATEWAY=10.0.0.254
            DNS=114.114.114.114
            BONDING_OPTS="mode=1 miimon=100 primary=eth0"
            #主備模式,每隔100ms檢測一次網卡狀態,首選eth0網卡

            
    2.4 修改ifcfg-eth0配置文件
        vi ifcfg-eth0
            DEVICE=eth0
            TYPE=Ethernet
            ONBOOT=yes
            BOOTPROTO=static
            MASTER=bond0
            SLAVE=yes

           
    2.5 修改ifcfg-eth1配置文件
        vi ifcfg-eth1
            DEVICE=eth0
            TYPE=Ethernet
            ONBOOT=yes
            BOOTPROTO=static
           MASTER=bond0
           SLAVE=yes    
                 
    2.6 停止NetworkManager管理網絡服務       
        service NetworkManager stop
        chkconfig NetworkManager off
        modprobe bonding
        service network restart    
        
    2.7 驗證網卡是否綁定成功 
        1. ip a 
            如果成功,則bond0、eth0以及eth1的MAC地址是一樣的
        2. cat /proc/net/bonding bond0
            如果成功,則顯示bond0、eth0以及eth1處於up狀態


3. centos7中創建team0實例

  wKioL1kOonPAix4rAAA-tkCnGAo553.jpg

(ps:這裏我將centos7中的網卡名稱改爲了傳統的命名方式,目的是爲了便於管理。修改方式我將會另一篇博客寫出)


    3.1 添加網卡並且驗證網卡
        nmcli device show
        nmcli connetcion show
    3.2 創建ifcfg-team0配置文件
        nmcli connection add type team ifname team0 con-name team0 config '{"runner":{"name":
"activeback"}}'
    3.3 爲team0配置IP地址
        nmcli connection modify team0 ipv4.addresses 10.0.0.110/24 ipv4.gateway 10.0.0.254
ipv4.method manual
   3.4 重新加載網卡配置,使配置文件實效
       nmcli connection reload
       systemctl restart network
     
    3.5 創建ifcfg-team0-eth0配置文件
        nmcli connection add type team-slave ifname eth0 con-name team0-eth0 master team0
    3.6 創建ifcfg-team0-eth1配置文件
        nmcli connection add type team-slave ifname eth1 con-name team0-eth1 master team0    
    3.7 啓動slave設備
        nmcli connection up team0-eth0
        nmcli connection up -team0-eth1
        nmcli connection up team0
    3.8 查看設備是否啓動
        1.nmcli connetcion show
            查看team0 team-eth0 team0-eth1是否激活
           
        2.ip a
            查看team0 eth0 eth1 網卡的MAC地址是否一致
        3.teamdctl team0 state
            查看team0 eth0 eth1 狀態是否up(激活)

   
    

    以下兩圖是兩種檢測team是否配置成功的方法。另外補充,通過nmcli方式配置將會直接生成配置文件,很方便很強大。   

wKiom1kO5-vCl5z9AAA-8wAX9Og996.png

wKioL1kO6KriLVcxAAAszEEqsoo432.png

   作者:michael
   2017年5月7日

    



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章