昨日,借用的锐捷万兆交换机及Intel万兆网卡已到,所以把设备带到客户处准备把原有的千兆网络更换成万兆网络。

    在去客户途中的车上,我就在想更换网络的步骤,不外乎就是停机,开机箱,断电源,加入新的万兆网卡,开机,安装驱动,接入万兆交换机等一系列步骤。但在实际操作时还是遇到了诸多问题。

    平生第一次见万兆交换机及万兆网卡,拆开包装算是开了眼界,万兆网卡与HBA卡类似,都是卡与光模块组合成一块网卡,万兆交换机也算是一个大家伙,所用的光模块是这次向北京一公司借用的光模块,网卡也是这家公司借用的,光模块都是10GB,波长为850nm的短波模块。在去电脑城采购网卡与交换机间的光纤跳线时,有一个疑问出现,我之前接触到的类似卡与光交换机连接都是HBA卡与光交换机的连接,光跳线都是采购的LC-LC的多模跳线,可那是存储与服务器间的连接,走的是光纤协议,而这次的环境走的是以太网协议,这次所使用的跳线与存储到HBA卡的跳线是一样的吗?可再想起,光纤跳线只是一种传输介质而已,不有像HAB卡或网卡上复杂的电子元件,所以不会涉及到编码及解码等复杂的功能,所以得到的结论是市面上的光纤跳线可以使用。一切准备妥当了就准备开工吧。

    先把三台服务器都关机,先把管理服务器安装万兆网卡,开箱把卡安装在相应的插槽上,各个插槽的速率不一样,如果安装好后驱动发现网卡工作异常,那有可能是网卡与插槽的速率不匹配,这样可试着更换插槽试试。开机进入系统,安装好驱动,看似一切都正常,但以在windows下的经验,驱动装好后,系统能在自己识别网卡,但在linux下这样的经验是不准确的,在“/etc/sysconfig/network-script”目录下并没有万兆网卡的配置文件,且用“setup”管理工具配置网络时也没有万兆网卡的信息,但这并不是表示这网卡没有正确识别到,只是需要手工配置,在这一点上linux系统的用户体验没有windows系统做得好,如果linux做成这样,我想那也就不叫linux了。配置网卡的正确步骤应该是这样的:

1、查看“/etc/udev/rules.d/70-pressisitent-net.rules”文件,这文件里记录了万兆网卡的MAC地址及设备名称等信息;

2、进入“/etc/sysconfig/network-script”目录,以“ifcfg-eth0”作为模板copy一份出来重新命令为“ifcfg-eth2”,这里的“eth2”就是在"70-pressisitent-net.rules"文件中相应的设备名称,修改文件中的“DEVICE=eth2”,把“HWADDR=”修改成万兆网卡的MAC地址,把UUID的一行注释,再在相应的地方配置好IP地址等相应信息,保存退出后重启网络服务,完成后,再用“setup”进行网络设置时就可以看到万兆网卡的型号等信息了。

其余的两台服务器也按照以上方法把网卡安装好,为了与之前千兆网络中的IP地址相一致,所以在两计算节点上的万兆网卡的IP地址分别配置成:192.168.100.1与192.168.100.2,在管理节点上配置成:192.168.100.100,这些地址都与千兆环境时相同,但奇怪的事情是这三台服务器间的网络不通,但本机能ping通自己的IP地址,经过多次重新检查相应的网卡的配置文件及重新启动网络服务,但各服务器间始终无法通过ping命令的测试。开始排除故障:

1、检查各光纤LC端口,都有一条光纤是有红色光发出,朋网卡上有光的光纤接入到交换机接口是接入到无光的那个LC端口的,且网卡上及交换机上的指示灯看起也是绿色闪烁的,看起是正常工作的;通过反复的修改网卡的配置文件,但在这个C类地址各服务器间就是ping不通。

