付喜春,王昭勤,钟吉太,刘洪海,孙 静
(1.中国石油集团东方地球物理勘探公司大庆物探研究院 黑龙江 大庆 163357;2.中国石油集团电能有限公司热电二公司 黑龙江 大庆 163411)
大庆物探研究院解释机房共有各类解释工作站一百余套,承担着6个解释室的资料解释任务。日常工作时,会产生大量的数据,有的数据备份完成后,未能及时删除;多年不用的、早已答辩完的解释工区没有及时清理,日积月累导致磁盘空间不足;使用软件时产生的临时文件、垃圾文件也能使根文件系统空间达到100%。无论是系统盘,还是数据盘,只要剩余磁盘空间不足,或使用率达到100%,都会引起系统或解释软件不能正常工作。如经常有解释用户反映,无法进入LandMark工区或者LandMark应用软件的某一个模块无法正常运行,出现闪退状况,有时访问缓慢,甚至出现无法访问的情况。经排查后发现,用户使用的磁盘空间达到100%,因此导致LandMark软件无法正常运行。
通常解释用户可以通过“df”命令查看磁盘空间情况,但用户有时不会主动去查看,鉴于以上原因,开发了解释工作站系统磁盘空间动态监控程序,用以及时发现问题、方便解决问题,保证系统、解释软件的正常运行,进而为地震资料解释工作顺利进行提供保障。
首先,在各工作站安装用户端监控,当工作站的任何一个磁盘文件系统达到90%以上时,都会向用户强制推送预警信息,第一时间预警提示,并将用户端机器名、日期、磁盘信息等以特定文件名存储在指定位置[1]。
其次,监控程序每日定时从各用户端采集工作站磁盘信息,依据从各工作站上传的磁盘信息,对整个机房的工作站进行系统管理和监控,并分类存储监控处理的结果,供系统管理员参考应用,及时了解各工作站磁盘空间动态情况,合理调配各工作站磁盘空间,更好地进行系统管理工作[2]。
工作站用户端程序框图[3]如图1所示。
数据采集及用户磁盘空间预警过程是:用Linux命令方式,获取机器名(hostname)、采集日期(date)、IP地址(192.10.200.*)和磁盘空间情况(命令df -hp),并将获取结果存于临时文件(www.dat)。利用程序处理采集的数据,提取有效的数值部分,利用IP地址作为输出文件,统一放置于/tmp目录下,用于存放机器名、采集日期及整理后统一的磁盘显示列表[4- 5]。通过对磁盘空间利用率的判断,向用户终端发布实时预警。当磁盘利用率小于90%时,表示磁盘空间正常,此时无任何提示;当磁盘利用率介于90%至95%中间时,发布 “Warning!!!”一般警告信息,此时用户应注意磁盘空间使用情况;而当利用率介于95%至100%中间时,发布“Serious!!!”严重警告信息,特别当磁盘空间利用率达到100%时,此时会造成应用软件不能正常运行等各种问题。
图1 工作站用户端程序框图
汇总处理端程序框图如图2所示。
通过获取LMK端监控信息(Get_info_lmk.sh)和获取JSN端监控信息(Get_info_jsn.sh)两个Shell脚本程序[6-7]实现各LandMark用户端和Jason用户端磁盘信息自动批量上传。由于有部分工作站操作系统版本较低,无法支持批量处理,采用逐行单独传输,获取其他监控信息由(Get_info_manu.sh)程序完成。
图2 汇总处理端框图
完成数据传输后,检查参与处理的用户端列表list.dat文件,运行中心处理监控程序DMMS,进行服务器端监控。此时产生两个存放监控信息的目录ava和use。ava目录存放各用户端监控的可用磁盘动态信息,以机器名形式存在,每日记录一条各目标盘可用情况。use目录存放各用户端监控的已用磁盘利用率文件,同样以机器名形式存在,每日记录一条各目标盘利用率情况。另外形成2个监控文件:一个是监控文件All_disk.dat,记录监控程序运行以来,各用户端工作站磁盘出现异常情况,包括出现异常的机器名、日期、目标磁盘和空间利用率。另一个是监控文件Hostname_IP.dat,记录参与监控处理的机器名及其对应的IP地址,便于问题查找,当与list.dat比对时,可以监控网络运行情况。磁盘信息汇总和监控处理都是程序自动完成,无需人工干预。
2.3.1 监控程序运行的系统环境
1)硬件环境 服务器端:HPz820系列、HPz840系列高性能图形服务器,CPU: Intel Xeon E5 2680V3以上,主频≥2.8 GHZ,内存≥128 GB,系统磁盘≥512 GB SSD。
用户端: HPz220系列、HP z800等工作站和终端,CPU: Intel Xeon E5 2620以上,主频≥2.2 GHZ,内存≥32 GB,系统磁盘≥256 GB SSD。
2)软件环境 服务器端需要安装Red Hat4.8及以上版本操作系统,用户端需要安装Red Hat4.4及以上版本操作系统,解释工作站系统下需要有C语言、Shell语言支持[8-9]。
2.3.2 程序安装
1)工作站用户端安装 用超级用户(root)登录,将编译好的用户端监控程序z800-40或z840-49拷入/usr/bin目录下,将zz.csh用户端监控启动脚本放在/etc/profile.d目录下。测试脚本运行source zz.csh,检查/tmp目录下是否生成 “IP地址”文件名,如果运行过程中无错误,并且产生“IP地址”文件名,表示正常。
2)工作站服务器端安装 用超级用户(root)登录,将pscp程序放在/usr/bin目录下,程序具有执行权限。然后编辑并配置定时自动运行脚本/etc/cron.d/disk_monitor.sh,运行crontab -e程序保证每天汇总处理端(服务器端)定时运行。为了不影响用户的正常工作,在空闲时段对解释机房所有工作站的磁盘进行动态监控,并记录监控信息[10]。
程序正常运行后,提示一系列监控信息,并生成监控文件all_disk.dat、Hostname_IP.dat,和存放监控信息的两个目录ava、use。为监控各用户端提供信息保障。
以z800-3为例,z800-3工作站上安装了LandMark软件,IP地址为192.10.200.52,有home、home1、home2、home3四个磁盘文件系统,系统显示信息如下:
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工作站做为项目的主机,工区大小约为600 km2,数据量非常大。用户每天登录及新开工作窗口时,系统自动启动/etc/profile.d目录下的zz.csh用户端监控脚本,此时在临时目录/tmp下生成“52”磁盘信息文件,并自动完成磁盘信息采集,此文件包括了机器名、工区名和运行日期等。工作站用户端采集的磁盘信息如下:
________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}%
当磁盘空间出现异常,无论是本机登录用户,还是远程访问或者新开工作窗口,都会向用户发送预警信息,提醒用户及时清理磁盘空间,直至磁盘空间在90%以下,系统不再提示磁盘空间超过设定的阈值。如图3中显示。
图3 工作站用户端磁盘预警信息页面图
汇总处理端(服务器端)放在z840-15服务器上,以监控解释员账户ow2003登录,在“/home/ow2003/mana/”目录下运行all.sh,监控各用户端磁盘信息传输的进程,当出现信息 “unable to identify /tmp/113:no such file or directory”表示IP地址为113的用户端,没有安装用户端监控或者处于关机状态;出现信息“more than one remote source not supported”表示此台工作站无法完成批量传输,需手动编辑Shell脚本单独传输。监控磁盘信息处理的过程是把出现异常的磁盘文件系统,做二次预警,结果按日期写入监控文件(all_disk.dat)和参与文件Hostname_IP.dat。从图4、图5中可以看到2个日期不完全一样的监控结果,在图4中,2019年5月20和21日中记录到了z800-3工作站几个磁盘系统的预警信息,而在此之前的4个月还是正常状态,无预警发生,表示最近4个月来磁盘利用率很高,需要清除一些无用的文件,释放磁盘空间。而到2020年4月16日,仅剩home3一个磁盘文件系统预警,如图5所示。
图4 2019年监控文件all_disk.dat部分信息页面图
图5 2020年监控文件all_disk.dat部分信息页面图
从图6可以看出,“list.dat”列表中的有些机器没有在参与文件Hostname_IP.dat中出现,可能是这部分机器处于关机状态,或者由于网络原因造成无法通信。参与文件中的机器名与IP地址一一对应显示,为系统管理员快速处理有故障的机器提供了帮助。
图6 参与文件及监控页面图
主程序All.sh运行后生成ava目录文件,放置各用户端磁盘可用空间信息。从图7和图8(a)中可以看出,在ava目录下有73个以av_hostname为名的监控文件,记录自监控程序运行以来各用户端磁盘目前可用空间(单位GB),按日期排序,每日一个记录。从图8(b)对比分析也可以看出,z800-3自监控程序运行以来,除了“/”系统盘没有变化,其他用户磁盘可用空间在减少。
图7 工作站用户端可用磁盘主机列表页面图
主程序All.sh运行后生成use目录文件,记录各用户端磁盘空间的利用率。从图9中可以看出,在use目录下也有73个以用户端hostname为名的监控文件,记录自监控程序运行以来各工作站用户端的磁盘空间利用率,按日期排序,每天一个记录。
从图10中直观看出z800-3各用户磁盘使用情况,通过如下曲线图可以看出各磁盘文件系统的利用率和资料解释项目周期。2019年1月1日之前是上个项目结束时间,1月至3月5日是机器空档期,磁盘释放了一定空间,3月5日以后,加载了新项目,占用磁盘空间较多,除了“/”文件系统一直在30%以下,“home”和 “home2”在90%以下,其他文件系统“home1”处于报警临界状态, “home3”处于90%以上,目前处于预警状态。
图8 各工作站用户端磁盘空间可用量页面图
图9 用户端已用磁盘工作站详细列表页面图
图10 z800-3磁盘利用率
解释工作站磁盘空间监控程序,通过服务器端的监控信息处理,远程调用监控文件“all_disk.dat”和“Hostname_IP.dat”,可以了解机房所有工作站的工作状态。浏览“ava”、“use”两个目录下监控文件,可以详细地了解各工作站磁盘空间的使用情况。此监控程序安装运行以来,为解释用户的磁盘空间使用提供实时预警,做到及时发现和清理无用数据释放磁盘空间,再也没有因磁盘空间不足而导致应用软件无法正常运行。监控程序的应用不仅方便了系统员运维和管理,而且提高了解释人员的工作效率,保证了生产的正常进行,产生了较好的经济效益。