使用 IBM Systems Director 进行存储故障诊断的指南

本文旨在整理管理存储组件时应遵循的故障排除方法论及最佳实践,并介绍需要在 IBM® Systems Director、LSI、NetApp Eagle 驱动程序等实体中验证哪些内容以解决某些问题。简而言之,本文将作为有效地调试存储管理问题的一站式参考资料。

Shruthi Sanchana Venkateswaran, 软件工程师, IBM

/developerworks/i/authors/Shruthi_64x80.jpgShruthi 是工作负载优化系统的软件工程师。她负责处理存储组件管理问题,有差不多 3 年处理各种问题的经验。她也与各个团队进行交流,如 IBM Systems Director 和 LSI/NetApp Eagle Providerwork,以了解管理流程并提出有用的解决方法,有时也解决常见问题。



2013 年 7 月 01 日

前言

使用 IBM® Systems Director 管理大多数存储设备其实并不简单。与管理其他组件不一样,它需要某种管理软件,如 Storage Management Initiative Specification (SMI-S)驱动程序,这可从第三方供应商获取。在这种涉及到不止一种软件的环境下,如 IBM Systems Director、SMI-S 驱动程序、IBM AIX® 操作系统等,我们常常会面临某些挑战,而且有必要了解与系统相关的细节以确保系统正常运行。虽然我们已拥有如何管理存储的详细信息,但目前在管理存储时还没有可供遵循的最佳实践。

本文适用于安装有 IBM Systems Director 版本 6.2.x 和 LSI SMI-S 驱动程序 10.10.55.x 版本以及 NetApp SMI-S 驱动程序 10.27.x 版本的 IBM AIX 系统。

IBM Systems Director 和 SMI-S 驱动程序既可位于不同系统中,如图 1 所示,也可位于同一系统中。因此,务必注意在安装 SMI-S 驱动程序的系统中运行 SMI-S 驱动程序命令,在安装 IBM Systems Director 的系统中运行 IBM Systems Director 命令。

图 1. SMI-S 驱动程序连接示意图
SMI-S 驱动程序连接示意图

假设和术语

  • 为了便于理解,我们将在安装 IBM Systems Director 的系统中运行的命令称之为 “在 IBM Systems Director 系统中”,而将在安装 SMI-S 驱动程序的系统中运行的命令称之为 “在驱动程序系统中”。
  • 本文提到的所有命令都是基于命令行界面 (CLI) 的。因此,要以 “root” 用户身份分别登录各自系统以运行这些命令。
  • LSI SMI-S 驱动程序现在已被重命名为 NetApp SMI-S 驱动程序。那么,本文提及的 <PROVIDER_PATH> 值以及 SMI-S 驱动程序命令可以是:LSI SMI-S 驱动程序的 /opt/lsi/pegasus 或 NetApp SMI-S 驱动程序的 /opt/netapp/pegasus
  • 这里假设读者熟悉安装 SMI-S 驱动程序和 IBM Systems Director、将存储添加到 SMI-S 驱动程序以及更新 SMI-S 驱动程序的过程。

故障排除检测清单

当 IBM Systems Director 管理端点在其属性(主要是 CommunicationStateAccessState)中不显示预期值时,该排除清单十分有用。这些属性的理想值分别是 2Unlocked

注意: 应遵循下面提到的相同顺序以获得所需要的结果。这些步骤是基于过去经验整理的,未必总会带来成功的结果。

验证 cimserver 的状态

IBM Systems Director 症状: CommunicationState 是 1,这意味着 ‘Not Available(不可用)’。

