生產環境網卡綁定匯總(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日     

原創文章,作者:PowerMichael,如若轉載,請注明出處:http://www.www58058.com/74886

(2)
PowerMichaelPowerMichael
上一篇 2017-05-07 11:53
下一篇 2017-05-07 14:24

相關推薦

  • 馬哥教育網絡19期+第十六周課程練習

    編譯安裝LNMP 一、安裝Nginx: 1、解決依賴關系 編譯安裝nginx需要事先需要安裝開發包組"Development Tools"和 "Development Libraries"。同時,還需要專門安裝pcre-devel包: # yum -y ins…

    Linux干貨 2016-08-22
  • MarkdownPad2 簡單使用指南

    MarkdownPad2 簡單使用指南 一級標題 二級標題 三級標題加代碼 四級標題 這里是加粗 這里是正文and English 888 這里有正文嵌入代碼這種樣式 這里是代碼塊 這種使用的代碼塊 還有引用 這種格式 這種格式再加粗 拖下來一點的格式加個代碼 斜體 斜體內的加粗 自我改好的樣式 注意是這種風格的樣式! 附:一個很全的顏色代碼網頁h…

    2016-11-13
  • LVS-NAT+LVS-NAT基于NFS做wordpress負載均衡實驗

    Lvs-nat實驗 實驗設備:三臺centos虛擬機 Director:DIP:10.0.0.254? VIP:192.168.208.129 RS1:RIP:10.0.0.1 RS2:RIP:10.0.0.2   首先都安裝ipvsadm、telnet、httpd   配置網卡:RS2:hostonly模式:10.0.0.2/24 配置…

    2017-11-21
  • N25期—第二周作業

    1、  Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。   一、文件權限管理類命令  chown:改變文件所有者  chown [OPTION]… [OWNER][:[GROUP]] FILE…  常用參數 -R:遞歸修改(改目錄就改目錄中的目錄及文件) &n…

    Linux干貨 2016-12-11
  • 基礎命令

    1,對于Linux的實驗環境我們要用到虛擬機,往往每次上線都要登錄,這時候如果把用戶設為自動登錄就會方便許多,接下來就介紹下設置虛擬機的自動登錄 , /etc/gdm/custom.conf 這個就是設置自動登錄的一個配置文件,我們先來使用nano打開這個文件,如下 # GDM configuration storage 這是GDM的一個配置存儲 [daem…

    2017-11-19
  • 關于Raid的各種類型特點概要

    關于Raid需要了解掌握的要點

    Linux干貨 2017-11-26
欧美性久久久久