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