SMI-S 驱动程序的 cimserver 状态可基于各种参数进行验证。必须所有这些都返回正结果,才能确定 cimserver 完全正常并正在运行。在驱动程序系统中:

  1. 运行:<PROVIDER_PATH>/bin/cimcli ns

    当活跃(Active)时,该命令将返回命名空间列表。

    不活跃时,它返回:
    Pegasus Exception: Cannot connect to local CIM server.
    Connection failed. Trying to connect to

  2. 运行:netstat -an | grep 35988

    活跃时,该命令将返回:tcp 0 0 *.35988 *.* LISTEN

    不活跃时,什么都不返回。

  3. 运行以下命令:

    a) cat /tmp/cimserver_start_generic.conf

    b) ps -ef | grep cimserve

    活跃时,步骤 a 中文件所示的进程 ID 将作为步骤 b 中的一个 [cimserve] 进程正在运行。

    不活跃时,步骤 a 的输出将是:
    cat: 0652-050 Cannot open /tmp/cimserver_start_generic.conf

    注意: 预计步骤 b 的输出将有一个 [cimserve] 进程 或两个 [cimserve] 进程正在运行。如果两个 [cimserve] 进程正在运行,那么其中一个 [cimserve] 进程(该进程拥有步骤 b 所示的 ID)代表 SMI-S 驱动程序 cimserver,而另一个 [cimserve] 进程代表 AIX cimserver。

恢复 cimserver 状态

  • 如果 cimserver 完全不在运行,具体体现为上述 3 个步骤中都得到负值结果,那么使用 <PROVIDER_PATH>/bin/cimserver 来启动 cimserver。
  • 如果 cimserver 被挂起且不能响应查询,具体体现为一些步骤中得到负值结果,另一些步骤中得到正值结果,那就使用上面步骤 3 中获取的进程 ID 结束现有 cimserver 进程:kill -9 <Process ID>, 然后用 PROVIDER_PATH>/bin/cimserver 启动 cimserver。

验证 cimuser 密码

Systems Director 症状:存储管理端点的 AccessStateLocked

cimuser 的密码应与安装 SMI-S 驱动程序的服务器密码相一致,如果不一致,IBM Systems Director 会使存储管理端点的 AccessState 字段进入锁定状态。

要验证 cimuser 和驱动程序系统的密码是否相同,在驱动程序系统中运行:

cimcli ns -u root -p <password of the provider system> -l 127.0.0.1:35988
  • cimuser 密码和驱动程序系统密码相同时,上面命令将返回命名空间列表。
  • cimuser 密码和驱动程序系统密码不相同时,上面命令将返回:
    cimcli Pegasus Exception: HTTP Error (401 Unauthorized).. Cmd = ns Object =

修复 cimuser 密码

  • 要修复 cimuser 密码,运行:
    <PROVIDER_PATH>/bin/cimuser -m -u username [ -w old password ] [-n new password]

new password– 确保该密码与驱动程序系统密码相同。

  • 如果不知道旧 cimuser 密码,那么删除现有 cimuser:

    <PROVIDER_PATH>/bin/cimuser -r -u root

再使用驱动程序系统密码添加用户:

cimuser -a -u root -w  
<password>

验证存储控制器的添加状态

IBM Systems Director 症状:存储管理端点从 IBM Systems Director 中消失。

一个存储有两个控制器,同时被强制添加到安装在服务器上的 SMI-S 驱动程序中,从而使 IBM Systems Director 能够发现该存储并列出存储管理端点。要验证,应在驱动程序系统中运行下列命令:
cimcli ei CIM_ComputerSystem -n root/lsiarray13 | grep OtherIdentifying

参考清单 1。如果未列出控制器,那么将存储控制器添加到 SMI-S 驱动程序。

