Команды powermt завершаются сбоем с ошибкой «ERROR: Device Lam claim failed»
Summary: Команды powermt завершаются сбоем с ошибкой «ERROR: Device Lam claim failed»
Symptoms
Эта конкретная проблема может возникнуть, только если сервер подключен как к управляемым массивам PowerPath, так и к неуправляемым массивам PowerPath и последующие изменения конфигурации в обоих массивах. В нашем примере некоторые устройства Clariion были удалены, но соответствующее псевдоустройство не было очищено. Затем было добавлено хранилище IBM, и hdisks, первоначально использовавшиеся в качестве пути к удаленным устройствам Clariion, были повторно использованы для описания новых дисков IBM. Это привело к появлению неправильных записей в ODM
Среда:
ОС: AIX (любой вкус)
DELL SW: PowerPath для AIX (любой выпуск)
Оборудование другого производителя: диски из массива, неуправляемого PowerPath.
В среде AIX команды powermt завершаются сбоем с ошибкой «ERROR: Не удалось выполнить утверждение Device Lam». Эта ошибка не описана в нашем Справочном руководстве по интерфейсу командной строки семейства Dell PowerPath и системных сообщениях.
Cause
PowerPath сообщает об этом сообщении, если PowerPath не может определить, какому модулю загрузочного массива (LAM) принадлежит устройство. Так как команды 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, и когда на псевдоустройство (в данном случае hdiskpower29) ссылаются в «powermt_custom.xml», то «powermt config» не может связать LAM с устройством и завершается сбоем, а другая команда «powermt» завершается сбоем с той же ошибкой.
Resolution
Поскольку все команды «powermt» завершаются сбоем, невозможно обновить файл «powermt_custom.xml» с помощью команды «powermt save». Удаление файла «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». На этом этапе вы также можете обнаружить некоторые «мертвые» пути (для псевдоустройств, также удаленных из конфигурации, но где соответствующие hdisks не были повторно использованы, чтобы указать на управляемые диски, отличные от PowerPath, и которые не были обнаружены в ODM при проверке атрибута «unique_id») в «powermt display». Эти записи очищаются с помощью команды «powermt check». В таком случае не забудьте снова запустить «powermt save» после этой окончательной очистки.