脚本示例:网维科技

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 07:40:01

网维大师系统虚拟盘(顺网无盘)神奇的“崩溃”之旅——揭秘

初步了解&问题描述:
前几天接到一位朋友求助,一个150多台机器的有盘换无盘的网吧,用了2台系统虚拟盘服务器,1台游戏虚拟盘服务器,说是装了网维大师系统虚拟盘1个月之后,大概每天晚上8~10点左右开始频繁出现客户机集体卡死,然后蓝屏,蓝屏代码77或者7e居多,重启后,卡在dhcp分配ip结束之后的界面上不动,重启网维大师系统虚拟盘服务之后就好,偶尔在凌晨2点左右也会出现这种问题。
后来换了个交换机好了一个星期,之后又开始出现类似问题,部分客户机卡死,蓝屏重启,重启后到dhcp分配完ip界面就卡死的问题,必须重启系统虚拟盘服务才会恢复正常。
折腾了一个多星期了都无果,老板已经要抓狂了,因为每天都会出问题,顾客已经是怨声载道,生意逐步开始滑落……

初步判断:
根据初次了解的情况来看,有点纠结,首先第一个非常可疑的地方,最初是正常的,用了大概一个月之后开始出现问题,期间未更换过软件版本,都是最新的1010,所以初步定位是硬件故障所致,用了一段时间之后可能因为硬件质量或者寿命的关系,出现了问题。因为这位兄台说,换了交换机之后好了一段时间,根据个人的经验来说,一个普通的傻瓜交换机,背板也有48Gbps的带宽,在150台机器的网吧做核心交换机肯定是够的,于是建议他把下面接入交换机D-LINK2204拿去做核心交换机观察。

但是这个问题另外一个奇怪的地方,每天晚上8~10点左右最爱出问题,根据绝大部分网吧的上座率来分析,这个时间段应该是人比较多,问了一下这个时间段人是比较多,但是白天人也挺多,而且有时候人少时也会出现问题,所以判断这个时间段爱出问题有可能是巧合,或者是人为破坏,也可能是和净网先锋等某些部门的监管软件有关系,所以就建议他把网吧的这类服务器关掉测试。

最后一个疑点,重启服务就好,所以除了硬件故障也可能是软件自身bug,虽然俺在顺网上班,但是处理问题还是蛮公正的,毕竟是新产品,难免出现bug,于是根据自己对软件的一些了解,来排查软件上可能遇到的问题,于是就远程连接服务器,查看软件日志,发现在我朋友说重启的时间范围内,确实发现软件重启的记录,但是后来才得知,我所看到的软件重启记录无论是程序自己挂掉,还是手工重启服务(后面分享如何判断服务是挂掉了,还是因为手工重启了服务),都会看到这条记录,所以当时询问朋友的现象只是,当客户机卡死时,服务器进程还在不在,比如ControlServer.exe和DiskLessServer.exe,或者当时服务器cpu使用率和网络使用率是否很高,但是当时只观察了一次,发现进程是在的,cpu使用率不高,网络利用率没注意,那么按照这个说法来看,说明服务并没自动崩溃,软件的重启日志是因为客户机卡死之后,手工重启服务导致的,此时陷入冥想,只好先把日志发给同事分析,结果说是有很多客户机的网络连接被关闭掉了,问题可能处在网络上,于是这点也验证了换交换机后好了一周的说法,那么重启服务就好的疑团还是无法揭开,于是建议朋友用memtest测试服务器内存是否有问题,用硬盘哨兵测试硬盘是否有问题,但是因为测试内存需要停止服务,为了不影响客户机使用,之后次日观察。

深度纠结:
时间很快,一日过去了,测试也初步有了结果:
1、交换机换了,仍然有挂的。
2、测试内存,无坏块,测试硬盘无错误记录,包括系统日志也全无磁盘错误记录,完全正常。
3、再看软件日志,还是和之前的日志无两样。
说实话,这个反馈结果完全是出乎意料的,因为按照经验来说,软件虽然是新出的,但是稳定性还真没这么差的,既然之前分析日志是说网络断开,那么再从网络上入手吧,结果发现网卡做了汇聚,而实际上当前测试的交换机是不支持汇聚的,同时这块主板上集成的2块网卡也不是同一型号,一个pci-e的,一个pci的,于是建议朋友把网卡汇聚拆掉再观察。

时间还是很快,又一日过去了,测试也有了再次反馈:
1、网卡汇聚取消了,仍然会挂……

