跳转到主内容

NetApp_Insight_2020.png 

使用 Microsoft iSCSI 软件启动程序时主机端 SCSI 超时

Views:
7
Visibility:
Public
Votes:
0
Category:
data-ontap-8
Specialty:
san
Last Updated:

可不使用  

适用于

  • SAN 
  • FlexPod 
  • Data ONTAP 8 7-模式 
  • Data ONTAP 7 及更早版本 

解答

ERROR_IO_DEVICE

  • 本文讨论使用 iSCSI 时的一般主机端 SCSI 超时问题。
  • 总之,如果存储系统负载过重、则存储系统在处理传入请求时可能会出现较长的延迟。
  • 然后触发主机端 SCSI 超时处理机制。
  • 偶尔超时并不一定是一个主要问题,因为这些请求将在应用程序收到 IO 错误之前重新提交几次。但重复的超时可能会导致应用程序错误。根据可配置的 SCSI 超时值、应用程序可能会在几分钟后收到 IO 错误。
  • 在 Windows 上,此错误通常是ERROR_IO_DEVICE(由于 I/O 设备错误而无法执行请求)。
  • 如果应用程序记录了此类消息,则可以在应用程序的日志中查看此信息。
  • 使用 Microsoft iSCSI 软件启动程序时、由于主机端 SCSI 超时、系统事件日志中可能会出现类似以下内容的重复消息:

iScsiPrt Information None 34 N/A SOUTHPOINT
A connection to the target was lost, but the Initiator successfully reconnected to the target. Dump data contains the target name.
iScsiPrt Error None 39 N/A SOUTHPOINT
The Initiator sent a task management command to reset the target. The target name is given in the dump data.
iScsiPrt Error None 9 N/A SOUTHPOINT
Target did not respond in time for a SCSI request. The CDB is given in the dump data.

由于 /etc/messages主机端 SCSI 超时,存储系统文件中可能会出现类似以下内容的重复消息:

Error message: [iscsi.notice:notice]: ISCSI: iswta, LUN Reset (from initiator iqn.1991-05.com.microsoft:exch), aborting all SCSI commands on lun 0
Error message: [iscsi.notice:notice]: ISCSI: iswta, New session from initiator iqn.1991-05.com.microsoft:exch at IP addr 10.0.0.1

要缓解主机端 SCSI 超时问题、如上所述,请使用 Microsoft iSCSI 启动程序与 NetApp 存储设备进行对比。

注:如果Disk Removal在 Windows 系统事件日志中发现事件、则可能会发生 TCP 连接丢失的情况、知识库文章中将介绍这种情况、这些信息可以控制 MS iSCSI 如何在不对应用程序造成损害的情况下生存丢失的 TCP 连接

 

摘要

  • 增加两个注册表值中的一个、以提高主机端对 SCSI 请求较长延迟的容差:
    • 磁盘类驱动程序TimeOutValue
      的 - 或 -
    • 特定于 Microsoft iSCSI 启动程序SrbTimeoutDelta
  • NetApp 建议增加SrbTimeoutDelta。先将注册表值增加到 60 秒(秒)、然后监控主机 / 应用程序行为以及存储系统性能。如果 60 不足以满足工作负载的要求、请逐渐将其增加到 120 、 180 等,直到问题得到解决。

可配置的参数

如果 Microsoft iSCSI Software Initiator 正在 Windows 2000 或 Windows Server 2003 主机中使用,则有两个可配置的注册表值会影响 SCSI 超时处理:

  1. 系统范围磁盘类驱动程序 TimeOutValue
    • 此注册表值TimeOutValue位于注册表项下面:
      HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDisk
      默认值为 10 (秒)。
  2. 特定于 Microsoft iSCSI 启动程序 SrbTimeoutDelta
    • 此注册表值SrbTimeoutDelta位于注册表项下面:
      HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E97B-E325-11CE-BFC1-08002BE10318}0001Parameters
    • 对于 Windows 2008 、 SrbTimeoutDelta HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E97B-E325-11CE-BFC1-08002BE10318}0005Parameters.
      该数字为 0001 或其他迭代(即 0002 、 0003 、 0004 等)。

根据主机中的 SCSI 控制器数量,可能会有不同的数字。其默认值为 15 (秒)。使用 Microsoft iSCSI 启动程序时、SrbTimeoutDelta TimeOutValue在生成 SCSI 请求时、会将其添加到磁盘类驱动程序中。因此,默认 SCSI 超时值现在为 25 (秒)。

应修改哪些内容?

  • 如果需要更改超时值,请修改上述任一注册表值。无需同时修改这两个文件。
  • 如果TimeOutValue 修改了磁盘类驱动程序、它将影响对主机中磁盘设备的所有 SCSI 请求。
  • 如果修改,SrbTimeoutDelta则只有那些通过 Microsoft iSCSI 启动程序连接的磁盘才会受到影响。
  • 因此,可以根据要求对其进行修改。建议进行修改SrbTimeoutDelta,以便仅影响通过 Microsoft iSCSI 启动程序连接的磁盘。
  • 但是,如果主机中有多个 SCSI 启动程序 / HBA 并且需要更改所有这些启动程序 / HBA 的 SCSI 超时处理方式,请修改。 TimeOutValue.

:修改后SrbTimeoutDelta、如果从主机中删除 Microsoft iSCSI 启动程序并再次安装,则其值将重置为默认值。

如何修改?

  • 如果SrbTimeoutDelta 要修改特定于 Microsoft iSCSI 启动程序,请执行以下步骤:
    1. 使用打开 Windows 注册表regedit
    2. SrbTimeoutDelta 注册表项下找到:
      HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E97B-E325-11CE-BFC1-08002BE10318}\Parameters
    3. 双击并更改为下面推荐的值。
  • 如果TimeoutOutValue 要修改磁盘类驱动程序,请执行以下步骤:
    1. 使用打开 Windows 注册表regedit
    2. 在注册表项下添加或修改:
      HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDisk
      • 如果TimeOutValue 已经存在,请双击并将其更改为下面推荐的值。
      • 如果TimeOutValue 不存在,请选择编辑 > 新建 > 双字节值、输入名称为TimeOutValue、然后双击并将其更改为下面推荐的值。

注:请记住重新引导主机以使新值生效。

值得推荐的价值是什么?

  • 建议保留其默认值,除非您清楚地看到在使用 iSCSI 时发生 KB 主机端 SCSI 超时以及这一超时中描述的 SCSI 超时问题。
  • 较大的值将提高主机端的容错能力、以延长 SCSI 请求的延迟时间。
  • 建议首先将注册表值增加到 60 秒、然后监控应用程序和主机行为。
  • 此外,还可以使用 KB 主机端 SCSI 超时中介绍的其他方法来监控控制器性能。
  • 如果 60 不足以满足工作负载要求、请将其增加到 120 、 180 等

其他信息

不适用