今天,与EMC工程师一起解决了一个DMX3前端口通讯故障问题,问题的解决是出人意料的,不过也发现,实际生活中,什么样的可能都会出现,所以,思考问题的思路一定要开阔。
一、发现问题
在一台EMC DMX3安装完成后,在其中一台主机做DD测试,发现写速度非常慢,通过powermt watch可以发现,每秒的IO个数,每个通道才8个,写速度每秒钟不到10M。
dd命令格式如下,其中,rlv_test是裸设备
#time dd if=/dev/zero of=/dev/rlv_test bs=1024k count=10000
powermt watch的观测结果如下:
==============================================================================
----- Host Bus Adapters --------- ------ I/O Paths ----- ------ Stats ------
### HW Path Summary Total Dead IO/Sec Q-IOs Errors
==============================================================================
0 fscsi0 optimal 191 0 8 1 0
1 fscsi1 optimal 191 0 8 0 0
2 fscsi2 optimal 191 0 8 0 0
3 fscsi3 optimal 191 0 8 0 0
故障问题报上去以后,EMC工程师赶到现场,然后通过dd到文件系统,做了一个类似的测试,如
#time dd if=/dev/zero of=/u01/test.dat bs=1024k count=10000
通过powermt watch的观测结果如下:
==============================================================================
----- Host Bus Adapters --------- ------ I/O Paths ----- ------ Stats ------
### HW Path Summary Total Dead IO/Sec Q-IOs Errors
==============================================================================
0 fscsi0 optimal 191 0 4 2 0
1 fscsi1 optimal 191 0 130 1 0
2 fscsi2 optimal 191 0 132 1 0
3 fscsi3 optimal 191 0 131 1 0
这个时候,EMC工程判断,其中有一个链路有问题,就是以上的fscsi0连接的链路1,因为才8个IO的时候,队列中就有一个等待,做文件系统测试的时候,基本没有IO。这里可以看到EMC工程师判断还是很准确的,没有把问题定位在文件系统与裸设备的差别上,甚至说裸设备有问题,而是定位在链路上面。
于是,我们查看了这台主机连接到存储的拓扑结构图,如下:
switch sw0
server fcs1 <----------> port 17 <---> port 16 <-----------> fa-7b0 ==>zone1
server fcs0 <----------> port 25 <---> port 24 <-----------> fa-8b0 ==>zone2
switch sw1
server fcs3 <----------> port 17 <---> port 16 <-----------> fa-9b0 ==>zone3
server fcs2 <----------> port 25 <---> port 24 <-----------> fa-10b0 ==>zone4
因为有问题的链路是fcs0,而这个链路通过光纤交换机的25/24 port,连接到存储的8b0前端口,于是,我们登陆到该交换机,disable这个通道:
admin>portdisable 25
然后,再做测试,可以发现速度正常:
==============================================================================
----- Host Bus Adapters --------- ------ I/O Paths ----- ------ Stats ------
### HW Path Summary Total Dead IO/Sec Q-IOs Errors
==============================================================================
0 fscsi0 failed 191 191 0 0 191
1 fscsi1 optimal 191 0 510 0 0
2 fscsi2 optimal 191 0 510 0 0
3 fscsi3 optimal 191 0 510 0 0
至于为什么4个通道不正常,三个通道就为什么正常了呢,这里还与powerpath的分配策略有关系,在写裸设备的时候,powerpath尽量让每个通道的IO均衡,结果,因为通道1的IO上不去,所以把大家的速度都降下来了。
二、解决问题
问题是找到了,于是,我们来到机房,开始试着解决问题,先是判断问题点在哪里,问题判断过程如下:
1、我们把光纤交换机上的25/24口换到15/14口,问题依旧,判断光纤交换机没有问题
2、我们把主机fcs0连接到光纤交换机的光纤线换掉,问题依旧,判断主机端的光纤线没有问题
3、我们把存储8b0连接到光纤交换机的光纤线换掉,问题依旧,判断存储端的光纤线没有问题
这个时候,问题很明显,要么是主机fcs0的HBA卡有问题,要么是存储的前端口fa-8b0有问题,EMC的一个工程师甚至建议我找IBM换fcs0光纤卡,说他们的前端口基本不可能坏的。本着继续测试的精神,我们一定要找到到底谁有问题,于是,弄了一个新的方案,就是把fcs0从通道中去掉,把fcs1接到7b0与8b0,新的拓扑结构如下:
switch sw0
server fcs1 <----------> port 17 <---> port 16 <-----------> fa-7b0
server fcs1 <----------> port 17 <---> port 24 <-----------> fa-8b0
switch sw1
server fcs3 <----------> port 17 <---> port 16 <-----------> fa-9b0
server fcs2 <----------> port 25 <---> port 24 <-----------> fa-10b0
当时我们认为,如果这样速度还有问题的话,基本可以判断是EMC前端口8b0有问题,测试结果发现,速度依然还是上不去,于是,我们只好断定EMC的前端口有问题了。
EMC联系了他们的硬件工程师,远程登陆到存储,没有发现任何硬件错误信息,不能判断硬件有问题,我们看到的结果也是,这个硬件没有报任何错误,其实是可以使用,不过是速度慢。那问题到底在哪里呢?EMC先是申请硬件配件,也就是前端卡,然后一边做测试,因为他们不相信前端卡有问题。
其实,他们的相信还是正确的,通过我们后来的一系列测试看来,的确不是硬件问题。
三、陷入迷茫
因为还是测试阶段,所以没有加急,2天后,他们的备件到场,这次来了一个硬件工程师,在机房,负责检查硬件以及随时更换硬件,另外一个软件工程师,在公司,与我一起做检测。我们把测试环境改成单个链路,也就是fcs1(肯定是正常的光纤卡)连接存储的8b0(怀疑有问题的前端口),如
server fcs1 <----------------> port 17 <---> port 24 <-----------------> fa-8b0
dd的结果还是不行:
==============================================================================
----- Host Bus Adapters --------- ------ I/O Paths ----- ------ Stats ------
### HW Path Summary Total Dead IO/Sec Q-IOs Errors
==============================================================================
1 fscsi1 optimal 191 0 26 1 0
但是,如果是fcs1连接7b0,速度则正常
server fcs1 <----------------> port 17 <---> port 16 <-----------------> fa-7b0
dd的速度为:
==============================================================================
----- Host Bus Adapters --------- ------ I/O Paths ----- ------ Stats ------
### HW Path Summary Total Dead IO/Sec Q-IOs Errors
==============================================================================
1 fscsi1 optimal 191 0 901 4 0
于是,我们开始如下的新的检测过程
1、硬件工程师先换了8b0的前段口,问题依旧
2、硬件工程师更换了8b0的所在的板卡,但是不包括cpu模块,问题依旧
3、硬件工程师更换了整个前端板卡,包括cpu模块,问题依旧
在更换整个前端板卡前,EMC的那个软件工程师说,他们最担心的是更换了硬件之后问题依然存在,因为硬件看起来是没有问题的,其实,他说到这里,我也隐约感到不妙,可能这就是预感吧。前端卡更换上去,问题果然没有解决。我们都晕了,问题在哪里?看起来前端卡并没有问题。
看样子不能乱说话,说不定我们不说那句话,前端卡换上去了就好了呢。。。哈哈
四、离奇的故障
开case吧,emc工程师的速度还是非常快的,但是case要等到老美上班,而老美上班一般都是晚上12点以后了。让他们(老美)登陆过来看看,我于是先回家了,EMC工程师继续加班。第二天,上班的时候,EMC软件工程师也过来了,回答是,老美确认硬件没有问题,把问题丢给了OS。
但是,连接这个存储的有多台主机,为什么只有这一个主机有这个问题呢,而且是这个端口,但是,既然这样说了,我决定,让EMC工程师把这个8b0连接到另外一个主机上做测试。也就是拿另外一个主机的fcs1与8b0连接,把这个机器的硬盘认到另外一个机器上。同时,EMC的工程师对我说,他想测试一下跟8b0相同CPU接口的8b1,但是光纤交换机上没有显示8b1在线。
fa-8b1我们是接光纤线了的啊,虽然没有在用(仅仅是一根备用线),但是光纤线我们是要求EMC给我们接了的,怎么会没有显示呢?我再检查了一下交换机的连接信息,就是这个fa-8b1没有连接进来,其它的口都是正常的。
因为这个光纤连接是前几天另外一个EMC安装工程师做的,我还没有来的及做交换机的check,线是肯定接了的,那么,是那个工程师还没有把这个线配通,难道这个线有故障,我也是隐约觉得这里肯定有问题,可能还是预感,哈哈,可见我的预感有多准确。我打电话给机房的一个管理员,让它换了一根连接8b1到光纤交换机的光纤线,这个时候,emc的工程师也把8b0的盘认到了另外一台主机。测试
正常。。。。。。。
难道真是OS问题?不对。。。我突然想到,我们原来的主机也应当好了,我说,再把盘挂会原来的主机,问题应当好了,EMC软件工程师把盘挂回原来的主机,测试
果然好了。。。。。。
我再通知机房的管理员,干脆把这根线拔了,现在还是正常的,问题居然就这么解决了。
晕的,可以判断了,问题就是出在那个出问题的光纤线上,虽然这个光纤线没有在使用,而且光纤交换机上也看不到这个线是通的,但是,他就是能影响到我们。
想了想,估计,那根出问题的光纤线,虽然谁都没有在使用它,可能它本身有问题,导致存储的8b1一直在试着跟它通讯,耗费了8b1端口的cpu,而8b1跟8b0是同一个cpu,所以,8b0性能怎么也上不去,因为cpu被消耗了。。。。。。
我也仅仅是猜测。。。
不过,从这个case看来,EMC工程师解决问题的方式与速度还是不错的,就是我们回家了,他还一直坚持加班解决问题,比有些厂商总是喜欢把问题推到别人身上要强多了。但是,也暴露出来他们一个问题,如安装工程师没有把所有的线都配通,估计是因为那根线是备用线,觉得通不通关系不大,结果导致了问题的出现。
上一篇: « 在AIX 5L上配置与管理路由
下一篇: 在AIX 5L上配置NFS Server/Client »
- 发表评论


