TL; DR Как я могу использовать PowerCLI, чтобы определить, установлен ли EMC PowerPath на хосте ESX?
Я пытаюсь написать сценарий, который будет выполнять операцию маскирования хоста при перемещении LUN из одной группы хранения в другую. Это сделано для устранения ошибки All Paths Down, которая может возникнуть из-за состояния гонки в ESX 4.1. Шаги описаны в VMWare KB 1015084 и 1009449. Эти шаги написаны для использования из служебной консоли. Я хочу избежать сценариев активности SSH и вместо этого делать все это в Powershell / PowerCLI.
В нашей среде мы используем EMC PowerPath на большинстве - но не на всех - наших хостах. Это маскирование LUN необходимо выполнять только на хостах, на которых установлен PowerPath, поэтому я пытаюсь протестировать каждый хост, чтобы определить это.
Я выдергивал волосы, пытаясь понять, как это сделать с помощью PowerCLI. При подключении к сервисной консоли ESX команда esxcfg-mpath --list-plugins
покажет, установлен ли PowerPath. В графическом интерфейсе vCenter это можно определить по:
Select Host -> Configuration -> Storage Adapters -> Select Adapter -> View Devices -> Examine "Owner" column
Использование get-scsilun
в PowerCLI возвращает объект, содержащий всю эту информацию кроме этого столбца "Владелец".
Я в тупике. Я надеялся, что объект get-esxcli
будет иметь какие-то эквивалентные методы, может быть, в satp
или nmp
, но пока я ничего не могу найти.
$esxcli.corestorage.plugin.list()
- person Formica   schedule 13.04.2012