多路径 I-O 测试(徽标)

此测试提供多路径 I/O 测试,用于验证供应商存储解决方案与 Microsoft® 解决方案的兼容性。

注意

   此测试专用于在 x64 处理器体系结构上运行。

 

测试详细信息

   
规范
  • Device.Storage.Hd.Mpio.BasicFunction
平台
  • Windows Server 2016 (x64)
支持的版本
  • Windows 10
  • Windows 10 版本 1511
  • Windows 10 版本 1607
  • Windows 10 版本 1703
  • Windows 10 版本 1709
  • Windows 10 版本 1803
  • Windows 10 版本 1809
  • Windows 10 版本 1903
  • Windows 10 的下一次更新
预计运行时间(以分钟为单位) 180
类别 开发
超时(以分钟为单位) 10800
需要重启 false
需要特殊配置 false
类型 automatic

 

其他文档

此功能区域中的测试可能会有其他文档,包括先决条件、设置和故障排除信息,这些内容可在以下主题中找到:

运行测试

在运行测试之前,请针对要测试的 RAID 存储类型完成测试设置。 有关详细信息,请参阅基于硬件的 RAID(存储阵列)测试概述

此外,此测试需要以下软件和硬件:

  • 使用 Microsoft 设备特定模块 (DSM) 或连接到 Microsoft MPIO 核心体系结构的第三方 DSM 的硬件存储 RAID 阵列

  • DSM 或要测试的硬件存储 RAID 阵列附带的软件组件。

  • 多路径 I/O 设置

故障排除

有关 HLK 测试失败的常规故障排除,请参阅 Windows HLK 测试失败疑难解答

有关常规存储故障排除信息,请参阅排查 Device.Storage 测试问题

此外,此测试具有以下已知问题:

问题

详细信息

可能无法正确针对非 iSCSI 方案配置 MPIO 测试环境。

在非 iSCSI MPIO 测试环境中进行测试时,测试要求将具有至少两个端口的主机总线适配器 (HBA)(或至少两个 HBA,如果 HBA 只有一个端口)连接到同一个 iSCSI 目标。 以下手动步骤可以验证测试环境设置是否正确:

  1. 在测试计算机上,打开设备管理器并单击“显示隐藏的设备”。 你将看到一些磁盘,每个隐藏的磁盘用一个路径表示。

  2. 对于每个 HBA 端口设备节点:

    1. 通过右键单击每个 HBA 端口,然后单击“禁用”来禁用它。

    2. 验证禁用该端口实例后是否删除了隐藏的磁盘。 如果隐藏的磁盘仍然存在,则 HBA 端口未连接到 iSCSI 目标。

安装筛选器时,测试将无法获取 HBA 设备实例。

确保注册表项(INF 文件)中的 DSM 名称与 DSM 本身中指定的名称相同。

当针对光纤通道运行测试时,如果同时通过光纤通道和 iSCSI 连接到测试存储设备,测试将无法获取 iSCSI WMI 光纤通道。

在同一个测试环境中,建议不要在多种总线类型上配置由同一个 DSM 声明的 MPIO LUN。

如果在测试运行链路跳动和同时跳动测试用例后删除路径,测试将失败。

请确保 HBA 正在运行最新驱动程序(已通过 Windows 徽标认证的驱动程序)。 在非 iSCSI 测试环境中进行测试时,多路径 I/O 测试要求 HBA 驱动程序成功通过即插即用驱动程序测试。 如果 HBA 无法通过该测试,请改为使用另一个经过认证的 HBA 型号,然后重新测试。此问题可能会发生,因为 MPIO 路径需要很长时间来恢复。

在 MPIO 启动环境中运行时,测试将失败。

请勿在 MPIO 启动测试环境中运行测试。

测试无法还原 iSCSI 目标上的 iSCSI 会话。

在 MPIO 测试环境中,如果有多个端口(IP 地址)与一个 iSCSI 目标相关,则需要确保测试期间通过 IP 地址连接了至少两个 iSCSI 会话。 尽管多路径 I/O 测试允许用户配置与 iSCSI 目标的多个端口连接,但同时对于所有 iSCSI 相关测试,用户在测试期间只能关联一个 IP 地址。

测试未显示 iSCSI UI

首先,验证所选 LUN 总线类型是否为 iSCSI。 如果不是,多路径 I/O 测试将不会显示 iSCSI UI。 其次,请检查 iscsihctconfig.ini 文件是否位于以下路径:[WLKClient]\JobsWorkingDir\。 当该文件存在时,如果要使用 iSCSI UI 手动输入 iSCSI 配置信息,请将其删除。

测试已失败或崩溃。

