如何使用PowerCLI确定ESX主机上是否安装了EMC PowerPath

时间:2012-04-13 17:04:09

标签: powershell vmware powercli esx

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对象有某种等效的方法,可能在satpnmp,但到目前为止我找不到任何东西。

2 个答案:

答案 0 :(得分:0)

正如所建议的,我会回答我自己的问题:

答案是:$esxcli.corestorage.plugin.list()将返回主机上安装的插件列表。

答案 1 :(得分:0)

要从PowerCLI 6.5获取此信息,您可以使用以下命令:

(Get-ESXCLI -VMHost <host>).Storage.Core.Plugin.List()