仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 447|回复: 7
打印 上一主题 下一主题

[CentOS(社区)] 来一发Centos下双网卡绑定手艺完成负载平衡和生效回护

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:18:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!Linux下双网卡绑定手艺完成负载平衡和生效回护(在Centos5和Centos6通用)
坚持办事器的高可用性是企业级IT情况的主要要素。个中最主要的一点是办事器收集毗连的高可用性。网卡(NIC)绑定手艺有助于包管高可用性特征并供应别的上风以进步收集功能。
我们在这先容的Linux双网卡绑定完成就是利用两块网卡假造成为一块网卡,这个聚合起来的设备看起来是一个独自的以太网接口设备,普通点讲就是两块网卡具有不异的IP地点而并行链接聚分解一个逻辑链路事情。实在这项手艺在Sun和Cisco中早已存在,被称为Trunking和Etherchannel手艺,在Linux的2.4.x的内核中也接纳这这类手艺,被称为bonding。bonding手艺的最早使用是在集群――beowulf上,为了进步集群节点间的数据传输而计划的。上面我们会商一下bonding的道理,甚么是bonding必要从网卡的混同(promisc)形式提及。我们晓得,在一般情形下,网卡只吸收目标硬件地点(MACAddress)是本身Mac的以太网帧,关于其余数据帧都滤失落,以加重驱动步伐的包袱。可是网卡也撑持别的一种被称为混同promisc的形式,能够吸收收集上一切的帧,好比说tcpdump,就是运转在这个形式下。bonding也运转在这个形式下,并且修正了驱动步伐中的mac地点,将两块网卡的Mac地点改成不异,能够吸收特定mac的数据帧,然后把响应的数据帧传送给bond驱动步伐处置。
说了半天实际,实在设置很复杂,一共四个步骤:
实行的操纵体系是RedhatLinuxEnterprise3.0
绑定的条件前提:芯片组型号不异,并且网卡应当具有本人自力的BIOS芯片

双网卡绑定的拓朴图(见下图)


1.编纂假造收集接口设置文件,指定网卡IP
vi/etc/sysconfig/network-scripts/ifcfg-bond0
[root@rhas-13root]#cp/etc/sysconfig/network-scripts/ifcfg-eth0ifcfg-bond0

2#viifcfg-bond0DEVICE=bond0
BOOTPROTO=static
IPADDR=172.31.0.13
NETMASK=255.255.252.0
BROADCAST=172.31.3.254
ONBOOT=yes
TYPE=Ethernet

这里要注重,不要指订单个网卡的IP地点、子网掩码或网卡ID。将上述信息指定到假造适配器(bond0)中便可。
[root@rhas-13network-scripts]#viifcfg-eth0DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

[root@rhas-13network-scripts]#viifcfg-eth1DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

3#vi/etc/modprobe.conf
编纂/etc/modprobe.conf文件,到场以下一行内容,以使体系在启动时加载bonding模块,对外假造收集接口设备为bond0
到场以下两行aliasbond0bonding
optionsbond0mode=0miimon=250use_carrier=1updelay=500downdelay=500

申明:miimon是用来举行链路监测的。好比:miimon=100,那末体系每100ms监测一次链路毗连形态,假如有一条线路欠亨就转进另外一条线路;mode的值暗示事情形式,他共有0,1,2,3等四种形式,经常使用的为0,1两种。
mode=0暗示loadbalancing(round-robin)为负载平衡体例,两块网卡都事情。
mode=1暗示fault-tolerance(active-backup)供应冗余功效,事情体例是主备的事情体例,也就是说默许情形下只要一块网卡事情,另外一块做备份。
bonding只能供应链路监测,即从主机到互换机的链路是不是接通。假如只是互换机对外的链路down失落了,而互换机自己并没有妨碍,那末bonding会以为链路没有成绩而持续利用

到这时候已设置终了,重启办事便可

servicenetworkrestart

重启会瞥见以下信息就暗示设置乐成了
...............。
Bringingupinterfacebond0OK
Bringingupinterfaceeth0OK
Bringingupinterfaceeth1OK
...............。

上面我们会商以下mode分离为0,1时的情形

mode=1事情在主备形式下,这时候eth1作为备份网卡是noarp的
[root@rhas-13network-scripts]#ifconfig考证网卡的设置信息
bond0Linkencap:EthernetHWaddr00:0E:7F:25:D9:8B
inetaddr:172.31.0.13Bcast:172.31.3.255Mask:255.255.252.0
UPBROADCASTRUNNINGMASTERMULTICASTMTU:1500Metric:1
RXpackets:18495errors:0dropped:0overruns:0frame:0
TXpackets:480errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:0
RXbytes:1587253(1.5Mb)TXbytes:89642(87.5Kb)

eth0Linkencap:EthernetHWaddr00:0E:7F:25:D9:8B
inetaddr:172.31.0.13Bcast:172.31.3.255Mask:255.255.252.0
UPBROADCASTRUNNINGSLAVEMULTICASTMTU:1500Metric:1
RXpackets:9572errors:0dropped:0overruns:0frame:0
TXpackets:480errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:833514(813.9Kb)TXbytes:89642(87.5Kb)
Interrupt:11

