一、什么是bondingLinux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余

二、bonding应用方向

1、网络负载均衡

对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding

2、网络冗余

对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。bonding 也能为网卡提供冗余的支持。把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份

三、bonding实验环境及配置

1、实验环境系统为:CentOS,使用4块网卡(eth0、eth1  ==>  bond0;eth2、eth3 ==> bond1)来实现bonding技术

2、bonding配置

第一步:先查看一下内核是否已经支持bonding

1)如果内核已经把bonding编译进内核,那么要做的就是加载该模块到当前内核;其次查看ifenslave该工具是否也已经编译

modprobe  -l   bond*或者 modinfo   bonding

modprobe   bonding

lsmod | grep 'bonding'

echo  'modprobe bonding &> /dev/null'  >>  /etc/rc.local(开机自动加载bonding模块到内核)

which  ifenslave

注意:默认内核安装完后就已经支持bonding模块了,无需要自己手动编译

2)如果bonding还没有编译进内核,那么要做的就是编译该模块到内核

(1)编译bonding

tar -jxvf  kernel-XXX.tar.gz

cd  kernel-XXX

make  menuconfig

选择 " Network device support "  ->  " Bonding driver support "

make bzImage

make modules  &&  make modules_install

make install

(2)编译ifenslave工具

gcc -Wall -O -I   kernel-XXX/include ifenslave.c -o ifenslave

第二步:主要有两种可选择(第1种:实现网络负载均衡,第2种:实现网络冗余)

例1:实现网络冗余(即:mod=1方式,使用eth0与eth1)

(1)编辑虚拟网络接口配置文件(bond0),并指定网卡IP

vi   /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.0.254

BROADCAST=192.168.0.255

NETMASK=255.255.255.0

NETWORK=192.168.0.0

GATEWAY=192.168.0.1

USERCTL=no

TYPE=Ethernet

注意:建议不要指定MAC地址vi   /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

USERCTL=no

MASTER=bond0

SLAVE=yes注意:建议不要指定MAC地址

vi   /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yesUSERCTL=no

MASTER=bond0

SLAVE=yes

注意:建议不要指定MAC地址

(2)编辑模块载入配置文件(/etc/modprobe.conf),开机自动加载bonding模块到内核

vi   /etc/modprobe.conf

linux bonding 原理,linux bonding原理相关推荐

  1. linux 双网卡绑定(bonding)实现负载均衡或故障转移

    linux 双网卡绑定(bonding)实现负载均衡或故障转移 我们在这介绍的Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是 ...

  2. linux网卡汇聚模式,Linux网卡聚合 linux多网卡绑定聚合之bond模式原理

    Linux网卡聚合 linux多网卡绑定聚合之bond模式原理 发布时间:2014-10-14 09:44:35   作者:佚名   我要评论 将多个Linux网络端口绑定为一个,可以提升网络的性能, ...

  3. Linux网卡绑定(bonding)配置

    Linux网卡绑定(bonding)配置 目录 1 网卡绑定(Bonding)概述... 4 2 Linux下bonding配置... 6 2.1 建立bonding网卡.. 6 2.2 配置开机自动 ...

  4. 超专业解析!10分钟带你搞懂Linux中直接I/O原理

    导语 | 本文主要以一张图为基础,向大家介绍Linux在I/O上做了哪些事情,即Linux中直接I/O原理,希望本文的经验和思路能为读者提供一些帮助和思考. 引言 我们先看一张图: 这张图大体上描述了 ...

  5. linux绑定盘符吗,Linux盘符绑定实现原理.PDF

    Linux盘符绑定实现原理 Linux盘符绑定实现原理 正一 2016.7.25 目 录  Linux盘符的分配  Linux内核IDR机制  Linux盘符绑定 Linux盘符的分配 sd_ ...

  6. linux 查看软连接_linux删除原理

    linux删除原理 1. linux文件的概述  linux系统中文件和目录的属性主要包括:索引节点号(inode).文件类型及权限.硬链接的数量.文件或目录所属的用户(属主).文件或目录所属的组( ...

  7. Linux 写时复制机制原理

    在 Linux 系统中,调用 fork 系统调用创建子进程时,并不会把父进程所有占用的内存页复制一份,而是与父进程共用相同的内存页,而当子进程或者父进程对内存页进行修改时才会进行复制 -- 这就是著名 ...

  8. linux删除、读取文件原理

    linux删除文件原理 LINUX的文件名是存在父目录的block里面,并指向这个文件额inode节点,这个文件的inode节点再标记指向存放这个文件的block的数据块.我们删除一个文件,实际上并不 ...

  9. 【Linux内核】内存映射原理

    [Linux内核]内存映射原理 物理地址空间 物理地址是处理器在总线上能看到的地址,使用RISC(Reduced Instruction Set Computing精简指令集)的处理器通常只实现一个物 ...

最新文章

  1. 百度2019年财报喜忧参半,决胜AI时代仍不好说
  2. (5.0) Tomcat 8 源码, 初始化 bootstrap
  3. cad图纸目录自动生成插件_如何自动生成论文目录?
  4. 【计算机网络】数据链路层 : 选择重传协议 SR ( 帧分类 | “发送方“ 确认帧、超时事件 | “接受方“ 接收帧机制 | 滑动窗口长度 | 计算示例 )★
  5. apply通过实例理解
  6. wxWidgets:wxSpinCtrl类用法
  7. 【js】知乎chrome控制台字符画招聘信息实现
  8. Quartz+log4net实现控制台程序定时运行,并且记录日志
  9. vimb java,我可以让vim接受\b而不是\lt;和\gt ;?
  10. 第7章 比高斯更快的计算
  11. mysql 分段执行_19个MySQL优化技巧,索引优化这样做最有效!
  12. Visual Studio 2012 Ultimate旗舰版序列号
  13. Mybatis与JDBC的对比超详细笔记
  14. 把我的漫画浏览器后台程序迁移到GAE上了
  15. 容器技术Docker K8s 26 容器服务ACK基础与进阶-监控管理
  16. SQL Server 计算年龄函数
  17. operator int()用法
  18. nagios分布式监控中心服务器迁移(使用nsca)
  19. 生产服务器变慢了排查思路
  20. gis小白初学笔记一

热门文章

  1. onunload、onbeforeunload事件详解--zhuan
  2. 如何查看80端口是否被占用
  3. linux查询mysql内存使用率_linux查看内存占用情况
  4. table 文字设置水平垂直居中
  5. E销宝:DSP广告|投放前要做的准备工作有哪些?
  6. 关于高校项目出差时的一些记录日志
  7. vb 6.0服务器组件选哪个,Visual Basic6.0
  8. Jquery-图片放大镜案例分享(源码)
  9. linux sudo visudo
  10. php 长时间任务,棘轮PHP和长时间运行的任务