清单 1. 表明控制器添加的样例输出
# cimcli ei CIM_ComputerSystem -n root/lsiarray13 | grep OtherIdentifying
  OtherIdentifyingInfo = {"30333936392030333832332051104947"};
  OtherIdentifyingInfo = {"172.23.4.211", "0000:0000:0000:0000:0000:0000:0000:0000",
  OtherIdentifyingInfo = {"172.23.4.212", "0000:0000:0000:0000:0000:0000:0000:0000",
  The above output indicates that, Storage box with 
  Controller A IP: 172.23.4.211 and             
  Controller B IP: 172.23.4.212 are added to Provider.

将 IBM Systems Director 管理端点恢复到理想值

故障排除检查清单上的所有步骤都显示正值结果后,下列步骤有助于将 IBM Systems Director 中的 CommunicationStateAccessState 恢复到理想值。在 IBM Systems Director 系统中

  1. 运行下列命令:smcli lssys -t StorageSubsystem -A AccessState,CommunicationState

    AccessState 应该是 Unlocked,且 CommunicationState 应该是 2。如果不是,继续步骤 2。

  2. 运行简单查询。
    1. 运行:smcli lssys -i <IP Address> -oT, 其中 IP Address驱动程序系统的 IP 地址。
    2. 获取在步骤 a 中提及的 OperatingSystem 资源类型的 OID。示例:stg2j5p01、OperatingSystem、0x1569
    3. 将 OID 转换为十进制,然后运行命令:
      smcli querysystem <Decimal OID> 1

重复步骤 1,如果步骤 1 的结果是负的,则运行步骤 3。

  1. 运行 discovery 和 accessys:
    1. smcli discover -i <IP address>
    2. smcli accesssys -i <IP address> -u <username> -p <password>,其中 ab 中的 IP address 表示驱动程序系统 的 IP 地址。

重复步骤 1,如果结果是负的,将问题报告给 IBM Systems Director / SMI-S 驱动程序团队。参考 报告 SMI-S 驱动程序问题 小节以了解更多细节。


最佳实践

使用 IBM Systems Director 管理存储时,为确保平稳运行务必遵循下列最佳实践。

系统重启后,确保 cimserver 处于活跃状态

重启安装有 SMI-S 驱动程序的系统后,cimserver 需是活跃的,如果不是这样,IBM Systems Director 可能无法与存储连接,这会使存储管理端点处于离线状态。需在系统中完成下列任务,以确保系统重启后 cimserver 默认是活跃的。在驱动程序系统中

    • 用清单 2 中提到的内容创建一个 cimserver 启动脚本,将其置于安全位置以便不易受到用户干预,并且最好命名为 cimstart_scriptlet。
    • 运行命令:
      mkitab "cimserver::once:<location of cimstart_scriptlet>"
      用 cimstart_scriptlet 的实际位置替代上面的位置标记。
    • 打开 /etc/inittab 文件并验证上面步骤中添加的实体是否存在。
清单 2. cimstart_scriptlet 的内容
#! /usr/bin/ksh
export PEGASUS_HOME=<PROVIDER_PATH>
export PEGASUS_ROOT=<PROVIDER_PATH>
export LD_LIBRARY_PATH=<PROVIDER_PATH>/lib:$LD_LIBRARY_PATH
export LIBPATH=<PROVIDER_PATH>/lib:$LIBPATH
date>/tmp/cim_server.log2>1
< PROVIDER_PATH > /bin/cimserver >> tmp/cim_server.log2 >1 
exit 0

要设置的环境变量

将 SMI-S 驱动程序安装到 AIX 环境时(其中同时存在 AIX cimserver 和 SMI-S 驱动程序 cimserver),为确保每个 cimserver 彼此间不发生冲突,一定要在驱动程序系统中执行以下步骤

  • 将清单 3 中提到的实体添加到 /etc/environment 文件。
  • 运行 ". /etc/environment",注意 ‘点’ 和文件名之间的空格。
  • 通过运行 env | grep pegasus 命令验证是否设置了路径,并检查清单 3 中列出的所有实体是否都在这里。如果不在,则运行命令:

    export <entry name which is not listed> ,即逐个导出没有列出的实体名称。

  • 如果还未出现,则将清单 4 中的实体添加到 /.profile 文件。
清单 3. 环境变量实体
PATH=<PROVIDER_PATH>/bin:/usr/bin:/etc:/usr/sbin:.... 
all existing values                   
LD_LIBRARY_PATH=<PROVIDER_PATH>/lib
PEGASUS_HOME=<PROVIDER_PATH>
PEGASUS_ROOT=<PROVIDER_PATH>
LIBPATH=<PROVIDER_PATH>/lib
清单 4. 概要文件实体
export PEGASUS_HOME=<PROVIDER_PATH>
export PEGASUS_ROOT=<PROVIDER_PATH>
export PATH=<PROVIDER_PATH>/bin:$PATH
export LIBPATH=<PROVIDER_PATH>/lib:$LIBPATH
export LD_LIBRARY_PATH=<PROVIDER_PATH>/lib:$LD_LIBRARY_PATH

认证和向驱动程序添加用户

默认情况下驱动程序没有启用认证,但为了安全起见强烈推荐启用认证并添加用户。

在驱动程序系统中:

  • 运行命令:
    <PROVIDER_PATH>/bin/cimconfig -s enableAuthentication=true
  • 使用以下命令添加 cimuser:
    <PROVIDER_PATH>/bin/cimuser -a -u root -w <password>

    <password> - 安装有驱动程序的系统的密码。

更新 SMI-S 驱动程序

IBM Systems Director 定期查询所有的管理端点并相应地更新属性。在驱动程序更新期间,cimserver 很可能在特定的时间段内停机。如果 IBM Systems Director 在此期间查询存储,存储和 IBM Systems Director 间的通信就会失败,并在存储管理端点中生成不恰当的值。此外,在升级过程中应保存驱动程序的凭据;如果没有保存,IBM Systems Director 可能会将存储的 AccessState 显示为 Locked。 为避免发生这种情况,最好执行以下步骤。

  • 在 IBM Systems Director 系统中:通过运行 smstop 命令停止 IBM Systems Director。
  • 在 IBM Systems Director 系统中:通过运行 smstatus -r, 命令验证 IBM Systems Director 的状态,并等到状态更新为不活跃。这可能需几分钟时间。
  • 在驱动程序系统中:执行 SMI-S Eagle 驱动程序升级。
  • 在驱动程序系统中:验证 cimserver 状态(参考 故障排除检查清单 小节)并确保它是活跃的。
  • 在驱动程序系统中:通过运行 <PROVIDER_PATH>/bin/cimuser -l 命令验证是否存在 cimuser。应返回:root;但是,如果返回:No users found for listing,那么再次添加 cimuser。
  • 在 IBM Systems Director 系统中:通过运行 smstart 命令启动 IBM Systems Director。
  • 在 IBM Systems Director 系统中:通过运行 smstatus -r 命令验证 IBM Systems Director 状态,并等到状态更新为 Active。这可能需几分钟时间。

更改安装有 SMI-S 驱动程序的系统的密码

用户更改服务器密码后,新设置的密码必须反映在 IBM Systems Director 数据库中。为确保数据库更新,用户必须执行下列步骤。

  • 将系统密码更改为新首选密码。
  • 在驱动程序系统中,运行命令:
    <PROVIDER_PATH>/bin/cimuser -m -u username -w <old password> -n <new password>
  • 在 IBM Systems Director 系统中,运行命令:
    smcli lscred -r htpp://<IPaddr>:35988

    <IPaddr> 是安装有 SMI-S 驱动程序的系统的 IP 地址。

  • 从上一步的命令输出中记下 User Principal : rootTarget Identity ID
  • 在 IBM Systems Director 系统中,运行命令:
    smcli chcred –t <Target Identity ID> -c PASSWORD –P <newpassword>

    <Target Identity ID> 是上一步中捕获的目标身份。

    <newpassword> 是当前设置的新系统密码。

  • 在 IBM Systems Director 系统中,通过运行 smstop 命令停止 IBM Systems Director。
  • 在 IBM Systems Director 系统中,通过运行 smstatus -R 命令验证 IBM Systems Director 状态,并等到状态更新为不活跃。这可能需几分钟时间。
  • 在 IBM Systems Director 系统中,等待几分钟,然后通过运行 smstart 命令启动 IBM Systems Director。
  • 在 IBM Systems Director 系统中,通过运行 smstatus -r 命令验证 IBM Systems Director 状态,并等到状态更新为活跃。这可能需几分钟时间。

报告 SMI-S 驱动程序问题

收集本节提到的所有数据,并在将问题报告到 xdl-eaglesmissupport@netapp.com 时附加这些数据。

收集驱动程序日志

本节提供关于启动日志的细节以及日志文件细节。在驱动程序系统中:

按下面每项细节所示编辑文件 <PROVIDER_PATH>/providers/array/providerTraceLog.properties

  1. 寻找以下部分。

    取消下面这行注释(删除 #),打开驱动程序调试跟踪。

## Valid trace levels are, from most to least logging:
## VERBOSE
## DEBUG
#   INFO
## WARN
## ERROR
## OFF
  1. 通过删除两个井号 (#) 取消 VERBOSE 注释,您将会看到以下代码。

    取消下面这行注释(删除 #),打开驱动程序调试跟踪。

## Valid trace levels are, from most to least logging:
   VERBOSE
## DEBUG
## INFO
## WARN
## ERROR
## OFF
  1. 寻找以下部分。
[LSI2]
#LEVEL=VERBOSE
## Uncomment the line below (remove the #) to turn on provider device event  
   logging.
## Valid trace levels are, from most to least logging:
## ALL
## CRITICAL
## NONE
  1. 取消 LEVEL 和 ALL 注释,代码如下:
[LSI2]
LEVEL=VERBOSE
## Uncomment the line below (remove the #) to turn on provider device event  
   logging.
## Valid trace levels are, from most to least logging:
   ALL
## CRITICAL
## NONE
  1. <PROVIDER_PATH> /providers/array/SbmaTraceLog.txt 中收集日志文件

收集 cimserver 日志

  1. 运行下面的命令以启动日志记录:
<PROVIDER_PATH>/bin/cimconfig  -s traceLevel=4  -p
<PROVIDER_PATH>/bin/cimconfig  -s traceComponents=ALL  -p
<PROVIDER_PATH>/bin/cimconfig  -s logLevel=TRACE -p
<PROVIDER_PATH>/bin/cimconfig  -s traceFilePath=/tmp/cimserver.trc  -p
<PROVIDER_PATH>/bin/cimserver  -s
<PROVIDER_PATH>/bin/cimserver
  1. 如果上面的命令不工作,尝试用下列命令手动启动日志记录:
vi <PROVIDER_PATH>/cimserver_planned.conf
Append the following entries to the file:
traceLevel=4
traceComponents=ALL
logLevel=TRACE
traceFilePath=/tmp/cimserver.trc

Save and exit using 'wq' in the vi editor.

Restart the cimserver
<PROVIDER_PATH>/bin/cimserver -s
<PROVIDER_PATH>/bin/cimserver
  1. 从 /tmp/cimserver.trc 收集日志文件。

其他要收集的调试信息、命令输出和日志

  • 可使用以下任何命令获得 cimserver 状态:
netstat -an | grep 35988
ps –ef | grep cimserve
cimcli ns
cat /tmp/cimserver_start_generic.conf
  • 可从 cat /tmp/cimserver_start_generic.conf 命令输出获得进程 ID,并运行 procmap <Process id> 命令。
  • <PROVIDER_PATH>/logs 中的文件清单包括:
PegasusError.log
PegasusLog.lock
PegasusStandard.log
  • 可使用下列命令获得安装/卸载日志:
/tmp/LSIarray2_install.log
/tmp/LSIarray2_uninstall.log
  • 命令输出:
<PROVIDER_PATH>/bin/cimcli -n interop ei LSISSI_RegisteredProfile -niq      
<PROVIDER_PATH>/bin/cimcli -n root/LsiArray13 ei LSISSI_StorageSystem
<PROVIDER_PATH>/bin/cimcli ei CIM_ComputerSystem -n root/lsiarray13 | grep
OtherIdentifying
which cimcli
ldd `which cimcli`
  • 下面已给出安装的 Eagle Provider 版本:

    LSI Eagle Provider : - lslpp -l | grep LSI

    NetApp Eagle Provider: - lslpp -l | grep NetApp

参考资料

学习

  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=936004
ArticleTitle=使用 IBM Systems Director 进行存储故障诊断的指南
publish-date=07012013