我在这分享的不是一本服务器故障解决的完全手册,但如果能够认真的按照下面的步骤维修维护,它也许可以解决大多数问题,但当你做完所有的这一切仍不管用时,不用惭愧,去找维修专家吧,可以放心的是,这些维修步骤不会出现大的损害,最坏的情形是“It does not work at all”。
本文主要分三部分:第一部分讲的是服务器故障排除的基本原则性问题;第二部分讲述了一些服务器硬件故障排除的实例;第三部分讲述了一些服务器软件故障排除的实例。
第一部分 服务器故障排除的基本原则性问题
一、服务器开机无显示应怎么办
1、检查供电环境,零-火;零-地电压
2、检查电源指示灯,如果亮,正常吗
3、按下电源开关时,键盘上指示灯亮吗?风扇全部转动吗
4、是否更换过显示器,更换另一台显示器
5、去掉增加内存
6、去掉增加的CPU
7、去掉增加的第三方I/O卡
8、检查内存和CPU 插的是否牢靠
9、Clear CMOS
10、更换主要备件,如系统板,内存和CPU
二、服务器故障排错的基本原则是什么
1、尽量恢复系统缺省配置
a:硬件配置:去除第三方厂商备件和非标配备件
b:资源配置:清除CMOS,恢复资源初始配置
c:BIOS,F/W,驱动程序:升级最新的BIOS,F/W和相关驱动程序
d:TPL:扩展的第三方的I/O卡属于该机型的硬件兼容列表(TPL)吗
2、从基本到复杂
a:系统上从个体到网络:首先将存在故障的服务器独立运行,待测试正常后再接入网络运行,观察故障现象变化并处理
b:硬件上从最小系统到现实系统:指从可以运行的硬件开始逐步到现实系统为止
c:软件上从基本系统到现实系统:指从基本操作系统开始逐步到现实系统为止
3、交换对比
a:在最大可能相同的条件下,交换操作简单效果明显的部件
b:交换NOS载体,既交换软件环境
c:交换硬件,既交换硬件环境
d:交换整机,既交换整体环境
三、服务器故障排除需要收集哪些信息
服务器信息:
1、机器型号
2、机器序列号(S/N:如:NC00075534)
3、Bios 版本
4、是否增加其它设备,如网卡,SCSI 卡,内存,CPU
5、硬盘如何配置,是否做阵列, 阵列级别
6、安装什么操作系统及版本(Winnt 4, Netware, Sco, others)
故障信息:
1、在POST时,屏幕显示的异常信息
2、服务器本身指示灯的状态
3、报警声和BEEP CODES
4、NOS的事件记录文件
5、Events Log 文件
确定故障类型和故障现象:
1、开机无显示
2、上电自检阶段故障
3、安装阶段故障和现象
4、操作系统加载失败
5、系统运行阶段故障
第二部分 服务器硬件故障处理几例
硬件故障是指服务器硬件出现异常而导致的各类错误。由于服务器构成比较复杂,因此在检查的时候必须认真、仔细。下面以一台4500为例说明。(例子,在实际问题中如果遇到相似现象,也需要具体问题具体分析,不要盲目套用)
有一台4500,配有256M内存,使用一个PIII XEON 500带2M高速缓存的处理器。开机后没有任何显示,但系统日志上提示了一条CPU电压为0伏的信息,系统指示灯三灯不停在闪烁(指示灯三灯闪烁是服务器的另一种报警方式,我会在文后说明)。这种错误一般是处理器电压调节模块(VRM)出错或CPU出错或CPU与CPU板块接触不良,但也可能是CPU板块出错,这时情况就比较复杂了,必须经过认真慎重的思考。因为CPU板块在整个服务器中,占有举足轻重的地位,如果它出错服务器是会报致命错误的,并且在系统日志中会提示致命错误,但报CPU电压错的情况也有5%左右。我们立刻把CPU调换在另一CPU插槽中,开机后依然是刚才的那种故障。所以在初步判断中,可以排除是CPU板块坏。
这时,取出CPU仔细擦拭金手指,以及CPU板块中与CPU接触的地方后,开机依然无显示。
相对处理器坏的情况来说处理器电压模块(VRM)出现故障的情况比较大。于是立即在另一台4500中取下一个处理器电压模块,安装在此服务器中。开机后,服务器依然没有任何显示,系统日志上依然提示CPU电压为0伏的信息,系统指示灯三灯依然不停在闪烁。这时的情况就比较明显了。于是立即从另一台 4500中取下一个CPU安装后,开机正常。
总结:
在服务器的维修中,线索都会显得扑朔迷离,一般来说不可能一次就可以准确地判断出问题的所在。这样就要求相关人员要有信心及耐心。出现错误一般的流程是通过系统日志上的信息来解决,如果没有解决问题再找出其它因素,然后再看日志信息。总之,服务器出错后,必须一步一步解决,没有捷径可言。
又如:
有一台4200开机不显示,发现开机时系统日志没有任何信息,且系统指示灯不亮。初步判断是电源方面出现了错误。经过仔细检查,发现服务器的电源是正常的,因此最大的可能就是服务器的电源管理板出现故障。更换电源管理板后,开机显示正常。但这时,新的问题来了:自检时,用CTRL+M不能检测到硬盘。
硬盘在别的服务器上是正常的,因此立即清除此服务器的CMOS,但依然不正常。立刻上网找到此服务器的最新BIOS,升级BIOS后也不能解决问题。又检查硬盘笼子和服务器里的数据线及电源线后依然出错。这时,一般情况会怀疑是服务器的I/O板(输入输出板块)有问题。但就在这个时候,我发现在I/O板上有一个非联想的旧式网卡,立即去除此网卡后服务器就一切正常。
硬件故障并不单单指硬件有问题,它也指硬件之间不兼容。因为服务器的正常运作需要各部件之间的大力协调。建议大家在采购各元件时,都采用同一品牌原装的,并且要采用能发挥服务器性能的元件(上例中的旧式网卡即使正常也会严重影响服务器性能),这样才不会发生莫明其妙的故障。
还有一种情况:用户需要把他的3200升级到双网卡,我建议他购买原装网卡,但当他看到 4500的网卡是采用的INTEL 82559芯片后,断然决定不使用原装网卡而采用另一品牌也采用INTEL 82559的网卡。过了几天,他打电话给我说,他的新网卡不能使用网络冗余及数据校验,并怀疑服务器有问题。维修工程师带了一个INTEL 82559网卡到用户那里,仔细检查了服务器的环境完全正常后,把INTEL 82559网卡安装到机器上后一切正常。这个例子更加说明了,要发挥服务器的最大性能及功能,必须使用原品牌原装的配件。非原品牌非原装的配件,不能支持服务器的某些功能,严重的会影响到服务器的正常使用。
要避免硬件故障发生频率,服务器管理人员必须注意服务器的使用环境完全正常。比较重要的服务器必须在恒温、恒湿的环境;电压也要符合,不仅要采用UPS,还必须接地线,必须是左零线、右火线,零地电压在1~3伏。在开、关服务器上必须符合正常的流程。工作人员必须严格执行操作流程。
第三部分 服务器常见软故障解决思路与实例
服务器软件故障是在服务器故障中占有比例最高的部份,约占70%,解决的过程必须更加深思熟虑。导致服务器出现软件故障的原因有很多,最常见的是服务器 BIOS版本太低、服务器的管理软件或服务器的驱动程序有BUG、应用程序有冲突及人为造成的软件故障。下面分别举例说明各类软件故障的维修方法。
有一台3500服务器,配置为双PIII 500带521K高速缓存的CPU、512M内存。开机后,系统日志报电压调节模块异常(VRM)的错误,报错的信息是:“Voltage Regulator Module (VRM) over/under-voltage 2.88V/0V”。从表面来看,极有可能是服务器的电压调节模块或其它硬件出现故障,极容易导致维护人员认为是硬件故障。维护人员立刻使用其它3500的硬件来测试,发现即使使用新的配件,此服务器依然报VRM错。就在一筹莫展的时候,维修工程师带来了最新的CPU管理板(CPU Management Control)的固件(FIRMWARE),于是升级了CPU管理板块的FIRMWARE后,服务器恢复立即正常。
FIRMWARE升级方法是, 1) 用软盘启动计算机,然后插入firmware软盘并运行上面的相关文件cabrillo; 2) 系统刷新BMC(主板控制器)和HSC(热插拔背板控制器); 3) 然后系统询问执行第几个选项(通常为2); 4) 然后系统询问服务器的电源配置(通常为2); 5) 如果回答有两个电源,系统询问服务器是否有辅助风扇——即在第三个电源(冗余电源)的位置上 是否有风扇(通常为N); 6) 然后系统询问是否重写 BMC kernel use area;(通常为N)然后系统询问是否输入一个asset tag; (通常为N) 7)最后系统询问在刷新后是否要重新启动系统;(通常为Y)。这种升级方法也适合刷新系统BIOS等,命令的参数不同以及更新FIRMWARE及BIOS文件名不同,参数请参考服务器的说明。
任何一款服务器的FIRMWARE及BIOS都会有不同的BUG,因为BUG在所难免,所以我们不能错误地认为服务器的BIOS程序就很完善,而应该经常更新服务器的FIRMWARE及BIOS,只是在升级之前应该小心谨慎,错误的升级方法将会导致严重的后果。
目前流行的中高档服务器都拥有强大的管理程序,为客户提供了方便的管理途径;服务器也拥有各种操作系统下的驱动程序,方便了客户在各种操作系统中的使用。但是,世上任何一款程序都会有一些BUG,这些BUG将影响用户使用。但是服务器厂商总是会在第一时间内开发出新的程序,客户只需要及时更新这些程序就可以避免这类故障。
当服务器的软件故障为此类时,表现的现象也不尽相同。一般来说,管理程序BUG会导致系统速度变慢,CPU占用率变高,无法正常使用某些功能等;驱动程序的BUG会导致死机、与某些软件有冲突,磁盘工作不稳定等。查看管理程序是否出错的最好的办法就是在系统中首先禁止此类管理工具,再观察服务器是否还是异常。由于管理工具是随着系统启动而启动的,所以应首先避免它的启动。以WINDOWS NT4为例,就首先在管理工具服务中禁用某些服务器软件服务,再修改注册表中的启动项即可。如果是驱动程序有问题的话,就以安全模式进入系统,看是否正常。但是需要注意的是,在安全模式中,系统速度变慢是正常的(特别是磁盘I/O方面)。
服务器的维护人员就应该经常在服务器网站上下载最新的管理工具程序及驱动程序。这样会减少很大一部份软件故障的发生。
相比之下,软件冲突造成的故障判断比较困难,需要管理人员有比较丰富的经验以及敏锐的观察力。
曾经有一位用户说,他有一台的服务器无法安装SQL SERVER 2000,已经重装N次NT了,排除是系统故障。而这唯一的服务器又将作为非常重要数据库服务器,因此非常着急。于是维修工程师去了他的公司查看。这台服务器所在的机房是非常标准、完善的机房,检查了这台服务器的情况,发现并没有硬件上的故障,于是排除了光驱读盘力差的可能。但是,用户刻的SQL SERVER 2000光盘引起了工程师的怀疑,工程师让他拿出了正版的 SQL SERVER安装,结果还是不行。在安装的过程中,没有出现丝毫错误,可就是在运行的时候会自动退出,没有任何提示。但是,我在管理工具中的事件查看器的系统日志中却发现了一条信息:windata.exe导致一个无效的数据溢出。Windata是用户自己编写的一个程序,而且是随操作系统启动而启动的程序。我立即结束掉这个进程后,再运行SQL一切正常。
对于此类软件故障,操作员最好先查看有关的日志,看看系统中是否有可疑的进程。目前的服务器无论是高端还是低端,对于SQL等标准程序的支持是相当可靠的,所以排除的重点就是结束可疑进程。
还有一种软件故障是人为因素造成的,它一般是人为误操作(包括没按操作流程的操作)、意外关机(包括电源突然不供电)或非正常关闭应用程序造成的。
人为误操作因素只要加强管理都可以避免此类故障发生。在这里就详细说明意外关机或非正常关闭程序造成故障的方法。
正常关闭系统程序非常重要,尤其是WEB服务器,一个用户就是因为没有正常关闭系统程序而经历了一次数据损坏甚至丢失的经历。
对于服务器的软件故障,只要平时管理员注意维护,应该是可以避免的。