如果多路径 I/O 测试无法运行,请确保测试环境是干净的,然后再重新运行测试。 如果控制器最初包含 Windows 徽标工具包 1.5,并且你在安装并使用 Windows 徽标工具包 1.6 之前未重新安装 Windows 以完成存储测试,则可能会发生此问题。如果发生此问题,请重新安装 Windows 并重启测试。

测试失败并显示 IO 操作错误

如果多路径 I/O 测试失败,并且日志文件包含 IO 操作错误,请验证 LUN 是否已联机并初始化为原始状态,然后再运行测试。 如果 LUN 已联机并初始化,请尝试从部分路径失败的 LUN 复制或读取文件。

 

要打开支持事件,请按照以下步骤获取对客户支持服务有用的信息:

  1. 请提供你的提交 .cpk 包。 此 .cpk 包不仅应包含多路径 I/O 测试日志,还应包含 SCSI 合规性测试和 ALUA MPIO 测试的日志。

  2. 请捕获测试环境的屏幕截图。 如果操作系统为 Windows 2008 R2 或更高版本,请从控制面板捕获 MPIO“配置快照”屏幕。 要查看该屏幕,请单击“开始”>“控制面板”>“MPIO”>“配置快照”。

  3. 如果发生崩溃,请创建转储文件。 另请分步重新运行以下测试:

    1. 将测试二进制文件和文件复制到 Windows HLK 测试计算机,其中包括:mpiotest.exe、mpioinstallfiltr.exe、iscsiui.exe、devcon.exe、pnpfiltr.sys、pnpdtest.exe 和 mpiotest_script_fvt.txt 文件。

    2. 使用管理员特权打开命令提示符窗口。

    3. 运行下列命令之一:

      • 如果总线类型为 iSCSI,则运行 iscsui.exe 工具并输入信息以创建 iscsihctconfig.ini 文件。

      • 如果总线类型为非 iSCSI,则运行以下命令:mpioinstallfiltr -d <DSM 设备实例路径>(例如 ROOT\MPIO\0001) -i,然后重启测试计算机。 如果此命令失败,则从命令控制台将所有日志文件复制到记事本。

    4. 运行以下命令进行测试。 即使测试失败,仍可以从命令控制台将所有日志复制到记事本。

      • Mpiotest.exe -d <DSM 设备实例路径>(例如 ROOT\MPIO\0001) -s [ScriptName] -logo -isiSCSI [T/F]。
    5. 如果总线类型为非 iSCSI,则从命令提示符运行以下命令以卸载筛选器驱动程序:mpioinstallfiltr -d <DSM 设备实例路径>(例如 ROOT\MPIO\0001) -c,然后重启测试计算机。

更多信息

此测试仅适用于设备特定模块 (DSM)(Microsoft DSM 或第三方 DSM)。

此测试包括以下基本测试断言,它们合并为四个测试用例:

  • 故障转移:当某些路径断开,而不是全部断开时,数据传输不会中断。

  • 故障恢复:某些路径从故障转移中还原后,数据传输将正常工作。

  • 链接跳动:对于 MPIO 环境,除一个路径以外的所有路径都将断开。 如果该路径断开并在 15 秒内恢复,则数据传输能够继续而不会出错。

  • 同时故障转移和故障恢复(或称为“同时跳动”):当某些路径发生故障转移并且其他路径同时发生故障恢复时,数据传输不会中断。

  • 负载均衡策略:可以设置不同的策略,并且数据传输可以使用该策略正常工作。 对于轮循机制负载策略和带子集的轮循机制负载策略,测试会检查效率是否下降。

测试组件包括独立测试应用程序、错误注入筛选器驱动程序、测试用例配置文件、iSCSI 配置文件(如果路径是通过 iSCSI 会话创建的),以及设备测试管理器 (DTM)。

企业存储解决方案的客户很大程度上依赖于其组件的高可用性。 在存储中,高可用性通常是通过冗余实现的。 多路径 I/O (MPIO) 是企业存储解决方案结构层的这样一种实现。 Microsoft 通过 Windows Vista 时间范围内 Windows Advanced Server 操作系统随附的多路径驱动程序 (mpio.sys) 和设备特定模块 (msdsm.sys) 为多路径 I/O 提供支持。

此测试提供多路径 I/O 测试,用于验证供应商存储解决方案与 Microsoft 解决方案的兼容性。 此测试侧重于以下几个方面:

  1. 路径故障转移和恢复不应影响数据传输质量。 设置 MPIO 环境的其中一个目的是提高数据传输的可靠性。 此测试模拟现实世界中会出现并中断某个路径的几个简单场景,然后检查环境能否正常传输数据。

  2. 在 MPIO 环境中,数据传输效率应有所提高,或至少不会降低。

  3. 存储设备应在其声明支持的所有策略下正常运行。