eth1Linkencap:EthernetHWaddr00:0E:7F:25:D9:8B
inetaddr:172.31.0.13Bcast:172.31.3.255Mask:255.255.252.0
UPBROADCASTRUNNINGNOARPSLAVEMULTICASTMTU:1500Metric:1
RXpackets:8923errors:0dropped:0overruns:0frame:0
TXpackets:0errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:753739(736.0Kb)TXbytes:0(0.0b)
Interrupt:15
那也就是说在主备形式下,当一个收集接口生效时(比方主互换机失落电等),不会呈现收集中止,体系会依照cat/etc/rc.d/rc.local里指定的网卡按次事情,呆板仍能对外办事,起到了生效回护的功效。

在mode=0负载平衡事情形式,他能供应两倍的带宽,上面我们来看一下网卡的设置信息
[root@rhas-13root]#ifconfig
bond0Linkencap:EthernetHWaddr00:0E:7F:25:D9:8B
inetaddr:172.31.0.13Bcast:172.31.3.255Mask:255.255.252.0
UPBROADCASTRUNNINGMASTERMULTICASTMTU:1500Metric:1
RXpackets:2817errors:0dropped:0overruns:0frame:0
TXpackets:95errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:0
RXbytes:226957(221.6Kb)TXbytes:15266(14.9Kb)

eth0Linkencap:EthernetHWaddr00:0E:7F:25:D9:8B
inetaddr:172.31.0.13Bcast:172.31.3.255Mask:255.255.252.0
UPBROADCASTRUNNINGSLAVEMULTICASTMTU:1500Metric:1
RXpackets:1406errors:0dropped:0overruns:0frame:0
TXpackets:48errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:113967(111.2Kb)TXbytes:7268(7.0Kb)
Interrupt:11

eth1Linkencap:EthernetHWaddr00:0E:7F:25:D9:8B
inetaddr:172.31.0.13Bcast:172.31.3.255Mask:255.255.252.0
UPBROADCASTRUNNINGSLAVEMULTICASTMTU:1500Metric:1
RXpackets:1411errors:0dropped:0overruns:0frame:0
TXpackets:47errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:112990(110.3Kb)TXbytes:7998(7.8Kb)
Interrupt:15

在这类情形下呈现一块网卡生效,仅仅会是办事器出口带宽下落,也不会影响收集利用。


经由过程检察bond0的事情形态查询能具体的把握bonding的事情形态
[root@rhas-13bonding]#cat/proc/net/bonding/bond0
bonding.c:v2.4.1(September15,2003)

BondingMode:loadbalancing(round-robin)
MIIStatus:up
MIIPollingInterval(ms):0
UpDelay(ms):0
DownDelay(ms):0
MulticastMode:allslaves

SlaveInterface:eth1
MIIStatus:up
LinkFailureCount:0
PermanentHWaddr:00:0e:7f:25:d9:8a

SlaveInterface:eth0
MIIStatus:up
LinkFailureCount:0
PermanentHWaddr:00:0e:7f:25:d9:8b

Linux下经由过程网卡绑定手艺既增添了办事器的牢靠性,又增添了可用收集带宽,为用户供应不中断的关头办事。

后面只是2个网口绑定成一个bond0的情形,假如我们要设置多个bond口,好比物理网口eth0和eth1构成bond0,eth2和eth3构成bond1,

那末网口设置文件的设置***和下面第1步讲的***不异,只是/etc/modprobe.d/bonding.conf的设定就不克不及像上面如许复杂的叠加了:

aliasbond0bonding

optionsbondingmode=1miimon=200

aliasbond1bonding

optionsbondingmode=1miimon=200

准确的设置***有2种:

第一种,你能够看到,这类体例的话,多个bond口的形式就只能设成不异的了:

aliasbond0bonding

aliasbond1bonding

optionsbondingmax_bonds=2miimon=200mode=1

第二种,这类体例,分歧的bond口的mode能够设成纷歧样:

aliasbond0bonding

optionsbond0miimon=100mode=1

installbond1/sbin/modprobebonding-obond1miimon=200mode=0

细心看看下面这2种设置***,如今假如是要设置3个,4个,乃至更多的bond口,你应当也会了吧!

跋文:复杂的先容一下下面在加载bonding模块的时分,options里的一些参数的寄义:

miimon监督收集链接的频度,单元是毫秒,我们设置的是200毫秒。

max_bonds设置的bond口个数

modebond形式,次要有以下几种,在一样平常的实践使用中,0和1用的对照多,

假如你要深切懂得这些形式各自的特性就必要靠读者你本人往查材料并做理论了。

0或balance-rr轮转战略,供应负载平衡和耐妨碍功效,按按次轮番把包发给包括在bond口内的网口。

1或active-backup主备战略,供应高耐妨碍功效,逻辑复杂,一个处于激活形态,一个失利,别的一个主动激活。

2或balance-xorXOR战略,供应负载平衡和耐妨碍功效。

3或broadcast播送战略,耐妨碍功效。把数据以播送的体例,发给包括在该bond口内的一切网口。

4或802.3adIEEE802.3ad静态链接汇合。

5或balance-tlb主动顺应传输负载平衡战略。

6或balance-alb主动顺应负载平衡战略。


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-17 10:33:32 | 只看该作者
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-26 10:39:04 | 只看该作者
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。
爱飞 该用户已被删除
地板
发表于 2015-2-4 20:19:26 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
5#
发表于 2015-2-10 07:33:06 | 只看该作者
把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
只想知道 该用户已被删除
6#
发表于 2015-3-1 06:34:56 | 只看该作者
掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。
再现理想 该用户已被删除
7#
发表于 2015-3-17 09:09:32 | 只看该作者
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。
莫相离 该用户已被删除
8#
发表于 2015-3-24 05:46:17 | 只看该作者
其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-23 17:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表