排除AIX服务器故障的八大步骤(1)


问题1:服务器更大,而计算能力却降低了

当时,我需要把一个AIX5.3LPAR从基于POWER4?的老式IBMpSeries?p670服务器迁移到基于POWER6?全新的 pSeriesp570服务器上。老的服务器资源不足(使用WorkloadManager管理服务器上主要应用程序的资源),因此新硬件上新的动态处理器资源应该会提供我需要的计算能力。我对这个LPAR执行了mksysb,然后使用NetworkInstallationManager在新硬件上恢复它并通过SAN磁盘映射它。

我启动了这个LPAR,直到启动应用程序之前看起来一切顺利。突然之间,用户开始打电话来了。他们根本无法访问自己的产品了。当我登录时,发现服务器完全是空闲的。服务器上根本没有消耗资源很多的进程。用户为什么会遇到问题?

问题2:出故障的硬盘无法解除镜像

我的一台服务器具有镜像的root磁盘。有一天,错误报告指出在其中一个磁盘上坏块无法重新定位。我知道这是硬件故障的先兆,所以开始解除镜像。但是,服务器说无法完全解除镜像,因为其中一个逻辑卷只有一个好拷贝,它就在出故障的磁盘上。我应该怎么解决这个问题并更换硬件?

故障排除过程

记住这两个示例问题,现在看看解决它们的过程。

步骤1:别乱动

一旦发现有麻烦了,最明智的举动就是别乱动。就像印地安纳·琼斯在“夺宝奇兵”中一样,如果发现踩上地板就会有飞镖射向您,那么就停在原地,不要继续前进了。更多的变动只会让问题复杂化,可能把情况弄得更糟。当一个问题影响系统正常运行时,不得不解决多个问题是没有意义的。

对于第一个示例问题,我让用户马上退出系统,然后我终止应用程序。我知道在性能很差时用户的查询和输入会中断,这可能会破坏他们的数据,在我检查系统之前不希望他们的环境有进一步的变动。尽管用户不愿意听到他们现在不能使用新的服务器,但是知道我正在查找问题的原因,他们会很高兴。另外,这让我有时间按自己的方式执行其他故障排除步骤。

步骤2:先从基本命令开始,然后增加复杂性

在我学功夫时,听到了一位二级黑带在公共汽车站制伏小偷的故事。同学们都想知道她用哪一招放倒了进攻者。是金虎式吗?还是八卦掌中的圈掌?我们甚至想像她非常厉害,用醉八仙把对方放倒了。结果都不是:她使用的是白带在班上最初学习的技术之一-肘击前胸,再拳击鼻子。

AIX提供了用于检查服务器的各个方面的命令,包括硬件和软件。即使是最基本的命令也会为分析问题提供很好的基础。当信息不够或仍然有些东西表现不正常时,可以开始尝试更复杂、更强大的工具。但是,应该从最简单的命令和想法开始,然后再使用更强大的工具。

对于第二个示例问题,我先通过查看errpt输出寻找硬件问题,然后使用unmirrorvg命令-尝试解除镜像的简单但强大的工具-而不是对磁盘上的每个逻辑卷运行rmlvcopy.当我发现有一个逻辑卷无法删除时,就使用lspv、lsvg和migratepv等其他基本命令收集信息。我尝试用extendvg和mirrorvg在另一个磁盘上创建卷组的另一个拷贝。这仍然留下了一些旧的分区,所以我更进一步,用syncvg和 synclvdom协调ObjectDataManager与服务器。最后,我用migratelp尝试把各个逻辑分区转移出这个磁盘。不幸的是,这些工具都不奏效,但是它们提供了大量信息。

步骤3:再现问题

按照科学的方法,任何假想和试验的关键一点是,能够重建过程并产生相同的结果。如果做不到,结论至少是不确定的。在最糟糕的情况下,这会颠覆科学家的理论并损害他们的名誉,就像在上世纪90年代宣称实现了室温冷聚变的物理学家一样。

或者,按我的说法:如果一开始不成功,那么在其他地方试试是否可以造成同样的问题。

在管理AIX服务器时,如果某些东西出了问题,而您有再现问题所需的资源,那么在另一个相似类型的LPAR上执行相同的操作,看看是否会产生相同的结果。如果在另一个服务器上修改相同的属性会造成相同的结果,就可以推论这个操作就是问题的根源。但是,如果产生了完全相反的结果,那么要研究服务器之间的细微差别,尝试推测造成问题的原因。

对于第一个示例问题涉及的LPAR,我发现当把SAN磁盘交换回老的p670服务器并启动它时,问题没有出现。用户能够访问他们的应用程序,CPU承受正常的负载,CPU利用率为80%多(10%内核+70%用户)。因此,我能够断定是p570服务器上特有的某些东西导致了问题,而不是迁移过程中引入的某些东西。


相关内容