powermt 命令失败,并显示“ERROR:设备 Lam 声明失败”
Summary: powermt 命令失败,并显示“ERROR:设备 Lam 声明失败”
Symptoms
仅当服务器同时连接到 PowerPath 托管阵列和非 PowerPath 托管阵列,并且在两个阵列上都发生配置更改时,才会发生此特定问题。在我们的示例中,一些 Clariion 设备已被移除,但相应的伪设备尚未清理。然后添加了 IBM 存储,并重新使用了最初用作这些已删除 Clariion 设备的路径的 hdisk,以描述新的 IBM 磁盘。这导致 ODM 中的条目不正确
Environment:
OS:AIX(任何形式)
戴尔软件:PowerPath for AIX(任何版本)
非戴尔硬件:PowerPath 无法管理阵列中的磁盘。
在 AIX 环境中,powermt 命令失败并显示“ERROR:Device Lam claim failed.”此错误未记录在我们的 Dell PowerPath 系列 CLI 和系统消息参考中。
Cause
当 PowerPath 无法确定设备所属的可加载阵列模块 (LAM) 时,PowerPath 会报告此消息。由于 PowerPath 命令不起作用,因此只能查看 ODM 进行故障处理。如果 PowerPath 正在寻找 LAM 但找不到相应的 LAM,这意味着存在伪设备,其 ODM 中的条目指向 PowerPath 不应预期的设备类型。
在导致本文创建的案例中,我们在 ODM 中有以下内容:
CuAt: name = "hdiskpower29" attribute = "vpd_map" value = "MF0808C,TM1010C,RL2004C,Z00008X,Z1040780C,SN081083X" type = "V" generic = "" rep = "sl" nls_index = 0
检查此类设备的 PdAt,我们发现:
PdAt: uniquetype = "disk/fcp/2145" attribute = "vpd_map" deflt = "MF0808C,TM1010C,RL2004C,Z00008X,Z1040780C,SN081083X" values = "" width = "" type = "V" generic = "" rep = "sl" nls_index = 0
这不是 DELL 类型的磁盘,也不是由 PowerPath 管理的任何内容:这是 IBM 磁盘。
伪设备的unique_id属性更容易证明设备的性质。在我们的案例中,我们有(实际值已更改以保持机密性):
CuAt:
name = "hdiskpower29"
attribute = "unique_id"
value = "33213600507680C80017D3800000000000XXXXXXX4503IBMfcp"
type = "R"
generic = ""
rep = "s"
nls_index = 0
当 ODM 中存在此类条目,并且当在“powermt_custom.xml”中引用伪设备(此处为 hdiskpower29)时,“powermt config”无法将 LAM 关联到该设备并失败,另一个“powermt”命令失败并显示相同的错误。
Resolution
由于所有“powermt”命令都失败,因此不能使用“powermt save”更新“powermt_custom.xml”文件。删除“powermt_custom.xml”文件不是个好主意,因为存在丢失正确伪设备与 PowerPath 托管阵列设备之间关系的风险。
解决此问题的唯一方法是从 ODM 中删除“unique_id”属性为 XXXXIBMfcp 的所有伪设备。建议不要使用危险的“odmdelete”命令,而是直接使用“rmdev -dl <pseudo_device>”命令。
以下是为删除我们示例中的错误条目而运行的命令示例(每个案例都是唯一的,下面的列表是一个示例):
for i in 29 30 31 32 33 34 39 40 41 42 43 44 45 46 47 48 125 136 137 138 167 168 169 170 171 172 173 216 217 267 522 523 524 525 526 527 do rmdev -dl hdiskpower$i done
完成此清理后,运行“powermt config”,再运行“powermt save”。在此阶段,您可能还会在“powermt display”中发现一些“无效”路径(对于也从配置中删除的伪设备,但未重用相应的 hdisk 以指向非 PowerPath 托管磁盘,并且在检查“unique_id”属性时未在 ODM 中发现这些路径)。这些条目使用“powermt check”命令进行清理。在这种情况下,不要忘记在最后清理后再次运行“powermt save”。