注意

   对于支持供应商策略(策略值为 7)的设备特定模块 (DSM),请在运行此测试之前将供应商的策略设置为当前策略。

 

运行此测试

  1. Windows Hardware Lab Kit (Windows HLK) 会启动独立测试应用程序,该应用程序将检索要运行的测试用例。

  2. Windows HLK 会检索 MPIO 测试环境信息以进行进一步的测试。

  3. 如果路径不通过 iSCSI,则此测试将加载相关 HBA 实例的筛选器驱动程序,以进行进一步的测试。

  4. 如果路径通过 iSCSI,请使用以下某种方法提供 iSCSI 配置信息:

    • 在测试客户端上的弹出窗口中输入配置数据,该客户端将在 [WLK PATH]\JobsWorkingDir\Tasks\[WTTJOBNAME]\ 下创建 iscsihctconfig.ini 文件。 有关详细信息,请参阅 iSCSI HBA 启动测试(徽标)

      注意

         如果测试环境包含多个目标,请选择输入与一个目标相关的信息,包括 IQN、门户 IP 和端口号。 对于 IP 地址,如果有多个 IP 地址,请输入用于连接该目标的 IP 地址。 请注意,对于 MPIO 测试,无需输入 HBA PnP ID。

      注意

         如果 iSCSI 环境支持相互 CHAP,请选择“相互”单选框并选中“支持相互 CHAP”复选框。

       

    • 输入的 iSCSI 配置信息将存储在 iscsihctconfig.ini 的文件中。 为了帮助用户节省时间,我们将此配置文件的副本放在测试计算机上的 [WLKClient]\JobsWorkingDir\ 下。 然后,用户可以在同一个测试客户端上针对同一个 iSCSI 存储目标重新运行测试,而无需再次输入 iSCSI 配置信息。 此外,在测试之前,用户可以选择手动创建 iscsihctconfig.ini 文件,并将其放在包含配置数据的测试计算机上的 [WLKClient] \JobsWorkingDir\ 下。 使用以下格式:

      [Targets] DiskTarget=Target [Target] TargetName=iqn.2001-05.com.equallogic:0-8a0906-7e2dd0401-fd1d03f67f74b96b-10-2411a0920-0 PortalPort=3260 PortalIPAddress=10.10.20.80 CHAPType=None
      
  5. 设置负载平衡策略,该策略声明支持,模拟故障转移和故障回复方案,以及执行测试。 对于非 iSCSI 测试环境,请模拟链路跳动和同时跳动方案。

  6. 设置非 ALUA 存储和 ALUA 存储的轮循机制策略,以启用性能检查。

  7. 测试工具将日志记录到 WTTLogger。

命令语法

命令 说明

mpiotest.exe -d "[WDKDeviceID]" -s [ScriptName] -logo -isiSCSI [isiSCSI]

运行测试。

注意

   有关此测试二进制文件的命令行帮助,请键入 /h。

 

文件列表

文件 位置

Devcon.exe

<[testbinroot]>\idw\

EDT_Disable_Support.vbs

<[testbinroot]>\nttest\DriversTest\storage\wdk\mpiotest\

EDT_Enable_Support.vbs

<[testbinroot]>nttest\DriversTest\storage\wdk\mpiotest\

Iscsiui.exe

<[testbinroot]>\nttest\DriversTest\storage\wdk\mpiotest\

Mpioinstallfiltr.exe

<[testbinroot]>\nttest\DriversTest\storage\wdk\mpiotest\

Mpiotest.exe

<[testbinroot]>\nttest\nttest\DriversTest\storage\wdk\

Mpiotest_script_fvt.txt

<[testbinroot]>\nttest\DriversTest\storage\wdk\mpiotest\

DevFund_PnPDTest_WLK.dll

<[testbinroot]>\

Utility_Enable_Disable_DriverVerifier.dll

<[testbinroot]>\

Utility_DeviceStatusCheck.wsc

<[testbinroot]>\

Utility_DisableEDTSupport.wsc

<[testbinroot]>\

Utility_EmptyTest.wsc

<[testbinroot]>\

Utility_WdfRelatedVerification.wsc

<[testbinroot]>\

 

参数

参数名称 参数说明
LLU_NetAccessOnly 用于访问测试文件共享的用户帐户。
LLU_LclAdminUsr 用于运行测试的用户帐户。
ScriptName 完整测试脚本
WDKDeviceID 要测试的设备的实例路径
isiSCSI 为存储总线类型 iSCSI (T/F)