生产环境网卡绑定汇总(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.178linux.com/74886

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

相关推荐

  • 马哥linux课堂笔记

    0805课堂笔记 基本权限 读,写,执行   对于文件的读权限,能否查看文件内容.(文件内容需不需要看,如果是文本就需要看,如果是二进制就不需要看) 对于文件的写权限,能否修改文件内容,不能修改文件名,不能删除文件.(如果需要修改文件内容和文件名,必须在其父目录增加写权限和执行权限) 对于文件的执行权限,能否运行他.   对于目录的读权限…

    Linux干货 2016-08-15
  • 小巧精悍——常见文本处理工具用法及技巧总结

    小巧精悍——常见文本处理工具用法及技巧总结 Linux最重要的哲学思想就是:一切皆文件。可见文件及文件操作在Linux当中是多么的重要。在Linux系统中我们也会经常用到各种文本文件处理的操作,熟练使用这些小巧精悍的文本处理工具,在关键时刻往往展现非凡的神奇功效。常见文本处理小工具:cat、hexdump、nl、less、head、tail、cut、tr、r…

    Linux干货 2016-11-05
  • linux基础之lvm操作流程

    linux基础之lvm基本操作流程    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装L…

    2017-03-19
  • Linux 第四天: (07月28日) Linux文件管理

    Linux 第四天: (07月28日) Linux文件管理         rootfs 根目录文件系统 root filesystemLSB  Linux Standard BaseFHS 文件系统分层结构 Filesystem Hierarchy Standard     蓝色表示 目…

    Linux干货 2016-08-08
  • 重定向、管道——Linux基本命令(9)

    1.     输出重定向 Linux默认输入是键盘,输出是显示器。可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,可以直接把一个已经写好的文件用‘<’指向这条命令,就直接可以统计这个文件的字符数等了。   STDOUT(标准输出)和STDERR(标准错误)可以被重…

    2017-07-20
  • 磁盘管理

    一、知识整理 1、每个扇区:512字节;每个柱面:256个磁头*63个扇区*512字节,大概为8M。centos6中分区使用起始结束柱面;centos7中分区使用起始结束扇区。EBR:扩展分区的第一个扇区。 2、MBR:master root record,1982年,使用32位表示扇区数,分区不超过2T。其中,一共512bytes字节,446bytes为b…

    Linux干货 2016-08-29