仓酷云

标题: 来一发CentOS办事器网卡不不乱的祸首罪魁 [打印本页]

作者: 若天明    时间: 2015-1-14 20:27
标题: 来一发CentOS办事器网卡不不乱的祸首罪魁
欢迎大家来到仓酷云论坛!近期新上的DBSERVER办事器,在压测中发明网卡很不不乱,压力测试方才举行十几分钟后,办事器反响就变得十分慢,PING的时分常常丢包并且SSH毗连也时断时续。刚入手下手觉得是高并发时招致的dbserver无呼应,能够看了一下CPU、内存和硬盘IO,发明都没有到达较高值,乃至比我们的预警值低良多,并且监测也标明DB办事器残剩资本很丰裕!真是对照奇异,那末引发网卡不不乱的缘故原由究竟是甚么呢?
向相干工程师懂得了一下情形,晓得这台DB办事器是双机热备中的一台办事器,头几天刚做的2组千兆网卡绑定。据工程师说绑定前也做过压测,没有呈现如许的成绩。岂非是绑定设置的哪一个环节出成绩了?因而决意从千兆网卡绑定举行具体反省。

妨碍征象图示:


1、反省ifcfg-bond0和ifcfg-bond1文件
#cat/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.58.11.11
NETMASK=255.255.255.0
GATEWAY=10.58.121.254
USERCTL=no
#cat/etc/sysconfig/network-scripts/ifcfg-bond1
DEVICE=bond1
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.10.10.18
NETMASK=255.255.255.0
GATEWAY=10.58.121.254
USERCTL=no

剖析:很尺度的设置,没有甚么成绩。在这里注重不要指订单个网卡的IP地点、子网掩码或网卡ID。将上述信息指定到假造适配器(bonding)中便可。

2、反省ifcfg-eth0、ifcfg-eth1、ifcfg-eth2、ifcfg-eth3文件
#cat/etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  ONBOOT=yes
  BOOTPROTO=none
  MASTER=bond0
SLAVE=yes
  USERCTL=no
ETHTOOL_OPTS="speed1000duplexfullautonegon"
  #cat/etc/sysconfig/network-scripts/ifcfg-eth1
  DEVICE=eth1
  ONBOOT=yes
  BOOTPROTO=none
  MASTER=bond1
SLAVE=yes
  USERCTL=no
ETHTOOL_OPTS="speed1000duplexfullautonegon"

#cat/etc/sysconfig/network-scripts/ifcfg-eth2
  DEVICE=eth2
  ONBOOT=yes
  BOOTPROTO=none
  MASTER=bond0
SLAVE=yes
  USERCTL=no
ETHTOOL_OPTS="speed1000duplexfullautonegon"
  #cat/etc/sysconfig/network-scripts/ifcfg-eth3
  DEVICE=eth3
  ONBOOT=yes
  BOOTPROTO=none
  MASTER=bond1
SLAVE=yes
  USERCTL=no
ETHTOOL_OPTS="speed1000duplexfullautonegon"

剖析:从设置文件上看是eth0和eth2绑定为BOND0,eth1和eth3绑定为BOND1.
(注:一时设置网卡的千兆全双工能够如许

ethtool-seth0speed1000duplexfullautonegon
ethtool-seth1speed1000duplexfullautonegon)

3、反省modprobe.conf设置文件
#cat/etc/modprobe.conf
aliaseth0bnx2
aliaseth1bnx2
aliaseth2bnx2
aliaseth3bnx2
aliasscsi_hostadaptermegaraid_sas
aliasscsi_hostadapter1ata_piix
aliasscsi_hostadapter2lpfc
aliasbond0bonding
optionsbond0miimon=100mode=0
aliasbond1bonding
optionsbond1miimon=100mode=1
###BEGINPP
include/etc/modprobe.conf.pp
###ENDPP

剖析:今后文件看到场
aliasbond0bonding
optionsbond0miimon=100mode=0
aliasbond1bonding
optionsbond1miimon=100mode=1
次要目标是使体系在启动时加载bonding模块,对外假造收集接口装备为bond0、bond1
别的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会以为链路没有成绩而持续利用。
这局部的设置也没有成绩。
 到这里仿佛还没看到成绩的地点,不外另有一个中央是人人简单无视的,那就是rc.local文件,为了让网卡绑定在每次启动后都能当即失效,我们一般会设置rc.local.以是我们还应反省一下这个文件。

4、反省rc.local文件
#cat/etc/rc.d/rc.local
touch/var/lock/subsys/local
ifenslavebond0eth0eth1
ifenslavebond1eth2eth3 