到这里我一定要晕一下 ,完全没有道理嘛,想想前因后果,问题51%以上是处在硬件上,后来在测试过程中发现服务进程都在的,而且软件的服务重启日志都是手动的,并没自动崩溃的记录,那么硬件故障几率可以提升到90%以上了,于是建议朋友拿一台客户机做测试,弄3块全新的回写盘来做测试,来排除服务器主板自身问题,或者集成网卡问题,或者是硬盘检测不到的错误来排除问题,……另外把2个服务器分开带机,一个服务器带一部分,看看客户机挂掉时,到底是哪个服务器上挂的。

就在百般纠结无语之时,问题另一头的哥们发现服务器中毒了,远程一看,OMG,确实是中毒了,而且服务端的程序都感染了病毒,中的还是很令人抓狂的Win32.Almanahe.D病毒,这个病毒就类似威金一样,会破坏执行程序……
下载 (120.12 KB)
2010-9-18 16:45

连游戏虚拟盘也一起都中毒了……
下载 (29.04 KB)
2010-9-18 16:45

此时终于豁然开朗,nnd,估计是病毒搞出来的乱子,因为问题搞了很久,发现一线希望,当然啥问题都往病毒上想了,于是认为此次问题是由于病毒引起的,不觉间,大家心情都好了一下,于是开始处理病毒,由于工程太过浩荡,服务器,客户机,游戏处理病毒,一天过去了……(这里的感染型病毒处理方法后面分享)

一日之后,病毒终于搞定,服务器,客户机,拿软件扫描横直都没病毒了,那就观察吧,一面看电影,一面等崩溃,时间一点一点的过去,来到了北京时间8点整,等啊等,噩耗一直没有传来,一直加班等到晚上12点,依然没事,真是满心欢喜,跟朋友联系说,先观察下吧,估计就是病毒问题,先回家洗洗谁了,到家1点左右,再上网询问出问题没?得到的答案是,没出问题,于是安心睡了……

结果第二天上班,一上QQ,nnd,又报告崩溃,我也差点跟着崩溃了,见过纠结的,没见过这么纠结的,无语,远程看来是搞不定了,脑袋呈现糊状,到现场搞吧,于是一路上不管任何疑云,一点一点理思路,到了现场,期间朋友对我的诉苦,烟酒过程略1000字 ,接着处理问题吧。

逐步观察以下问题:
1、服务器分开带,看看到底是哪些机器挂的。
2、客户机挂的时候到底是什么状态。
3、客户机挂的时候,服务器什么状态,能否ping通,进程是否在,cpu使用率是否高,网络利用率是否高。
4、用性能监视器看当时的服务器压力是否非常高。
5、某些部门的服务器是否都关掉了,是否有系统错误日志。
6、用windbg监控服务进程,做服务进程崩溃的dump提取,以便分析问题。
一顿理论与思路分享完毕,开始等待出问题,到晚上8点还早,于是先把所有机器开一遍,看看是否是因为某个机器的网线被老鼠咬了,导致内网问题,结果所有机器开启来,依然没问题,至此确定客户机是正常的,再看看交换机,灯闪的也正常,没啥异常,于是百无聊赖的等待现象出现。时间滴答滴答的过去了,来到了出问题的时间,各种远程桌面打开,性能监视器打开,windbg打开,任务管理器打开,ping监控打开,开始监控,说到这里要好好bs下自己,出问题的时候所有客户机都会挂掉,结果当时就在无盘客户机上监控,结果过了一会,果然挂掉了,一操作自己机器,发现也卡住不动了 nnd,结果就是啥都没监控到,一次机会错过去了……只好等待下个机会,然后就是观察,发现当时机器不是所有都挂了,只是部分挂了,但是看交换机分布,2台服务器上都有客户机挂掉,于是认为服务器可能性不太大,否则怎么可能2台服务器上负载的客户机都有挂的呢?疑惑归疑惑,还要继续排查问题。。。

终于次日的崩溃时间又到了,客户机大部分机器挂掉的现象也出现了,但是当时看服务器没任何异常,进程在,cpu低,服务器压力没挂之前算是正常,不是特别高,等客户机挂了压力也就一下都没了,ping测试正常,windbg啥也没抓找。

