对于 Windows 机器,我想以编程方式确定它的哪些驱动器实际上是 iSCSI 或光纤通道 (FC) 卷,以及它们从哪个存储 (SAN) 设备公开,即实际存储数据的位置。例如,C:\
驱动器可能是My_SAN_Storage_Array (https://mysan.company.org)
通过光纤通道暴露的卷。
理想情况下,我想使用 WMI 来执行此操作,以便也能够为远程主机获取这些数据。我不想使用需要单独部署在每台机器上的特定于 SAN 供应商的工具。
我查看了一堆 WMI 类,但没有发现任何用处,例如Win32_LogicalDisk
不包含任何有用的信息——所有驱动器都被视为本地驱动器;网络 iSCSI/FC 驱动器和本地驱动器之间没有区别。diskpart 也没有被证明有帮助。
至少,我想获得某种驱动器 ID(或 SAN IQN/WWN),我可以使用它来确定底层 SAN 设备。通过查询实际的 SAN 设备,我可以确定哪些 FC/iSCSI 卷 (LUN) 向哪些主机公开,但没有关于 LUN 到 Windows 所看到的实际单个驱动器的映射的信息。例如,我可以确定 LUN LogicalUnitA
(如 SAN 设备所见)已分配给WindowsHostA
,但我不知道如何确定这LogicalUnitA
是C:\
Windows 所见的驱动器。