剖析:如许的设置便利开机启动时,主动载进设置。  
注重:这里是把eth0和eth1放到bond0里,eth2和eth3放到bond1里。假如人人细心回忆的话,会发明在第二步反省傍边是eth0和eth2绑定为BOND0,eth1和eth3绑定为BOND1的。看来成绩的祸首罪魁就在这里,那末如许设置错了,会形成甚么征象呢?

起首回忆一下网卡绑定的道理。我们晓得,在一般情形下,ethernet网卡只吸收目标mac地点是本身mac的ether帧,关于其余数据帧都过滤失落,以加重驱动步伐――也就是软件的包袱。可是ethernet网卡也撑持别的一种被称为promisc的形式,能够吸收收集上一切的帧,良多体系步伐如:sniffer、tcpdump,都运转在这个形式下。Bonding网卡绑定也运转在这个形式下,并且修正了驱动步伐中的mac地点,将两块网卡的mac地点改成不异,能够吸收特定mac的数据帧。然后把响应的数据帧传送给bond驱动步伐处置。

那末在我们反省的这个rc.local文件中,因为体系工程师的大意把网卡绑定设置错了,如许一个渺小的设置毛病就会形成一个IP地点对应两个分歧的MAC地点,明显会形成收集的提早和不不乱,这跟ARP打击对照像。当有多个分歧MAC对应一样的IP,收集内里各呆板包含路由器对应这个IP的ARP会一直的变,包不是丢了就是发到毛病的MAC了。

我们能够反省一下各网卡的MAC来确认一下。
eth0Linkencap:EthernetHWaddrD4:AE:52:7F:D1:74
UPBROADCASTRUNNINGSLAVEMULTICASTMTU:1500Metric:1
RXpackets:358839038errors:0dropped:0overruns:0frame:0
TXpackets:445740732errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:84060158481(78.2GiB)TXbytes:324117093205(301.8GiB)
Interrupt:178Memory:c6000000-c6012800

eth1Linkencap:EthernetHWaddrD4:AE:52:7F:D1:76
UPBROADCASTRUNNINGSLAVEMULTICASTMTU:1500Metric:1
RXpackets:1319022534errors:0dropped:0overruns:0frame:0
TXpackets:827575644errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:402801656790(375.1GiB)TXbytes:249765452577(232.6GiB)
Interrupt:186Memory:c8000000-c8012800

eth2Linkencap:EthernetHWaddrD4:AE:52:7F:D1:74
UPBROADCASTRUNNINGSLAVEMULTICASTMTU:1500Metric:1
RXpackets:368142910errors:0dropped:0overruns:0frame:0
TXpackets:445816695errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:88487806059(82.4GiB)TXbytes:324236716714(301.9GiB)
Interrupt:194Memory:ca000000-ca012800

eth3Linkencap:EthernetHWaddrD4:AE:52:7F:D1:76
UPBROADCASTRUNNINGSLAVEMULTICASTMTU:1500Metric:1
RXpackets:1311065414errors:0dropped:0overruns:0frame:0
TXpackets:827581593errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:400383501186(372.8GiB)TXbytes:249850192137(232.6GiB)
Interrupt:202Memory:cc000000-cc012800

能够看到eth0和eth2的MAC是一样的,eth1和eth3的MAC是一样的。

针对成绩缘故原由,当即修正rc.local这个文件,改回准确的设置。
ifenslavebond0eth0eth2
ifenslavebond1eth1eth3 

然后重启办事器,再举行压测,发明公然统统一般了。


总结:Linux双网卡的绑定是一个对照详细的操纵事情,在设置傍边我们不但要熟习懂得它的道理,更要在安排实行时细心仔细,一个忽略就会形成收集的不不乱和节点的瘫痪。
本文出自“滴水穿石”博客,请务必保存此出处http://xjsunjie.blog.51cto.com/999372/886294
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
作者: 只想知道    时间: 2015-1-16 18:06
标题: 来一发CentOS办事器网卡不不乱的祸首罪魁
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
作者: 小女巫    时间: 2015-1-25 22:29
Linux?最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具,所以Linux操作系统有着广泛的应用空间。
作者: 老尸    时间: 2015-2-4 15:56
Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
作者: 乐观    时间: 2015-2-10 04:21
下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练。
作者: 精灵巫婆    时间: 2015-2-28 21:40
然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。
作者: 小妖女    时间: 2015-3-10 13:01
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
作者: 深爱那片海    时间: 2015-3-17 12:09
放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。
作者: 分手快乐    时间: 2015-3-24 13:26
期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2