不过是俗话说的好,天无绝人之路啊 ,因为之前同事说过,根据日志判断是网络上的问题,于是朋友灵光一现,既然服务端没挂,重启下交换机吧,结果重启交换机之后,当时卡主没重启的机器缓过来了,竟然没死,重启起不来的机器也可以启动了 ,既然现象如此明了,不容多想,继续换交换机,这里要说下当时交换机的情况:
1、当时最初出现问题时,是客户机个别蓝屏死机,当时用的交换机是D-LINK的一款网管交换机。
2、后来朋友公司给网吧换了一款他们代理的交换机,结果就出现换了一周之前没问题,一周之后集体挂掉的问题。
3、再后来就用了下面的普通傻瓜接入型交换机测试,但是依然有问题,只是大部分机器会挂。不过实际上从开始到现在,机器挂都不是集体,而是绝大部分而已。

于是到这里没办法,就再次拿朋友公司代理的交换机换上,继续观察,结果就是验证了机器挂确实不是集体挂,而是绝大部分挂而已,只是当时用的负载模式是自动分配,客户机不定连到哪台服务器上去,而且机器挂掉时,顾客都是一片混乱也没分清楚到底是啥情况,所以误报了是所有机器都挂……,因为朋友公司代理的交换机也是网管型的,于是想进交换机看看是否开了网卡汇聚,结果很不巧,密码不知道被谁改过了,咋弄也进不去,于是只好把交换机复位,结果又是观察……观察到凌晨2点多没挂,暂时认为是交换机问题,应该没啥事了,但是还不太放心,于是带着忐忑的心情去睡觉了。

次日醒来,到网吧直接就问,昨天晚上出问题了,结果吧台说,晚上没出问题,结果上午10点多出问题了,重启了服务器好了…… OMG,简直想死的心都有了,太没道理了,心里真是有点像是霜打的茄子了,不过现在看来,问题99%是出现在网络上了,那好,把所有的交换机都换掉,然后继续观测。于是就让朋友联系公司找交换机,但是因为当时没货,又拿不到交换机,只好等待,但是在等待的时候也不能闲着啊,于是继续观测,总算还是有一线生机,nnd还真就不信搞不定这个问题了,咋说也背负着朋友的重托,公司形象呢横直也得把问题解决了才行吧,所以,继续振奋精神,拿出脏兮兮的本本,开始观测!

到目前为止,晚上8~10点挂,或凌晨2点挂的迷信说法已经排除,现在已经是随时都可能挂了,于是为了让他早点挂,也看看是不是因为压力太大导致的问题,于是开了20多台机器一起看pplive,pps,优酷等电影,结果看啊看,看了1个小时也没挂,由此看来,不太可能是压力导致的挂了,那到底是啥原因导致的挂呢?

说到这里还是要赞同一下我以前boss说我有解决不了的问题就赖东赖西的想法,他说过没病死不了人,于是对于这句话我也是深信不疑,那好,就继续诊断病因吧,说实话,it这个医生还真不好当……不扯了,继续吧。

到现在基本就是等交换机来了,但是也不能闲着,继续观察服务器,开着任务管理器,性能监视器……一系列的东西开始观察,这个问题实在很纠结,无法复现出问题现象,每次只能等,解决一个问题,搞的婚姻保卫战电影的都要看完了,真是头大,不过即便是守株待兔是被动的,还是要干嘛,继续观察吧!

或许一切问题都会有解决的那一天,此次也不例外,正在看着电影,朋友正在用的无盘客户机卡住不动了,而且部分客户机也开始卡住不动,不过与前几次不同的是,这次是非常有收货的,因为观测到如下几张图:
下载 (180.73 KB)
2010-9-18 16:45

第一张:当时抓这张图时,性能监视器的图是动的,但是远程操作服务器无任何相应,点任何地方都点不了,就好像网络断开一样,于是跑到服务器上登陆administrator去看,发现密码无法输入,但是Numlock灯也是正常的,按Ctrl+Alt+Del键也无任何反映,但是服务器并未死机。这个现象机器像是硬盘偷停,或者硬盘故障导致的无响应,卡死状态。那么再看这张图,可以看出以下问题:
1、当时服务器没死机,因为性能监视器当时的监控图是动态的,有变化的,只是无法用鼠标点击任何窗体。
2、服务器的cpu使用率为0,因此并不是服务器cpu过高导致的操作无响应。
3、从任务管理器上可以看出服务器的内存占用还有3G多,因此服务并没挂掉,否则内存会释放掉。
4、磁盘压力异常,表现出规律的锯齿型状态,这个磁盘正是存放img镜像分区的盘符。
5、回写盘几乎无压力,途中的白色线就是E盘回写盘的监视图,当时回写盘属于没活干的状态。
综合上图的结论,就是服务器的存放img镜像的磁盘有问题了,类似于硬盘偷停的故障,而事实也正式如此,客户机卡死状态维持了近20~30秒左右时间,此时正和朋友分析问题,结果朋友用的客户机缓过来了,而且服务器远程也可以动了,性能监视器的压力显示也恢复正常。


