生產環境網卡綁定匯總(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
下一篇 2017-05-07

相關推薦

  • Centos7 編譯安裝 zabbix3.0

    服務安裝配置: 系統版本:CentOS Linux release 7.2.1511 (Core)   zabbix 安裝 關閉firewall:   systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall開機…

    Linux干貨 2016-06-23
  • Docker之~集群配置

    一、前言 Kubernetes 是Google開源的容器集群管理系統,基于Docker構建一個容器的調度服務,提供資源調度、均衡容災、服務注冊、動態擴縮容等功能套件,目前最新版本為0.6.2。 本文介紹如何基于Centos7.0構建Kubernetes平臺,在正式介紹之前,大家有必要先理解Kubernetes幾個核心概念及其承擔的功能。以下為Kubernet…

    2015-03-23
  • N25_第三周

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d' ' -f1 | sort -u [root@server1 ~]# who  | cut -d' ' -f1 …

    Linux干貨 2016-12-17
  • TCP三次握手和四次揮手

    TCP三次握手 有兩臺機器,A是客戶端(主動發起請求的人),B是服務器端(被動接受請求的人),客戶端A剛開始沒有人和他通訊,所以客戶端A的狀態是CLOSDE(關閉的),服務器端B剛開始的狀態也是CLOSDE,但是總有人去訪問他,所以服務器端B開啟了LISTEN(收聽)狀態。 (1)假設A機器想鏈接B機器了,他就會向B機器發送一個建立鏈接的請求,這個建立鏈接請…

    2017-08-31
  • yum與rpm生產中最頻繁使用

    yum 命令 使用方法: yum [選項] [包名稱] 常用選項: install #安裝軟件,后面跟包名稱,例如:yum install wget 安裝wget軟件包list #列出所有軟件,一般和grep一起使用,例如:yum list | grep java ,查看所有java安裝包,一般情況下不使用search,grep可以更大范圍搜索包,例如只記得…

    Linux干貨 2017-04-18
  • 馬哥教育網絡班22期中秋節課程練習1

    #!/bin/sh   set -e CheckRoot() { #check if currect use is root user     CUR_USER=`whoami`     if&nbs…

    Linux干貨 2016-10-09
欧美性久久久久