服务器软件故障是在服务器故障中占有比例最高的部份,约占70%,解决的过程必须更加深思熟虑。导致服务器出现软件故障的原因有很多,最常见的是服务器BIOS版本太低、服务器的管理软件或服务器的驱动程序有BUG、应用程序有冲突及人为造成的软件故障。下面分别举例说明各类软件故障的维修方法。
有一台HP LH6000R服务器,配置为双PIII XEON 700带2M高速缓存的CPU、512M内存。开机后,系统日志报电压调节模块异常(VRM)的错误,报错的信息是:“Voltage Regulator Module (VRM) over/under-voltage 2.88V/0V”。从表面来看,极有可能是服务器的电压调节模块或其它硬件出现故障,极容易导致维护人员认为是硬件故障。
维护人员立刻使用其它LH6000R上的硬件来测试,发现即使使用新的配件,此服务器依然报VRM错。就在一筹莫展的时候,维修工程师带来了最新的CPU管理板(CPU Management Control)的固件(FIRMWARE),于是升级了CPU管理板块的FIRMWARE后,服务器恢复立即正常。
FIRMWARE升级方法是,在服务器的NAVIGATOR(导航光盘)中提取CPU管理板(CMC)FIRMWARE的刷新程序,程序为FLASH.EXE,然后将从网上下载的LH6KC.BIN(CPU管理板的FIRMWARE)拷贝到一张DOS启动盘上,用这张盘启动服务器。然后在DOS下运行”FLASH /CMC A:LH6KC.BIN”,刷新完成后重新启动服务器后即可。这种升级方法也适合刷新系统BIOS等,只是FLASH命令的参数不同以及更新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服务器。我的一个朋友就是因为没有正常关闭系统程序而经历了一次数据损坏甚至丢失的经历。我的朋友是使用的HP web hosting server appliance,因此我向他提供了一些使用规则。
这些方法对于服务器的维护非常有效,主要包括了正确的关闭系统程序、怎样避免数据丢失以及非正常关闭系统后的恢复方法。下面以我朋友的HP web hosting server appliance为例(使用的是UNIX,但思路对于其它操作系统均有效)。