• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Linux也让双网卡做天人合“一”而用

发布: 2007-5-26 11:31 | 作者: 李晨光 | 来源: ccidnet.com | 查看: 48次 | 进入软件测试论坛讨论

领测软件测试网 服务器网络连通状况直接影响着服务器的可用性,利用双网卡(NIC)绑定技术,可以实现服务器网卡的失效保护和负载均衡,有助于提高网络性能,从而保证服务器的高可用性(见图1)。












图1 双网卡绑定后的网络拓扑图


双网卡绑定技术

双网卡绑定就是将两块物理网卡虚拟成一块逻辑网卡,使其具有相同的IP地址,合成一个逻辑链路进行工作。这项技术在Sun和Cisco的设备中早已存在,分别被称为Trunking和Etherchannel,在Linux中这种技术被称为Bonding。Bonding技术最早应用在集群——Beowulf上,是为了提高集群节点间的数据传输效率而设计的。

Bonding运行在网卡的混杂(Promisc)模式下,而且它将两块网卡的MAC地址修改为一样的。混杂模式就是网卡不再只接收目的硬件地址是自身MAC地址的数据帧,而是可以接收网络上所有的帧。利用Bonding技术配置双网卡绑定的前提条件是两块网卡芯片组型号相同,并且都具备独立的BIOS芯片。

配置方法

1. 指定网卡IP

建立并修改ifcfg-bond0文件,把IP地址、子网掩码、网卡ID等信息指定到虚拟网卡(bond0)即可。注意,不要指定单个网卡的这些信息。

#cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0
            #vi /etc/sysconfig/network-scripts/ifcfg-bond0

把ifcfg-bond0文件修改为如下内容:

 

DEVICE=bond0
            BOOTPROTO=static
            IPADDR=172.31.0.13
            NETMASK=255.255.252.0
            BROADCAST=172.31.3.255
            ONBOOT=yes
            TYPE=Ethernet
IP地址、广播地址等请根据具体情况填写。

另外,还需要将两块网卡的配置文件ifcfg-eth0和ifcfg-eth1中的“BOOTPROTO”设为“dhcp”,并且删除关于“IPADDR”、“NETMASK”和“BROADCAST”的设置。

2.修改/etc/modules.conf 文件

编辑/etc/modules.conf文件,加入如下内容,以使系统在启动时加载Bonding模块。

alias bond0 bonding
            options bond0 miimon=100 mode=1

“miimon=100”表示系统每100ms监测一次链路连接状态,如果监测到有一条线路不通就转入另一条线路。

“mode”的值表示工作模式,共有0、1、2和3四种模式,常用的为0、1两种。

3.修改/etc/rc.d/rc.local文件

加入以下两行(路由视具体情况而定):

 

ifenslave bond0 eth0 eth1
            route add -net 172.31.3.254 netmask 255.255.255.0 bond0

以上配置完毕后重新启动机器。重启时看见以下信息就表示双网卡绑定配置成功了。

 

................
            Bringing up interface bond0 OK
            Bringing up interface eth0 OK
            Bringing up interface eth1 OK
            ................
失效保护和负载均衡

“mode”设为1时,Bonding提供冗余功能(Fault-Tolerance (active-backup)),即Bonding工作在主备模式下,同时只有一块网卡工作,另一块作为备份。当主网卡失效时,系统会按照文件/etc/rc.d/rc.local里指定的顺序启动备用网卡工作,保证服务器不会出现长时间的网络中断。

用ifconfig命令查看网卡的配置信息,显示如下:

bond0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B
            inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
            UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
            RX packets:18495 errors:0 dropped:0 overruns:0 frame:0
            TX packets:480 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:0
            RX bytes:1587253 (1.5 Mb) TX bytes:89642 (87.5 Kb)
            eth0 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B
            inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
            UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
            RX packets:9572 errors:0 dropped:0 overruns:0 frame:0
            TX packets:480 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:833514 (813.9 Kb) TX bytes:89642 (87.5 Kb)
            Interrupt:11
            eth1 Link encap:Ethernet HWaddr 00:0E:7F:25:D9:8B
            inet addr:172.31.0.13 Bcast:172.31.3.255 Mask:255.255.252.0
            UP BROADCAST RUNNING NOARP SLAVE MULTICAST MTU:1500 Metric:1
            RX packets:8923 errors:0 dropped:0 overruns:0 frame:0
            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:753739 (736.0 Kb) TX bytes:0 (0.0 b)
            Interrupt:15

“mode”设为0时,Bonding工作在负载均衡(Load Balancing (round-robin))方式下,即两块网卡同时工作,这时理论上Bonding能提供两倍的带宽。在这种情况下如果一块网卡失效,仅仅会使服务器出口带宽下降,并不会影响网络使用。

通过ifconfig命令查看网卡的配置信息,“mode=0”和“mode=1”的区别在于eth1是工作在“SLAVE” 状态,而非“NOARP”。

小结

通过以下命令可以详细掌握Bonding的工作状态:

 

# cat /proc/net/bonding/bond0
            bonding.c:v2.4.1 (September 15, 2003)
            Bonding Mode: load balancing (round-robin)
            MII Status: up
            MII Polling Interval (ms): 0
            Up Delay (ms): 0
            Down Delay (ms): 0
            Multicast Mode: all slaves
            Slave Interface: eth0
            MII Status: up
            Link Failure Count: 0
            Permanent HW addr: 00:0e:7f:25:d9:8a
            Slave Interface: eth1
            MII Status: up
            Link Failure Count: 0
            Permanent HW addr: 00:0e:7f:25:d9:8b

无论是“mode=0”还是“mode=1”,都大大增加了Linux服务器的高可用性,使服务器可以为用户提供不间断的关键服务。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网