如何从 Windows 上的 iSCSI 详细信息中获取物理分区名称?

如何从 Windows 上的 iSCSI 详细信息中获取物理分区名称?

我有一个软件需要以样式显示分区的名称\Device\Harddisk2\Partition1,例如程序运行对象。我想从分区底层的 iSCSI 连接的详细信息中获取此分区名称。问题是磁盘顺序不固定 - 根据连接的设备以​​及初始化的顺序,它可以移动。

因此假设我有门户名称(iSCSI 目标的 DNS)、目标 IQN 等。我想以某种方式自动发现系统中哪些卷与其相关。

我可以编写一些接近所需信息的 PowerShell WMI 查询:

PS> get-wmiobject -class Win32_DiskPartition
NumberOfBlocks   : 204800
BootPartition    : True
Name             : Disk #0, Partition #0
PrimaryPartition : True
Size             : 104857600
Index            : 0
...

Name这里开始,我思考我可以通过在分区号上加 1 来伪造相应的名称:\Device\Harddisk0\Partition1——Partition0似乎是到整个磁盘的假分区映射。

但是上面没有足够的信息来映射到底层物理设备,除非我根据精确的尺寸匹配进行猜测。

我可以获得一些有关 SCSI 设备的信息,但它对于连接设备没有帮助(iSCSI 目标是 Nexenta/Solaris COMSTAR):

PS> get-wmiobject -class Win32_SCSIControllerDevice
__GENUS             : 2
__CLASS             : Win32_SCSIControllerDevice
...
Antecedent          : \\COBRA\root\cimv2:Win32_SCSIController.DeviceID="ROOT\\ISCSIPRT\\0000"
Dependent           : \\COBRA\root\cimv2:Win32_PnPEntity.DeviceID="SCSI\\DISK&VEN_NEXENTA&PROD_COMSTAR...

类似地,我可以运行如下查询:

PS> get-wmiobject -namespace ROOT\WMI -class MSiSCSIInitiator_TargetClass
PS> get-wmiobject -namespace ROOT\WMI -class MSiSCSIInitiator_PersistentDevices

这些家伙分别返回与我的 iSCSI 目标名称和 GUID 卷名相关的信息(类似于的卷名\\?\Volume{guid-goes-here}),但 GUID 卷名对我来说没有用,并且目标名称和我可以加入的卷之间似乎没有可靠的对应关系。

我根本找不到从 IQN(例如iqn.1992-01.com.example:storage:diskarrays-sn-a8675309)到该目标映射的物理分区的简单方法。

我手动操作的方式是什么?我启动磁盘管理,查找正确大小的分区,验证其驱动程序是否为 NEXENTA COMSTAR,然后查看磁盘编号。但如果我有多个大小完全相同的 iSCSI 卷,那么即使是这种方法也不可靠。

有什么建议么?

答案1

一种可能性:如果您可以找到 GUID 卷名(您的问题没有明确说明这一点)并且该卷分配了驱动器号,则 Win32_Volume 会将 GUID 卷名链接到驱动器号,而 Win32_LogicalDiskToPartition 会将驱动器号链接到磁盘号和分区号。

但是,MSiSCSIInitiator_SessionClass这看起来是一个更好的选择。这个命令对我有用:

PS C:\Windows\system32> (get-wmiobject -namespace ROOT\WMI -class MSiSCSIInitiator_SessionClass -filter "TargetName='iqn.2001-05.com.equallogic:0-8a0906-d27481f06-93a000d015c4ed69-oslo-san-1'").Devices | Select -property LegacyName

LegacyName
----------
\\.\PhysicalDrive2

如果可能有多个分区,Win32_DiskDriveToDiskPartition则可以使用该类来列出它们。

相关内容