li
  当前位置:主页 > 集群技术 > 文章内容
li
linux as5下双网卡绑定技术的实现细节
来源: www.ixdba.net  作者: IXDBA.NET官方    时间:2008-08-29   阅读:52  

所谓bonding,就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。Kernels 2.4.12及以后的版本均提供bonding模块,以前的版本可以通过patch实现。

   1:首先要看linux是否支持bonding,RHEL4已经默认支持了.(大部分发行版都支持)
# modinfo bonding
 
filename:       /lib/modules/2.6.18-8.el5/kernel/drivers/net/bonding/bonding.ko
author:         Thomas Davis, tadavis@lbl.gov and many others
description:    Ethernet Channel Bonding Driver, v3.0.3
version:        3.0.3
license:        GPL
srcversion:     2547D22885C2FDF28EF7D98
如果有类似上面的信息输出,说明已经支持了.
 
如果没有,说明内核不支持bonding,需要重新编译内核
编译内核的步骤这里就不多写了,在make menuconfig里面
找到Bonding driver support这样的对话框,选中它.
如果是模块编译,还需要挂载模块.挂载bonding 模块的方法;
[root@localhost#] modprobe bonding
如果/sbin/ifenslave没有,我们还需要把它也单独编译出来
[root@lin:/home/beinan#] cd /usr/src/linux-2.6.20/Documentation/networking
[root@lin:/home/networking#] gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux-2.6.20/include ifenslave.c -o ifenslave
[root@lin:/home/networking#] cp ifenslave /sbin/ifenslave
 

2.确认你目前使用的网卡,检查/etc/sysconfig/network-scripts目录下以ifcfg-开头的文件,应该为eth0, eth1...

3.配置虚拟网卡bond0

网卡启动协议,可以使用DHCP,也可以配置static IP,这里我试验了static,dhcp,none发现没有什么区别 ,最好通过vi编辑配置文件

[root@server1 ~]# cd /etc/sysconfig/network-scripts
[root@server1 network-scripts]# cat ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=192.168.0.0
NETMASK=255.255.255.0
IPADDR=192.168.0.10
USERCTL=no
GATEWAY=192.168.0.254
TYPE=Ethernet

4.修改eth0, eth1配置文件

[root@server1 network-scripts]# ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=yes
[root@server1 network-scripts]# ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=yes

5.将新添加的bond0设备加入modprobe.conf中,以便kernel识别。加入设置参数,miimon值表示两块网卡相互监测的时间,以ms为单位。mode值为工作模式,可设置为高可用还是负载均衡,0为高可用(默认值),1为负载均衡,另外还有一种XOR模式。

alias bond0 bonding

www.ixdba.net


options bond0 miimon=100 mode=1

说明:miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。
   mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。
   mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.  
bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。

需要说明的是如果想做成负载均衡,仅仅设置这里options bond0 miimon=100 mode=0是不够的,还需要设置交换机的端口.
 
从原理分析一下(bond运行在mode 0下):
mode 0下bond所绑定的网卡的IP都被修改成一样的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。
所以mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址。



  上一篇: Linux下双网卡绑定为一块网卡实现...   下一篇: linux Bonding技术的实现
li
 §相关评论  
 热点文章

·Linux RAC OCFS文件系统与INOD
·Oracle10g R2 Installing RAC
·Linux服务器集群系统(lvs)
·Linux对存储文件系统的技术架构
·linux常用集群文件系统简介
·如何选择合适的双机和集群软件
·LifeKeeper软件介绍
·纯软件方式的双机热备方案深入
·双机热备:基于共享存储与纯软
·双机热备与数据备份,数据安全的
·双机热备常见问题释疑
li
 编辑推荐
·Linux RAC OCFS文件系统与INOD
·Oracle10g R2 Installing RAC
·Linux服务器集群系统(lvs)
·Linux对存储文件系统的技术架构
·linux常用集群文件系统简介
·如何选择合适的双机和集群软件
·LifeKeeper软件介绍
·纯软件方式的双机热备方案深入
·双机热备:基于共享存储与纯软
·双机热备与数据备份,数据安全的
·双机热备常见问题释疑
li
 相关篇章
·Linux下双网卡绑定为一块网卡实现...
·nginx简明教程负载均衡和php解释
·Red Hat集群(Cluster)套件介绍
·redhat linux下GFS与RHCS安装日记
·oracle rac日常基本维护命令
·oracle 10g dataguard 在windows...
·Rose HA日常相关维护命令与技巧
·构建基于Linux具有高可用性的集群...
·硬件的负载均衡器和LVS实现负载均...
·Linux下多网卡实现负载均衡技术
·linux Bonding技术的实现
·使用IPMI工具实现对服务器的远程...
·nginx负载均衡的4中配置策略
·Heartbeat中Watchdog和Softdog的...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接