付喜春,王昭勤,鐘吉太,劉洪海,孫 靜
(1.中國石油集團(tuán)東方地球物理勘探公司大慶物探研究院 黑龍江 大慶 163357;2.中國石油集團(tuán)電能有限公司熱電二公司 黑龍江 大慶 163411)
大慶物探研究院解釋機(jī)房共有各類解釋工作站一百余套,承擔(dān)著6個(gè)解釋室的資料解釋任務(wù)。日常工作時(shí),會(huì)產(chǎn)生大量的數(shù)據(jù),有的數(shù)據(jù)備份完成后,未能及時(shí)刪除;多年不用的、早已答辯完的解釋工區(qū)沒有及時(shí)清理,日積月累導(dǎo)致磁盤空間不足;使用軟件時(shí)產(chǎn)生的臨時(shí)文件、垃圾文件也能使根文件系統(tǒng)空間達(dá)到100%。無論是系統(tǒng)盤,還是數(shù)據(jù)盤,只要剩余磁盤空間不足,或使用率達(dá)到100%,都會(huì)引起系統(tǒng)或解釋軟件不能正常工作。如經(jīng)常有解釋用戶反映,無法進(jìn)入LandMark工區(qū)或者LandMark應(yīng)用軟件的某一個(gè)模塊無法正常運(yùn)行,出現(xiàn)閃退狀況,有時(shí)訪問緩慢,甚至出現(xiàn)無法訪問的情況。經(jīng)排查后發(fā)現(xiàn),用戶使用的磁盤空間達(dá)到100%,因此導(dǎo)致LandMark軟件無法正常運(yùn)行。
通常解釋用戶可以通過“df”命令查看磁盤空間情況,但用戶有時(shí)不會(huì)主動(dòng)去查看,鑒于以上原因,開發(fā)了解釋工作站系統(tǒng)磁盤空間動(dòng)態(tài)監(jiān)控程序,用以及時(shí)發(fā)現(xiàn)問題、方便解決問題,保證系統(tǒng)、解釋軟件的正常運(yùn)行,進(jìn)而為地震資料解釋工作順利進(jìn)行提供保障。
首先,在各工作站安裝用戶端監(jiān)控,當(dāng)工作站的任何一個(gè)磁盤文件系統(tǒng)達(dá)到90%以上時(shí),都會(huì)向用戶強(qiáng)制推送預(yù)警信息,第一時(shí)間預(yù)警提示,并將用戶端機(jī)器名、日期、磁盤信息等以特定文件名存儲(chǔ)在指定位置[1]。
其次,監(jiān)控程序每日定時(shí)從各用戶端采集工作站磁盤信息,依據(jù)從各工作站上傳的磁盤信息,對(duì)整個(gè)機(jī)房的工作站進(jìn)行系統(tǒng)管理和監(jiān)控,并分類存儲(chǔ)監(jiān)控處理的結(jié)果,供系統(tǒng)管理員參考應(yīng)用,及時(shí)了解各工作站磁盤空間動(dòng)態(tài)情況,合理調(diào)配各工作站磁盤空間,更好地進(jìn)行系統(tǒng)管理工作[2]。
工作站用戶端程序框圖[3]如圖1所示。
數(shù)據(jù)采集及用戶磁盤空間預(yù)警過程是:用Linux命令方式,獲取機(jī)器名(hostname)、采集日期(date)、IP地址(192.10.200.*)和磁盤空間情況(命令df -hp),并將獲取結(jié)果存于臨時(shí)文件(www.dat)。利用程序處理采集的數(shù)據(jù),提取有效的數(shù)值部分,利用IP地址作為輸出文件,統(tǒng)一放置于/tmp目錄下,用于存放機(jī)器名、采集日期及整理后統(tǒng)一的磁盤顯示列表[4- 5]。通過對(duì)磁盤空間利用率的判斷,向用戶終端發(fā)布實(shí)時(shí)預(yù)警。當(dāng)磁盤利用率小于90%時(shí),表示磁盤空間正常,此時(shí)無任何提示;當(dāng)磁盤利用率介于90%至95%中間時(shí),發(fā)布 “Warning!!!”一般警告信息,此時(shí)用戶應(yīng)注意磁盤空間使用情況;而當(dāng)利用率介于95%至100%中間時(shí),發(fā)布“Serious!!!”嚴(yán)重警告信息,特別當(dāng)磁盤空間利用率達(dá)到100%時(shí),此時(shí)會(huì)造成應(yīng)用軟件不能正常運(yùn)行等各種問題。
圖1 工作站用戶端程序框圖
匯總處理端程序框圖如圖2所示。
通過獲取LMK端監(jiān)控信息(Get_info_lmk.sh)和獲取JSN端監(jiān)控信息(Get_info_jsn.sh)兩個(gè)Shell腳本程序[6-7]實(shí)現(xiàn)各LandMark用戶端和Jason用戶端磁盤信息自動(dòng)批量上傳。由于有部分工作站操作系統(tǒng)版本較低,無法支持批量處理,采用逐行單獨(dú)傳輸,獲取其他監(jiān)控信息由(Get_info_manu.sh)程序完成。
圖2 匯總處理端框圖
完成數(shù)據(jù)傳輸后,檢查參與處理的用戶端列表list.dat文件,運(yùn)行中心處理監(jiān)控程序DMMS,進(jìn)行服務(wù)器端監(jiān)控。此時(shí)產(chǎn)生兩個(gè)存放監(jiān)控信息的目錄ava和use。ava目錄存放各用戶端監(jiān)控的可用磁盤動(dòng)態(tài)信息,以機(jī)器名形式存在,每日記錄一條各目標(biāo)盤可用情況。use目錄存放各用戶端監(jiān)控的已用磁盤利用率文件,同樣以機(jī)器名形式存在,每日記錄一條各目標(biāo)盤利用率情況。另外形成2個(gè)監(jiān)控文件:一個(gè)是監(jiān)控文件All_disk.dat,記錄監(jiān)控程序運(yùn)行以來,各用戶端工作站磁盤出現(xiàn)異常情況,包括出現(xiàn)異常的機(jī)器名、日期、目標(biāo)磁盤和空間利用率。另一個(gè)是監(jiān)控文件Hostname_IP.dat,記錄參與監(jiān)控處理的機(jī)器名及其對(duì)應(yīng)的IP地址,便于問題查找,當(dāng)與list.dat比對(duì)時(shí),可以監(jiān)控網(wǎng)絡(luò)運(yùn)行情況。磁盤信息匯總和監(jiān)控處理都是程序自動(dòng)完成,無需人工干預(yù)。
2.3.1 監(jiān)控程序運(yùn)行的系統(tǒng)環(huán)境
1)硬件環(huán)境 服務(wù)器端:HPz820系列、HPz840系列高性能圖形服務(wù)器,CPU: Intel Xeon E5 2680V3以上,主頻≥2.8 GHZ,內(nèi)存≥128 GB,系統(tǒng)磁盤≥512 GB SSD。
用戶端: HPz220系列、HP z800等工作站和終端,CPU: Intel Xeon E5 2620以上,主頻≥2.2 GHZ,內(nèi)存≥32 GB,系統(tǒng)磁盤≥256 GB SSD。
2)軟件環(huán)境 服務(wù)器端需要安裝Red Hat4.8及以上版本操作系統(tǒng),用戶端需要安裝Red Hat4.4及以上版本操作系統(tǒng),解釋工作站系統(tǒng)下需要有C語言、Shell語言支持[8-9]。
2.3.2 程序安裝
1)工作站用戶端安裝 用超級(jí)用戶(root)登錄,將編譯好的用戶端監(jiān)控程序z800-40或z840-49拷入/usr/bin目錄下,將zz.csh用戶端監(jiān)控啟動(dòng)腳本放在/etc/profile.d目錄下。測試腳本運(yùn)行source zz.csh,檢查/tmp目錄下是否生成 “IP地址”文件名,如果運(yùn)行過程中無錯(cuò)誤,并且產(chǎn)生“IP地址”文件名,表示正常。
2)工作站服務(wù)器端安裝 用超級(jí)用戶(root)登錄,將pscp程序放在/usr/bin目錄下,程序具有執(zhí)行權(quán)限。然后編輯并配置定時(shí)自動(dòng)運(yùn)行腳本/etc/cron.d/disk_monitor.sh,運(yùn)行crontab -e程序保證每天匯總處理端(服務(wù)器端)定時(shí)運(yùn)行。為了不影響用戶的正常工作,在空閑時(shí)段對(duì)解釋機(jī)房所有工作站的磁盤進(jìn)行動(dòng)態(tài)監(jiān)控,并記錄監(jiān)控信息[10]。
程序正常運(yùn)行后,提示一系列監(jiān)控信息,并生成監(jiān)控文件all_disk.dat、Hostname_IP.dat,和存放監(jiān)控信息的兩個(gè)目錄ava、use。為監(jiān)控各用戶端提供信息保障。
以z800-3為例,z800-3工作站上安裝了LandMark軟件,IP地址為192.10.200.52,有home、home1、home2、home3四個(gè)磁盤文件系統(tǒng),系統(tǒng)顯示信息如下:
z800-3 {yingsh}% df -hP
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 39G 11G 27G 28% /
none 24G 32K 24G 1% /dev/shm
/dev/sda3 145G 120G 18G 88% /home
/dev/sdb1 276G 244G 18G 94% /home1
/dev/sdc1 276G 244G 18G 94% /home2
/dev/sdd1 276G 244G 18G 94% /home3
三維解釋項(xiàng)目組把z800-3工作站做為項(xiàng)目的主機(jī),工區(qū)大小約為600 km2,數(shù)據(jù)量非常大。用戶每天登錄及新開工作窗口時(shí),系統(tǒng)自動(dòng)啟動(dòng)/etc/profile.d目錄下的zz.csh用戶端監(jiān)控腳本,此時(shí)在臨時(shí)目錄/tmp下生成“52”磁盤信息文件,并自動(dòng)完成磁盤信息采集,此文件包括了機(jī)器名、工區(qū)名和運(yùn)行日期等。工作站用戶端采集的磁盤信息如下:
________Z800-3{yingsh}% cd /tmp
/tmp
Z800 -3{yingsh}% ls
52 ksotket -yingsh/ mapping -tai30 = orbit-yingsh/
gconfd -yingsh/ mapping -ow2003= mapping-yingsh= proc/
keyring - dadSIt/ mapping -pnmx= mapping-yuan13= rm -proc.log
keyring -vVPrpy/ mapping -root= mcop -yingsh/ ssh -PdwfF20307/
z800 -3{yingsh}% more 52
z800 -3
2019 -05 -18
39.0 27.0 28 /
145.0 18.0 88 /home
276.0 18.0 94 /home1
276.0 18.0 94 /home2
276.0 18.0 94 /home3
z800-3{yingsh}%
當(dāng)磁盤空間出現(xiàn)異常,無論是本機(jī)登錄用戶,還是遠(yuǎn)程訪問或者新開工作窗口,都會(huì)向用戶發(fā)送預(yù)警信息,提醒用戶及時(shí)清理磁盤空間,直至磁盤空間在90%以下,系統(tǒng)不再提示磁盤空間超過設(shè)定的閾值。如圖3中顯示。
圖3 工作站用戶端磁盤預(yù)警信息頁面圖
匯總處理端(服務(wù)器端)放在z840-15服務(wù)器上,以監(jiān)控解釋員賬戶ow2003登錄,在“/home/ow2003/mana/”目錄下運(yùn)行all.sh,監(jiān)控各用戶端磁盤信息傳輸?shù)倪M(jìn)程,當(dāng)出現(xiàn)信息 “unable to identify /tmp/113:no such file or directory”表示IP地址為113的用戶端,沒有安裝用戶端監(jiān)控或者處于關(guān)機(jī)狀態(tài);出現(xiàn)信息“more than one remote source not supported”表示此臺(tái)工作站無法完成批量傳輸,需手動(dòng)編輯Shell腳本單獨(dú)傳輸。監(jiān)控磁盤信息處理的過程是把出現(xiàn)異常的磁盤文件系統(tǒng),做二次預(yù)警,結(jié)果按日期寫入監(jiān)控文件(all_disk.dat)和參與文件Hostname_IP.dat。從圖4、圖5中可以看到2個(gè)日期不完全一樣的監(jiān)控結(jié)果,在圖4中,2019年5月20和21日中記錄到了z800-3工作站幾個(gè)磁盤系統(tǒng)的預(yù)警信息,而在此之前的4個(gè)月還是正常狀態(tài),無預(yù)警發(fā)生,表示最近4個(gè)月來磁盤利用率很高,需要清除一些無用的文件,釋放磁盤空間。而到2020年4月16日,僅剩home3一個(gè)磁盤文件系統(tǒng)預(yù)警,如圖5所示。
圖4 2019年監(jiān)控文件all_disk.dat部分信息頁面圖
圖5 2020年監(jiān)控文件all_disk.dat部分信息頁面圖
從圖6可以看出,“l(fā)ist.dat”列表中的有些機(jī)器沒有在參與文件Hostname_IP.dat中出現(xiàn),可能是這部分機(jī)器處于關(guān)機(jī)狀態(tài),或者由于網(wǎng)絡(luò)原因造成無法通信。參與文件中的機(jī)器名與IP地址一一對(duì)應(yīng)顯示,為系統(tǒng)管理員快速處理有故障的機(jī)器提供了幫助。
圖6 參與文件及監(jiān)控頁面圖
主程序All.sh運(yùn)行后生成ava目錄文件,放置各用戶端磁盤可用空間信息。從圖7和圖8(a)中可以看出,在ava目錄下有73個(gè)以av_hostname為名的監(jiān)控文件,記錄自監(jiān)控程序運(yùn)行以來各用戶端磁盤目前可用空間(單位GB),按日期排序,每日一個(gè)記錄。從圖8(b)對(duì)比分析也可以看出,z800-3自監(jiān)控程序運(yùn)行以來,除了“/”系統(tǒng)盤沒有變化,其他用戶磁盤可用空間在減少。
圖7 工作站用戶端可用磁盤主機(jī)列表頁面圖
主程序All.sh運(yùn)行后生成use目錄文件,記錄各用戶端磁盤空間的利用率。從圖9中可以看出,在use目錄下也有73個(gè)以用戶端hostname為名的監(jiān)控文件,記錄自監(jiān)控程序運(yùn)行以來各工作站用戶端的磁盤空間利用率,按日期排序,每天一個(gè)記錄。
從圖10中直觀看出z800-3各用戶磁盤使用情況,通過如下曲線圖可以看出各磁盤文件系統(tǒng)的利用率和資料解釋項(xiàng)目周期。2019年1月1日之前是上個(gè)項(xiàng)目結(jié)束時(shí)間,1月至3月5日是機(jī)器空檔期,磁盤釋放了一定空間,3月5日以后,加載了新項(xiàng)目,占用磁盤空間較多,除了“/”文件系統(tǒng)一直在30%以下,“home”和 “home2”在90%以下,其他文件系統(tǒng)“home1”處于報(bào)警臨界狀態(tài), “home3”處于90%以上,目前處于預(yù)警狀態(tài)。
圖8 各工作站用戶端磁盤空間可用量頁面圖
圖9 用戶端已用磁盤工作站詳細(xì)列表頁面圖
圖10 z800-3磁盤利用率
解釋工作站磁盤空間監(jiān)控程序,通過服務(wù)器端的監(jiān)控信息處理,遠(yuǎn)程調(diào)用監(jiān)控文件“all_disk.dat”和“Hostname_IP.dat”,可以了解機(jī)房所有工作站的工作狀態(tài)。瀏覽“ava”、“use”兩個(gè)目錄下監(jiān)控文件,可以詳細(xì)地了解各工作站磁盤空間的使用情況。此監(jiān)控程序安裝運(yùn)行以來,為解釋用戶的磁盤空間使用提供實(shí)時(shí)預(yù)警,做到及時(shí)發(fā)現(xiàn)和清理無用數(shù)據(jù)釋放磁盤空間,再也沒有因磁盤空間不足而導(dǎo)致應(yīng)用軟件無法正常運(yùn)行。監(jiān)控程序的應(yīng)用不僅方便了系統(tǒng)員運(yùn)維和管理,而且提高了解釋人員的工作效率,保證了生產(chǎn)的正常進(jìn)行,產(chǎn)生了較好的經(jīng)濟(jì)效益。