于是为了验证这个问题,又赶紧开起来hdtune来监视回写盘的情况,真是天宫作美,恢复正常不到半个小时,再次出现卡机状态,服务器一样是无法移动任何窗体,点什么都正常。状态与之前的情况完全相同,点开hdtune一看,果然在卡死那一时间内,回写盘是没压力的,下图中只有爱生活 爱顺网线条的部分,只有100KB/S不到的写入压力,完全是没压力的状态,因此更加证明是由于存放img文件的磁盘出了问题。
下载 (140.85 KB)
2010-9-18 16:45

虽然种种迹象表明,是服务器上存放img镜像的磁盘有问题,但是用各种工具检测均无异常,当时用了磁盘哨兵,hdtune,hddscan,检查系统日志,检查硬盘型号,全部参数都是正常的,没有一个报告异常的,但是证据如此,我们就直接把存放img镜像的硬盘换掉了,于是继续监测,当时卡死时在线人数大概是100多人,2台服务器带,只有主服务器出问题,副服务器没问题,于是把所有客户机转移到副服务器上,等待主服务器没人用了才开始换硬盘,到此位置,问题算是水落石出了,但是为了保险起见,我们一起把交换机都换掉了,然后再观测。

用副服务器带所有客户机,已经带了7天左右了,一直没再出问题,至此基本已经可以判定是由于主服务器存放img镜像的磁盘故障,导致的这一问题,当然交换机也是有问题的,但是只限于主交换机。由于这次故障完全是复合型故障,而两个故障原因的都会导致同一故障现象,所以查起来确实比较麻烦,而导致这种麻烦的主要原因一共是以下几点:
1、因为交换机已经换过3个,新的旧的,傻瓜的,网管的都换过,但很不巧,这3个交换机初期都有问题。其中朋友代理的交换机是因为之前设置不合理,导致问题出现,复位后恢复正常,但是当时的想法是,设备是新的,应该没问题的,同时也是因为d-link个垃圾交换机太烂了,虽然是千兆交换机,但是背板带宽肯定不够48Gbps的,因为当时换上这个交换机,挂的尤其厉害。同时也是因为一时没有其他设备可更换,所以在排查网络这块花费了很长时间。

2、替换法解决问题的思路执行的打折严重,起初换交换机,因为没有货,无法找个正常的交换机来替换,同时在排除服务器问题时,又因为客户机电源功率太低,拿临时服务器测试时,服务器直接死机了,然后报了一堆atapi磁盘错误。所以换服务器测试问题的方式又没能执行下去。

3、问题现象没弄清楚,由于问题现象盘根错节,实际上最初的问题是交换机导致的,因为问题现象被交换机掩盖了,所以当时有点搞不清楚到底是谁的问题。

其实总结下来问题搞这么就的主要原因就是,受现象和资源影响严重,没有能按照思路很好的执行排除过程,所以下次解决问题时,怀疑哪部分有问题,换设备时一定要换不同型号,而且要全新设备,至少是别的网吧都用着正常的同样规格的硬件来替换。当问题排除后,再逐一发现其中的差异,例如之前的固件门问题,例如之前的64m缓存硬盘问题,例如之前的主板bios导致客户机随机蓝屏死机问题,例如之前的低价劣质的内存问题,例如此次的交换机问题等,硬件是换了,但要么换的是同型号的设备,即便是全新的,要么是相信这个设备是新的就不会有问题等等。

教训是惨痛的,但经验是宝贵的,希望这些经验可以分享给大家,有助于大家早日解决问题,如果得到方法就一定要严格执行,即便现象再古怪,还是要有个自己的主心骨!不过好在是问题解决了,否则在部分不熟悉软件的人来下结论时很可能得到这样的结论:要么是这个人不靠谱,要么是这个软件不靠谱。

最后再罗索一句,任何问题都会有被解决的那一天,排除法是解决问题最强大的一个办法,对网吧尤其适用!最后希望大家再遇到问题时,不要直接说,之前用别人系统好的,用俺的系统就有问题,之前用别的软件没事,用你这软件就有事,因为,任何对比只在完全相同的环境下才有可比性!包括系统里的软件,包括优化设置,包括硬件型号,批次,固件版本,驱动……

