問(wèn)題發(fā)生,DMX3前端口速度大失水準(zhǔn)
問(wèn)題發(fā)生在測(cè)試的EMC DMX3安裝完成之后,本來(lái)安裝完機(jī)器后進(jìn)行端口速度測(cè)試是例行公事了,但是測(cè)試的結(jié)果卻和我們的期望大相徑庭,DMX-3每通道I/O速度出奇的慢,每秒不到10M,這可絕對(duì)不是DMX-3應(yīng)有的速度啊?一定是什么地方出現(xiàn)了問(wèn)題!
原來(lái),我們一般用DD命令進(jìn)行連續(xù)寫的速度測(cè)試,命令如下,其中rlv_test是裸設(shè)備:
#time dd if=/dev/zero of=/dev/rlv_test bs=1024k count=10000
這時(shí)候,通過(guò)powermt watch的觀測(cè)結(jié)果如下:
四條通道I/O不正常
從上面的觀測(cè)結(jié)果我們可以發(fā)現(xiàn),fscsi0到fscsi3一共4個(gè)通道,每個(gè)通道每秒的IO個(gè)數(shù)才8個(gè),寫速度每秒鐘不到10M。
到底什么原因讓DMX3的端口速度大失水準(zhǔn)?這下又把我的好奇心勾引起來(lái)了,下決心好好查找一下故障的原因。為了穩(wěn)妥起見(jiàn),解決問(wèn)題的首要還是要求助廠家。一個(gè)電話打到EMC支持中心,將故障問(wèn)題報(bào)上去以后,EMC工程師趕到了現(xiàn)場(chǎng)。
EMC的幾個(gè)哥們兒也是通過(guò)dd命令到文件系統(tǒng),做了一個(gè)類似的測(cè)試,如
#time dd if=/dev/zero of=/u01/test.dat bs=1024k count=10000
這時(shí)通過(guò)powermt watch的觀測(cè)結(jié)果如下:
fcs0鏈路I/O不正常
大家可以看見(jiàn)上面的測(cè)試結(jié)果顯示出fscsi0連接的鏈路1,才8個(gè)IO的時(shí)候,隊(duì)列中就有一個(gè)等待,做文件系統(tǒng)測(cè)試的時(shí)候,就基本沒(méi)有IO。這時(shí)候,EMC哥們兒判斷:多半是其中一個(gè)鏈路有問(wèn)題。
這里可以看到 EMC的工程師不愧是廠商級(jí)別的工程師,沒(méi)有把問(wèn)題定位在文件系統(tǒng)與裸設(shè)備的差別上,甚至都不懷疑裸設(shè)備的硬件問(wèn)題,而是直接定位到了鏈路上面。從后面的操作看來(lái),這個(gè)判斷還是非常準(zhǔn)確的,但我們決定通過(guò)進(jìn)一步操作證實(shí)故障判斷。
鎖定故障鏈路,fcs0是害群之馬
我們一起查看了這臺(tái)主機(jī)連接到存儲(chǔ)的拓?fù)浣Y(jié)構(gòu)圖,如下:
與fcs0鏈接的主機(jī)端口和交換機(jī)端口
從上面的列表中看到,有問(wèn)題的鏈路fcs0,通過(guò)光纖交換機(jī)的25/24 port,連接到存儲(chǔ)的8b0前端口,對(duì)癥下藥,我們登陸到該交換機(jī),disable這個(gè)通道:“admin>portdisable 25”,這下fcs0故障鏈路應(yīng)該被屏蔽掉了,我們又作了個(gè)速度測(cè)試,發(fā)現(xiàn)一切正常,故障果然就是出在鏈路fcs0上。。。。
其余三個(gè)端口通訊正常
至于為什么4個(gè)通道不正常,三個(gè)通道為什么反而正常了呢?這里還與EMC的負(fù)載均衡軟件powerpath的分配策略有關(guān)系:
原來(lái),powerpath是用于增強(qiáng)存儲(chǔ)環(huán)境中開放系統(tǒng)的運(yùn)行性能的軟件,主要作用就是智能分配并均衡多個(gè)通路的I/O負(fù)載,消除I/O通路中的單點(diǎn)故障。powerpath盡量讓每個(gè)通道的IO均衡,結(jié)果,因?yàn)閒cs0的IO上不去,所以就連累了其他三條鏈路,把大家的速度都拖慢了。
找到了問(wèn)題不代表解決了問(wèn)題。我們接著一起來(lái)到機(jī)房,開始試著鎖定故障關(guān)鍵點(diǎn):
我們把光纖交換機(jī)上的25/24口換到15/14口,問(wèn)題依舊,判斷光纖交換機(jī)沒(méi)有問(wèn)題
我們把主機(jī)fcs0連接到光纖交換機(jī)的光纖線換掉,問(wèn)題依舊,判斷主機(jī)端的光纖線沒(méi)有問(wèn)題
我們把存儲(chǔ)8b0連接到光纖交換機(jī)的光纖線換掉,問(wèn)題依舊,判斷存儲(chǔ)端的光纖線沒(méi)有問(wèn)題
現(xiàn)在就只剩下主機(jī)fcs0的HBA卡,和存儲(chǔ)前端口fa-8b0沒(méi)有被騷擾過(guò)了。
這時(shí),一個(gè)EMC的工程師甚至直接建議我找IBM換fcs0的光纖卡,自信滿滿的說(shuō)他們的前端口基本不可能壞的。然而,后面的測(cè)試就表明,看似不可能出現(xiàn)問(wèn)題的地方,往往就出現(xiàn)了問(wèn)題。。。。
不可能發(fā)生的前端口故障?
本著深入鉆研的精神,我們一定要找到到底誰(shuí)有問(wèn)題,于是我們把fcs0從通道中去掉,把fcs1接到7b0與8b0,新的拓?fù)浣Y(jié)構(gòu)如下:
fcs1同時(shí)與主機(jī)7b0與8b0鏈接
當(dāng)時(shí)我們認(rèn)為,如果這樣速度還有問(wèn)題的話,基本就可以判斷是EMC前端口8b0有問(wèn)題,而反之,則可以排除DMX3前端口8b0的嫌疑了。測(cè)試結(jié)果發(fā)現(xiàn),速度依然還是上不去,這下,我們只好斷定問(wèn)題就出在EMC的前端口上了。但是這樣一來(lái),又出現(xiàn)了新的矛盾。。。。
事實(shí)上,這個(gè)端口還可以使用,不過(guò)是速度慢。而且EMC的哥們兒聯(lián)系了他們公司的硬件工程師,遠(yuǎn)程登陸進(jìn)來(lái)察看卻沒(méi)有發(fā)現(xiàn)任何硬件錯(cuò)誤信息,而我們這邊看到的結(jié)果也沒(méi)有報(bào)任何錯(cuò)誤。同時(shí)我們的測(cè)試又的確反映了問(wèn)題就是出在前端口上,如果不是8b0前端口的問(wèn)題,那問(wèn)題究竟藏在哪里呢?
測(cè)試結(jié)果出來(lái)以后,EMC的哥們兒不再堅(jiān)持他的看法,開始申請(qǐng)硬件配件,也就是前端卡,同時(shí)一邊做測(cè)試,繼續(xù)尋找故障原因,因?yàn)樗麄內(nèi)匀徊幌嘈潘麄兊那岸丝〞?huì)有問(wèn)題。其實(shí),通過(guò)我們后來(lái)的一系列測(cè)試看來(lái),他們的看法還是正確的,的確不是硬件的問(wèn)題。
好在這次是因?yàn)闇y(cè)試機(jī)器,所以我們有充裕的時(shí)間來(lái)慢慢研究。2天后,EMC的備件到場(chǎng),這次來(lái)了一個(gè)硬件工程師,在機(jī)房負(fù)責(zé)檢查硬件以及隨時(shí)更換硬件,另外一個(gè)軟件工程師在公司,與我一起做檢測(cè)。
我們把測(cè)試環(huán)境改成單個(gè)鏈路,也就是主機(jī)上的fcs1端口(確定是正常的光纖卡)連接存儲(chǔ)DMX-3的8b0端口(懷疑有問(wèn)題的前端口),如:
用DD測(cè)試的結(jié)果還是不行;
我們用fcs1連接7b0
DD的結(jié)果一切正常:
看來(lái)8b0端口的問(wèn)題依然存在,我們只好下決心開始更換硬件。
離奇的故障原因
硬件工程師先換了8b0的前段口,問(wèn)題依舊
硬件工程師更換了8b0的所在的板卡,但是不包括cpu模塊,問(wèn)題依舊
硬件工程師更換了整個(gè)前端板卡,包括cpu模塊,問(wèn)題依舊
這下我們?nèi)慷忌笛哿恕F鋵?shí),在更換整個(gè)前端板卡前,EMC的那個(gè)軟件工程師就說(shuō)過(guò):他們最擔(dān)心的問(wèn)題就是更換了硬件之后,問(wèn)題依然存在,因?yàn)橛布雌饋?lái)確實(shí)是沒(méi)有問(wèn)題的。他說(shuō)完這句話,我也隱約感到不妙。果然更換了前端卡問(wèn)題依然沒(méi)有解決,我們都暈了,問(wèn)題在哪里?看起來(lái)前端卡并沒(méi)有問(wèn)題。
這下我們還有最后一根救命稻草:開case向EMC總部求助。工程師開case的速度還是非常快的,但是case必須要等到老美上班才能有響應(yīng),而老美上班一般都是晚上12點(diǎn)以后了。我于是先回家了,EMC工程師繼續(xù)加班。第二天上班,EMC軟件工程師也過(guò)來(lái)了,回答是,老美確認(rèn)硬件沒(méi)有問(wèn)題,把問(wèn)題丟給了操作系統(tǒng),認(rèn)為操作系統(tǒng)不兼容。
但是,連接這個(gè)存儲(chǔ)的有多臺(tái)主機(jī),且都采用了同一版本的操作系統(tǒng),為什么只有這一個(gè)主機(jī)這一個(gè)端口出現(xiàn)這個(gè)問(wèn)題呢?不過(guò)既然老美這樣說(shuō)了,我決定讓EMC工程師把這個(gè)8b0連接到另外一個(gè)主機(jī)上做測(cè)試。也就是拿另外一個(gè)主機(jī)的fcs1與8b0連接,把這個(gè)DMX3的硬盤認(rèn)到另外一個(gè)主機(jī)上。
這時(shí),EMC的工程師告訴我,他本來(lái)想測(cè)試一下跟8b0相同CPU接口的8b1,但是光纖交換機(jī)上沒(méi)有顯示8b1在線。這下,我心里仿佛開了一個(gè)小窗,一絲亮光透了進(jìn)來(lái)。fa-8b1我們是接了光纖線的啊,雖然僅僅是一根備用線并沒(méi)有在使用狀態(tài),但是系統(tǒng)上也應(yīng)該顯示fa-8b1的狀態(tài)啊?我再次檢查了一下交換機(jī)的連接信息,確認(rèn)fa-8b1沒(méi)有連接進(jìn)來(lái),而其它的端口都是正常的。
原來(lái),這個(gè)光纖連接是前幾天另外一個(gè)EMC安裝工程師做的,但是我還沒(méi)有來(lái)的及在交換機(jī)上做檢測(cè)。難道當(dāng)時(shí)那個(gè)工程師還沒(méi)有把這跟線配通?難道這個(gè)線有故障?我隱約覺(jué)得這里肯定有蹊蹺,但是也僅僅只是模模糊糊的預(yù)感。
我打電話給機(jī)房的一個(gè)管理員,讓他更換一根連接8b1到光纖交換機(jī)的光纖線,與此同時(shí),EMC的工程師也把8b0端口與另外一臺(tái)主機(jī)連接上了,開始測(cè)試,正常。。。。
再把8b0端口掛回最初出錯(cuò)的主機(jī)端口,測(cè)試,正常。。。。
這樣已經(jīng)可以基本排除操作系統(tǒng)的問(wèn)題了,問(wèn)題極有可能就是那根8b1的光纖線,我通知機(jī)房管理員干脆把這根線拔了,再測(cè)試,一切正常。。。。
后記:沒(méi)有不可能的故障
問(wèn)題居然就這么解決了,我們也暈了。現(xiàn)在可以判斷,問(wèn)題就是出在那個(gè)出問(wèn)題的光纖線上。雖然這個(gè)光纖線沒(méi)有在使用,而且光纖交換機(jī)上也看不到這個(gè)線是通的,但是他就是能影響到我們,至于是如何影響到的,我也說(shuō)不太清楚,只是憑著以往操作的經(jīng)驗(yàn)和直覺(jué)解決的問(wèn)題。
事后我也認(rèn)真想了想,估計(jì)那根出問(wèn)題的光纖線,很有可能它本身有故障,所以雖然誰(shuí)都沒(méi)有使用他,卻導(dǎo)致了DMX的8b1一直在試著跟它通訊,這樣就耗費(fèi)了8b1端口的cpu。而8b1與8b0使用同一個(gè)cpu的,所以,8b0性能怎么也上不去,因?yàn)閏pu被消耗了。不過(guò)這也僅僅是我的猜測(cè),要知道機(jī)器內(nèi)部究竟發(fā)生了什么事情,只能去問(wèn)那些不會(huì)說(shuō)話的冰冷的板卡和CPU了。。。
這個(gè)Case終于解決了,從這個(gè)case看來(lái),EMC工程師解決問(wèn)題的方式與速度還是不錯(cuò)的。在我們回家的時(shí)候,EMC的工程師還一直堅(jiān)持加班解決問(wèn)題,相比有些廠商總是喜歡把問(wèn)題推到別人身上要強(qiáng)多了。但是,也是因?yàn)橄惹暗陌惭b工程師沒(méi)有把所有的線都配置完成,給我們后續(xù)的工作埋下了隱藏的故障,讓我們?cè)诤罄m(xù)的配置過(guò)程中耗費(fèi)了不少的時(shí)間。估計(jì)是因?yàn)槟歉€是備用線,覺(jué)得通不通關(guān)系不大,結(jié)果導(dǎo)致了問(wèn)題的出現(xiàn)。
這個(gè)故事就告訴我們,在實(shí)際的運(yùn)營(yíng)與操作過(guò)程中,什么樣的故障都可能出現(xiàn),所以,解決問(wèn)題的過(guò)程中,思路一定要開闊,看似最不可能發(fā)生故障的地方,往往就是故障的關(guān)鍵所在。