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