TL; DR如何使用PowerCLI确定ESX主机上是否安装了EMC PowerPath?
我正在尝试编写一个脚本,在将LUN从一个存储组移动到另一个存储组时执行主机屏蔽操作。这是为了适应由于ESX 4.1中的竞争条件而可能发生的All Paths Down错误。这些步骤在VMWare KB 1015084和1009449中描述。编写这些步骤以便从服务控制台使用。我想避免编写SSH活动脚本,而是在Powershell / PowerCLI中执行整个操作。
在我们的环境中,我们在大多数(但不是全部)主机上使用EMC PowerPath。此LUN屏蔽只需要在安装了PowerPath的主机上执行,因此我尝试测试每个主机以确定这一点。
我一直在试着用PowerCLI确定如何做到这一点。如果连接到ESX服务控制台,则命令esxcfg-mpath --list-plugins
将显示是否已安装PowerPath。在vCenter GUI中,可以通过以下方式确定:
Select Host -> Configuration -> Storage Adapters -> Select Adapter -> View Devices -> Examine "Owner" column
在PowerCLI中使用get-scsilun
会返回一个包含所有这些信息的对象,但此所有者列。
我很难过。我曾希望get-esxcli
对象有某种等效的方法,可能在satp
或nmp
,但到目前为止我找不到任何东西。
答案 0 :(得分:0)
正如所建议的,我会回答我自己的问题:
答案是:$esxcli.corestorage.plugin.list()
将返回主机上安装的插件列表。
答案 1 :(得分:0)
要从PowerCLI 6.5获取此信息,您可以使用以下命令:
(Get-ESXCLI -VMHost <host>).Storage.Core.Plugin.List()