问题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服务器上特有的某些东西导致了问题,而不是迁移过程中引入的某些东西。
步骤4:研究问题
在信息时代,只需敲几下键盘,点几次鼠标,就能够获得大量信息。更好的是,系统管理员往往是大型社区的成员,社区记录了很多人多年的经验。
首先应该查阅生产商和销售商自己的资料。IBM这样的公司在网上公开他们的所有手册、Redbook、技术文件甚至man页面以供研究。只需在主站点的搜索栏中输入简单的关键字,就可以找到大量可能有帮助的建议和信息。
我推荐的其他信息源包括其他系统管理员经常访问的各个新闻组、论坛和站点。成天与服务器打交道的人往往会经常访问技术站点,并对在工作过程中看到的东西发表评论。对于公开的求助,大多数系统管理员乐于提供指点,或通过电子邮件往来提供帮助。另外,常常可以找到与操作系统和软件的其他版本相关的旧信息,可以通过它们找到更多信息。
对于这些信息源,主要的使用技巧是使用适当的关键字集。如果我使用Google这样一般性的网站研究AIX问题,那么会确保搜索字符串以AIX 开头,以便排除与其他风格的UNIX相关的信息。然后,可能会包含命令的输出或errpt产生的标签等内容。我还会确保在特定的短语前后加上双引号 (""),以便把搜索限制在这些特定的问题,避免无关的信息,对于常用的单词(比如LogicalVolumeManager)尤其应该这么做。
对于磁盘坏块重定位失败的问题,在Google上使用短语AIX"badblockrelocation"failure进行搜索产生了几百个结果,但是看起来没有与我的情况相符的。
步骤5:取消所有更改
有时候,解决问题最明智的做法是取消已经做的所有更改,回到原来的状态。这个步骤并非总是可行的。有时候,过分热心的C级执行官强迫您回退他们的服务器。或者,由于时间紧迫,有必要这么做。无论如何,回退是可供选择的最好的战术之一。
我把这个步骤放在故障排除步骤列表的中间位置,这是因为有时候必须早点儿这么做,有时候要晚一些。但是根据我的经验,我觉得最好先完成前四个步骤,然后再考虑取消所有更改。如果在故障排除过程开始时马上取消更改,问题很可能没有解决,下一次尝试相同的工作时还会遇到相同的麻烦。如果在过程中过晚回退,会影响正常运行时间,或者让问题复杂化,到了不可能回退的程度。
对于第一个示例,由于时间的原因,我实际上不得不回退了服务器迁移操作。如果这个生产服务器停运更长时间,用户和公司就会损失金钱。重新安排这项工作花了一周时间,这让我能够多做一些研究,但是当我再次尝试迁移时,问题又出现了。对于第二个示例,无法对硬件问题执行回退。无法告诉服务器,“回到发生坏块重定位错误之前的状态!”我不得不继续努力克服磁盘的故障。
步骤6:每次只更改一处规则
如果上面的所有步骤都不奏效,您决定开始更改主要组件或者对服务器做更激进的操作,那么要记住一条最重要的规则:每次只更改一处。
多处更改会导致两种情况之一。首先,如果这些更改解决了问题,那么您不知道哪个更改是有效的操作。如果您不关心究竟是什么解决了问题,这可能没什么大不了的,但是出色的系统管理员都希望掌握更多知识,因为他们知道问题往往会在同一地方多次出现。第二,如果问题没有解决,这可能会引入更多复杂性。继续这样做,您会不知道要取消哪个更改。如果走得足够远,系统会乱成一锅粥而您被弄得一头雾水。(xkcd上有一个关于这种情况的笑话。)
如果做一处更改之后问题没有解决,通常希望取消它并尝试其他措施。在第一个示例中就是这种情况:当我对比两个服务器的 HardwareManagementConsole概要文件时,看到它们不一样。我注意到老的POWER4硬件使用专用的CPU,而新的POWER6硬件使用不封顶的共享CPU池。我想知道这一差异如何影响CPU性能,所以修改了POWER6硬件上的概要文件以使用专用的CPU。奇怪的是,根据用户的反馈,服务器“正常”了,我在处理器上看到了负载。因此,我知道问题肯定与CPU资源有关,但是需要查明为什么会这样。
步骤7:求助于IBMSupport
如果已经尝试了所有合理的步骤,需要新的想法,通常应该联系IBMSupport。他们有高级的故障排除工具,有精通操作系统和相关产品(比如 VIO和PowerHA)的每个方面的专家,可以调出相关的案例以证实并协助解决相似的问题。但是,如果您以前没有拨打过800-IBM-SERV,有几点需要了解。
首先,您应该有IBM合同号。有多个支持级别,从最高级的由专人负责的24x7x365支持直到适用于非关键服务器的上午8点到下午5点支持。可以直接从IBM购买这些支持服务包,也可以与增值销售商签订合同。
还需要提供一些信息,让IBMSupport可以调出您的账户—通常是服务器所在地的电话号码、序列号、合同号或物理位置。这一信息很大程度上取决于您建立的是硬件案例还是软件案例。
还必须让支持人员了解问题的严重程度或优先级。优先级分为从1到4几个级别。1级通常涉及系统停止运行或生产影响,对于这个级别会马上把电话转给技术人员。4级意味着处理时间可以长一些,通常用于一般的管理问题。
您描述问题并建立支持案例之后,会给您一个跟踪号—通常称为PMR。这个号码向与您协作的其他支持人员标识这个案例。硬件和软件PMR是惟一的,如果您的问题跨越边界,就需要得到新的号码。
对于两个示例问题,我都不得不联系IBM。对于第一个问题,IBM调动从VIO支持到内核团队的多方面人员参与解决问题。对于第二个问题,只有硬件技术人员参与,我提供了来自snap命令的信息以供分析。
步骤8:走极端
有时候,没有其他方法能够解决问题,只能尝试大多数人认为是发疯的某些非正统措施。当您已经绝望,甚至工作或生命岌岌可危时,通常会这么做。在这种情况下,IBM支持人员常常会说,“如果您这么做,就会处于不受支持的状态,必须重新开始,然后我们才能够支持它。”但是,如果您的解决方案是有效的,可能能够化险为夷。