2、在网卡及链路上检查没问题,那注意力转移到万兆交换机上,试想这测试设备是不是被配置过导致网络不通,但再细想,哪有这样奇葩的配置让某个网段的IP间不能互相访问,又再凑巧让我配置成这个段的了,如果真是这样,我可以去买×××去了,这种猜想也不能成立;最后还是绕过交换机,把两网卡直接相连来做测试,这样的测试结果依然是不通。

3、最后真没辙了,我就把各个网卡的IP地址修改成了另一个网段的,这里把管理服务器mu01的IP配置成10.0.0.1,计算节点cu01的IP配置成10.0.0.2,计算节点cu02的IP配置成10.0.0.3。这样配置后各个节点间居然能ping通了,我只能说奇了怪,我无语中……

    在排除网络故障时还有一个插曲,就是两个计算节点安装好网卡重新启动后,系统启动到centos桌面环境中的进度条时一直卡着无法进入让输入用户名及密码,且通过“ctrl+alt+F3”这样来切换终端也不好用,后来分析这是因为两个计算节点的“/home”"/opt"等目录是通过管理节点的nfs服务提供映射过来的,在调试网络时管理服务器原有的千兆网卡的Ip地址改变或因没接入网络导致计算节点无法挂载相应的目录,所以系统一直卡着无法进入系统,在修改原有千兆网卡的IP时,我多长了一个心眼,我并没有把计算节点原有IP直接删除,而是修改成了原有IP同一网段的IP地址,所以在出现计算节点因不能挂载 NFS提供的目录时还可以通过千兆网络把计算节点与管理节点连接,这样NFS就可以正常工作,计算节点的系统又能启动到桌面。知道原因后就在两计算节点上取消开机自己挂载NFS提供的目录,把网络配置好后再重启开启NFS开机自动挂载。

    网络的问题已修改好后,服务器都正常的启动起来,在计算节点上手动启动PBS的相应服务“service pbs_mom start”,但在管理节点上通过“pbsnodes”命令查看节点状态时,两计算节点都是“down”状态,咨询高性能部工程师,说是可能是因ip的变化导致的。因时间已接近晚上8点了,所以协调工程师明日有时间远程过来看看,但后来我又电联另一工程师,他给了我一个重要的信息,他问我在管理服务器上重新启动“pbs_server”这个服务没有,仔细想来这个还真没有启动,今天下午又去客户那里按照正常的开机顺序把系统启动起来,在管理服务器上“service pbs_server start”,在两个计算节点上都“service pbs_mom start”,再回到管理服务器上用“pbsnodes”查看节点状态时,两节点状态是"free"的,这样总算正常的。

    最后试着像之前一样在一计算节点的“/home”中用dd命令进行测试,但这次测试的速率也只有80MB/s左右,而且多闪测试的速率一点也不稳定,咨询工程师后说这是正常的,但我直没想明白,难道这样测试方法有问题,还是可信度不高。再想想在千兆环境的并行计算测试中通过lampps的日志结果分析在并行计算时大部份时间是花在的“outfile”这部份,而outfile难道不是把计算得到的结果写入到硬盘中?现在网络从1G升级到了10G,但dd的测试速度依然不理想。既然高性能部的工程师都这样说子,那且暂时就这样吧,等测试结果出来了就知道计算速度上是否有提升了。

    最后再来说说两个命令,一个是"top",另一个是“mpstat”,在万兆的环境中通过管理节点提交了一个用64个核心的计算任务,用“top”命令查看负载时,用户空间所占cpu的百分比维持在90%左右,而用“mpstat -P ALL”查看每个核心的用户空间所占cpu的百分比时,只有20%左右。从“top”命令看cpu都在高效的计算,且有大量lammpps的相应进程占用大量的cpu空间,但从“mpstat”的输出来看,cpu的各个核心没有高效的工作。所以这里就有疑问了,这样的现象说明计算节点是在高效的工作呢还是有大量cpu资源在闲置?