TL;DR 如何使用 PowerCLI 确定 ESX 主机上是否安装了 EMC PowerPath?
我正在尝试编写一个脚本,该脚本将在将 LUN 从一个存储组移动到另一个存储组时执行主机屏蔽操作。这是为了适应由于 ESX 4.1 中的竞争条件而可能发生的 All Paths Down 错误。VMWare KB 1015084 和 1009449 中描述了这些步骤。这些步骤是为从服务控制台使用而编写的。我想避免编写 SSH 活动脚本,而是在 Powershell/PowerCLI 中完成整个操作。
在我们的环境中,我们在大多数(但不是全部)主机上使用 EMC PowerPath。仅需要在安装了 PowerPath 的主机上执行此 LUN 屏蔽,因此我正在尝试测试每个主机以确定这一点。
我一直在努力确定如何使用 PowerCLI 执行此操作。如果连接到 ESX 服务控制台,该命令esxcfg-mpath --list-plugins
将显示是否安装了 PowerPath。在 vCenter GUI 中,可以通过以下方式确定:
Select Host -> Configuration -> Storage Adapters -> Select Adapter -> View Devices -> Examine "Owner" column
在 PowerCLI 中使用get-scsilun
会返回一个对象,该对象包含除此Owner 列之外的所有这些信息。
我难住了。我曾希望一个get-esxcli
对象有某种等效的方法,可能在satp
or中nmp
,但到目前为止我找不到任何东西。