————————————————————————————————————————————————————————
这个问题磕磕绊绊到最后,已经过去一个多月了,上次发完帖子,到后来那家网吧又出问题了,现象很确定,就是主服务器上的机器挂掉了,于是再看日志,发现日志里4块回写盘都有错误,而且是同一时间,这个有点蒙了,怎么可能4块回写盘一起有问题呢,想想电源,数据线都换过了,也就差主板了,于是第二天将主板换上继续测试,因为到现在位置,问题出现周期已经变成1周出现1次,所以再观察已经是一周以后了……

当一周以后再来到这个网吧观察时,我朋友在网吧等到凌晨4点多没挂,结果第二天早上起来听说又挂了,到现在已经想不出什么原因了,因为从大体上说“主板、电源、硬盘、数据线”都换过了,内存也测试过了,总不可能是cpu针脚插弯了吧,此时已经想不出其他原有,继续看下日志吧,因为程序挂了日志里一般都能找到点蛛丝马迹,这个一定要赞一个!结果最后查看日志时,发现仍然有一个回写盘报错,最后将这块回写盘再换掉,根据我朋友的最终反馈,目前一切终于阶段性恢复正常!

我想写到这里,这篇文章终于算是有个了解了

那最终可能还是要再简单总结下此次问题中的一些盲点:
1、导致此次问题比较纠结的主要原因之一是问题发生周期太长,并且带有一定的诱导性,开始每天晚上8~10点或者凌晨2~4点出现问题,而且较为有规律,就是这个时间出问题,白天出问题的几率低的不能再低。但是按照上座率来看,并不是100%的晚上8~10点人比白天多,而凌晨2~4点人更加少。所以要观察到现象基本要等20个小时左右。
2、问题是属于复合型问题,并且比较隐蔽。
3、最初是交换机故障,因为最初没有替换设备,只能拿之前就有问题的设备来替换,而且问题不只这一点,所以也出现了替换也没用的问题,当然在这之前还没怀疑到交换机,是怀疑到服务器,所以当时就采取了a服务器带一半,b服务器带一般的策略,结果都出问题,所以当时就纠结万分。这也是有同学说你早一个服务器带一半早发现问题了,而我没发现问题的一个主要原因。
4、后来出问题后,没重启服务,直接重启了交换机,结果客户机卡死的活过来了,这里开始意识到是交换机问题,并且最终强制更换了一批其他品牌的傻瓜交换机测试,但是后来还是出现挂了,结果当时又不知道谁进服务器把分服务器负载改为均衡负载,也不知道什么时间改的,于是又要等出问题来判断是否与服务器有关系。
5、再后来终于发现了主服务器锯齿型的日志体现,这里就换了存放img的磁盘。
6、换了完了还是有问题,结果检查日志又发现所有回写盘几乎在同一时间一起报错,但是不太可能4块盘一起出问题,之前电源,数据线就已经换过了,于是怀疑主板,并将主板更换了同型号的另外一块新板子继续观察。
7、换了还还是出问题了,再次查看日志,只有一块回写盘报错,最后把这块盘又换掉,到目前未知大概有2周左右,没再出问题了。

其实我相信很多人看完了文章都觉得我搞的太罗嗦了,其实导致这么罗嗦的原因也很多了:
1、这些服务器配置用了n个网吧了,鸟事没有,我朋友并太认为和硬件有关系,但是开始1个月啥事没有,后来突然出问题,这种问题一般都是硬件故障或者软件升级导致。
2、因为常规检测手段都无法看到硬件有任何异常,所以无法认定是硬件问题导致,所以上去就叫人家换服务器并不是非常靠谱,好歹也要找出个理由来才能让人家换吧。
3、对于这种比较纠结的问题,从个人的角度来讲我是希望发现真正的问题原因,这样对日后排除问题解决问题的信心坚定方面是非常有必要,有价值的,我经常出口就叫人家差硬件也是在这些问题上来的。
4、主要是这段时间碰到的硬件问题太多,但是基本都能看到现象,唯独这个硬件故障是出在主板和交换机上,看不出来……
5、我去帮朋友解决问题,并不完全是为了解决问题而解决问题,而是希望把这种处理问题的方式方法自我检验,并且和朋友分享。
所以说到这里,我也希望大家能把自己解决问题的经历,经验总结一番,这不仅可以帮助到别人,也可以记录下自己的历程。

——(完)——