周六休息時(shí),突然接到實(shí)驗(yàn)室同事報(bào)障電話,說就在剛才斷電10分鐘來電后,OpenLAB系統(tǒng)無法連接。機(jī)房服務(wù)器有UPS供電,怎么會(huì)出現(xiàn)這樣的情況呢?趕到現(xiàn)場(chǎng)查看,機(jī)房里整套系統(tǒng)7臺(tái)服務(wù)器從電源、硬盤和網(wǎng)絡(luò)指示燈看均運(yùn)行正常,登錄一臺(tái)服務(wù)器表面上看也沒有問題,只是用戶在辦公室通過遠(yuǎn)程桌面打開OpenLAB軟件時(shí),一直顯示連接中(如圖1)。在機(jī)房AIC服務(wù)器上打開OpenLAB軟件,仍然是同樣的情況。也就是說,所有用戶都無法正常啟動(dòng)該軟件。
由于是周末只有個(gè)別用戶加班,所以影響還算小,可以有時(shí)間來仔細(xì)檢測(cè)問題原因。只是從同事那兒接手該系統(tǒng)兩年來,沒有遇到過類似情況,平日也就是每?jī)芍馨阉蟹?wù)器重啟一次,協(xié)助廠家工程師安裝過增加的系統(tǒng),因一臺(tái)反應(yīng)慢更換過服務(wù)器,還有就是每月一次的通過SSR系統(tǒng)備份和每周用BE備份試驗(yàn)數(shù)據(jù)。
圖1 OpenLAB軟件啟動(dòng)一直連接中
OpenLAB CDS網(wǎng)絡(luò)化色譜工作站系統(tǒng)是安捷倫公司基于微軟.NET技術(shù),擁有三層體系結(jié)構(gòu),由OpenLAB OLSS服務(wù)器、Agilent AIC和瘦客戶端三層組成。OLSS服務(wù)器負(fù)責(zé)提供系統(tǒng)的安全管理、許可審核、審計(jì)追蹤、儀器狀態(tài)管理以及數(shù)據(jù)存儲(chǔ)等功能。Agilent Instrument Controller(以下簡(jiǎn)稱AIC)作為系統(tǒng)的中間層,負(fù)責(zé)提供數(shù)據(jù)的采集、儀器的反控、數(shù)據(jù)的緩存以及上傳等工作??蛻舳耸褂眠h(yuǎn)程桌面服務(wù)虛擬客戶端模式,利用微軟的RDS虛擬技術(shù),可以實(shí)現(xiàn)客戶端的零安裝。全套系統(tǒng)操作系統(tǒng)均是Windows Server 2008 R2英文版,曾聽同事講過幾次系統(tǒng)的大概結(jié)構(gòu):用戶通過TS終端服務(wù)器的遠(yuǎn)程桌面方式去操作控制AIC服務(wù)器所連接的儀器,用戶登錄遠(yuǎn)程桌面是通過端服務(wù)器的本地驗(yàn)證,OpenLAB軟件登錄驗(yàn)證是通過OLSS服務(wù)器進(jìn)行的,最后將儀器生成數(shù)據(jù)存入ECM服務(wù)器。
首先通過Ping命令確認(rèn)了服務(wù)器間通訊正常;其次查看服務(wù)器日志,在下午2:34TS服務(wù)器有錯(cuò)誤日志“The Terminal Server security layer detected an error in the protocol stream and has disconnected the client. Client IP:192.168.219.55.”,也就是當(dāng)天來電后加班同事的連接,其他時(shí)段還有大量類似報(bào)錯(cuò);在下午2:24AIC服務(wù)器有兩條錯(cuò)誤日志“The Terminal Server security layer detected an error in the protocol stream and has disconnected the client. Client IP:192.168.17.10.”也就是在停電時(shí)AIC終端服務(wù)安全層檢測(cè)到TS服務(wù)器在協(xié)議流中有錯(cuò)誤而斷開了連接,同時(shí)儀器驅(qū)動(dòng)也報(bào)了兩條錯(cuò)誤日志“Disconnecting because a System.Net.WebException was caught when sending a command; The request was aborted: The operation has timed out.”,但是這條日志該服務(wù)器在其他時(shí)間段也大量出現(xiàn)過,用戶那邊未曾報(bào)告出現(xiàn)什么問題。
由于周末廠商直接售后服務(wù)的工程不方便聯(lián)系,于是撥打了安捷倫售后服務(wù)電話,服務(wù)人員得知是OpenLAB ChemStation的網(wǎng)絡(luò)版時(shí),說這種情況涉及到網(wǎng)絡(luò)方面的原因,沒有網(wǎng)絡(luò)工程師值班而無法解答,建議重啟服務(wù)器系統(tǒng)試試。咨詢結(jié)果和預(yù)期的一樣,使用服務(wù)器重啟大招。旁邊實(shí)驗(yàn)室的同事說這樣的問題是第二次出現(xiàn)了,上次也是停電后發(fā)生的,那次他以為是我們IT人員在處理服務(wù)器上午有問題也未反饋,下午就正常了(而我們什么都沒做)。這就很奇怪了,很想探研一下什么原因?qū)е碌陌l(fā)生這樣的問題。
圖2 軟件啟動(dòng)報(bào)錯(cuò)提示
圖3 OLSS服務(wù)器netstat顯示端口連接a
圖4 OLSS服務(wù)器netstat顯示端口連接b
再回到AIC服務(wù)器上,發(fā)現(xiàn)OpenLAB程序有報(bào)錯(cuò)了如圖2,大概意思是程序在已配置的3分鐘內(nèi)未獲得OLSS服務(wù)器6577端口回應(yīng),運(yùn)行中分配的時(shí)間已部分超時(shí),可能是該運(yùn)行服務(wù)仍然在進(jìn)行中或者是未能發(fā)出一個(gè)應(yīng)答信息,請(qǐng)考慮增加運(yùn)行超時(shí)設(shè)置并確??蛻舳丝梢栽L問該服務(wù)。
有了錯(cuò)誤提示,就多一些處理問題的線索,通過telnet服務(wù)器OLSS端口6577是通的,為什么端口是正常能連接而程序卻無法連接呢?登錄OLSS服務(wù)器netstat查看端口連接情況,顯示很慢很多,有大量TS服務(wù)器到OLSS服務(wù)器6577端口的連接(如圖3)。難道是端口異常繁忙導(dǎo)致無法給程序響應(yīng)?可是現(xiàn)在周末沒幾個(gè)用戶,而且平日也從來沒有出現(xiàn)這種現(xiàn)象啊。
把TS服務(wù)器重啟一下再看是什么現(xiàn)象,因?yàn)橹貑S對(duì)數(shù)據(jù)沒有任何影響,比直接重啟OLSS服務(wù)器影響小。后又想,直接把TS服務(wù)器的網(wǎng)線撥掉也能驗(yàn)證剛才的想法。
撥掉服務(wù)器實(shí)驗(yàn)網(wǎng)段的網(wǎng)線,在OLSS服務(wù)器上仍然能看到到6577端口的連接,不同的是從TS服務(wù)器從計(jì)算機(jī)名變成了IP地址(如圖4)。再把另一根用于連接辦公網(wǎng)的網(wǎng)線也撥掉,用戶正是通過這根網(wǎng)線從辦公室來連接TS服務(wù)器的。奇怪的是,在OLSS服務(wù)器上到從TS到6577端口的連接仍然存在,而且不停增加,這是哪里出了問題呢?
查看了OLSS服務(wù)器上的日志,只有一個(gè)網(wǎng)卡網(wǎng)絡(luò)連接在下午2:24有斷開的警告記錄“Broadcom BCM5709C:The network link is down.Check to make sure the network cable is properly connected”,也就是停電那會(huì)兒,應(yīng)該是機(jī)房這臺(tái)交換機(jī)未接入U(xiǎn)PS電源所致,而且在每?jī)芍苤貑⒎?wù)器也會(huì)有這么一條日志。
把顯示器鍵盤鼠標(biāo)再次切到AIC服務(wù)器上運(yùn)行OpenLAB程序,這次沒有顯示一直在連接的狀態(tài),而是馬上報(bào)出錯(cuò)誤提示“Connection to Shared Service failed”(如圖5)。這是問題測(cè)試檢查有進(jìn)展的標(biāo)志,說明之前程序啟動(dòng)時(shí)一直處于連接狀態(tài)確實(shí)和TS服務(wù)器大量連接到OLSS服務(wù)器的6577端口有關(guān),導(dǎo)致其無法及時(shí)響應(yīng)OpenLAB程序的連接。
綜合分析覺得,問題是出在OLSS服務(wù)器,可是這個(gè)服務(wù)器在停電那十多分鐘都是正常在運(yùn)行,怎么回出現(xiàn)這么奇怪的問題呢?更奇怪的是上次停電出現(xiàn)的類似故障居然自動(dòng)恢復(fù)了。難道真得用重啟OLSS服務(wù)器的大招嗎?
看著AIC上面程序啟動(dòng)時(shí)報(bào)的錯(cuò)誤提示,忽然想到就重啟下安捷倫的相關(guān)服務(wù)看行不行。立即運(yùn)行“services.msc”,找到一個(gè)和錯(cuò)誤提示類似的服務(wù)“Agilent OpenLAB Shared Services”,重啟服務(wù)很順利地完成(如圖6)。再次去AIC上運(yùn)行OpenLAB程序,很快出現(xiàn)了熟悉的登錄界面。讓實(shí)驗(yàn)室的同事登錄進(jìn)去查一下加班運(yùn)行的儀器情況,很遺憾儀器沒有配UPS斷電就停止運(yùn)行了,上午所做的幾個(gè)分析試驗(yàn)得全部重來。
圖5 OenLAB軟件啟動(dòng)直接報(bào)錯(cuò)
圖6 軟件報(bào)錯(cuò)相關(guān)服務(wù)
圖7 OpenLAB軟件正常啟動(dòng)界面
將剛才斷開的TS兩條網(wǎng)線按標(biāo)記順序接上,實(shí)驗(yàn)人員就可以正常從辦公室連計(jì)算機(jī)接到遠(yuǎn)程桌面操作儀器了(如圖7)。
最后將上述處理截圖發(fā)郵件給直接聯(lián)系的廠商售后工程師,請(qǐng)教出現(xiàn)此問題的更深層次原因,從而避免此類故障給公司造成工作上的損失。還沒等到廠商回復(fù)的故障原因,不到一周時(shí)間又接到供電局通知,說周五 12:30 到 14:00“將有兩次短時(shí)停電,每次3到5秒”,這次試驗(yàn)室的同事和我們商量決定,在4臺(tái)AIC服務(wù)器所連的儀器上做個(gè)測(cè)試樣,以確認(rèn)更具體的情況。就這幾秒的停電真讓信息系統(tǒng)受不了,結(jié)果是只有一臺(tái)AIC服務(wù)器上的分析測(cè)試運(yùn)行正常,這下得深入分析對(duì)比一下各服務(wù)器Windows日志和網(wǎng)絡(luò)連接問題了。
遠(yuǎn)程登錄AIC,發(fā)現(xiàn)有兩臺(tái)有非正常關(guān)機(jī)的提示,也就是說這兩臺(tái)服務(wù)器在幾秒的斷電過程中自動(dòng)重啟了。仔細(xì)想想這兩臺(tái)是后來添加的,當(dāng)時(shí)電源插線板孔位不夠就再串接了一個(gè),串接時(shí)可能接到市電的電源插座上了,平常沒感覺,這幾次斷電才知道錯(cuò)誤了。由于之前接服務(wù)器的網(wǎng)絡(luò)未作詳細(xì)標(biāo)識(shí),網(wǎng)絡(luò)機(jī)柜又裝著6臺(tái)交換機(jī),實(shí)在不方便找出某個(gè)服務(wù)器接哪臺(tái)交換機(jī)幾號(hào)端口,還好都是可配置的H3C交換機(jī),用筆記本電腦連接控制口執(zhí)行“dis mac-add”將端口對(duì)應(yīng)學(xué)習(xí)到的MAC地址表復(fù)制下來,再比較各服務(wù)器網(wǎng)卡的物理地址,終于找到網(wǎng)絡(luò)連接的端口。有4臺(tái)服務(wù)器Windows日志里在停電時(shí)出現(xiàn)了網(wǎng)絡(luò)連接斷開的警告記錄,均連接到第一臺(tái)交換機(jī)上,說明此交換機(jī)也沒有接入U(xiǎn)PS電源,和同事確認(rèn)這臺(tái)機(jī)器后來為了測(cè)試整個(gè)系統(tǒng)反應(yīng)慢的問題,而增加的全千兆交換機(jī),沒有接入U(xiǎn)PS電源。
找到問題根源,處理就好辦了,同時(shí)也發(fā)現(xiàn)前幾次OLSS服務(wù)器上的“Agilent OpenLAB Shared Services”服務(wù)異常是其網(wǎng)絡(luò)連接斷開所致。
如果我們直接重啟服務(wù)器當(dāng)然也能把問題解決,但那樣做并不能讓我們找到問題的更進(jìn)一步原因,而當(dāng)某些情形不容我們?nèi)ヂ治鰰r(shí),重啟服務(wù)器確實(shí)也是有效的常用大招。經(jīng)過此番探研,下次再出現(xiàn)類似問題,我們不必使用重啟服務(wù)器的大招,也能精準(zhǔn)快速解決問題,經(jīng)驗(yàn)就此積累。通過對(duì)此次問題的深入排查,也暴露了我們?cè)诤笃诟戮S護(hù)過程中不規(guī)范作業(yè),機(jī)房服務(wù)器和交換機(jī)本應(yīng)接UPS電源系統(tǒng)居然出了差錯(cuò),每次遇到停電,大家都還想當(dāng)然地認(rèn)為機(jī)房里設(shè)備都有接入U(xiǎn)PS電源呢。