自定义 iSCSI 设置 - AWS Storage Gateway

自定义 iSCSI 设置

我们强烈建议您在设置启动程序后,自定义 iSCSI 设置以防止启动程序从目标断开。

通过增大下列步骤中所示的 iSCSI 超时值,您可以提高应用程序对需要较长时间的写入操作以及网络中断等其他瞬态问题的处理能力。

注意

修改注册表前,您应该制作一份该注册表的备份副本。有关制作备份副本的信息以及使用注册表时应遵循的其他最佳做法,请参阅《Microsoft TechNet 库》中的注册表最佳做法

自定义您的 Windows iSCSI 设置

对于磁带网关设置,使用 Microsoft iSCSI 启动程序连接 VTL 设备是一个两步过程:

  1. 将您的磁带网关设备连接到 Windows 客户端。

  2. 如果要使用备份应用程序,则将该应用程序配置为使用这些设备。

本入门示例设置提供对这两个步骤的说明。其中使用 Symantec NetBackup 备份应用程序。有关更多信息,请参阅连接 VTL 设备配置 NetBackup 存储设备

如需自定义您的 Windows iSCSI 设置
  1. 提高请求排队的最长时间。

    1. 启动注册表编辑器 (Regedit.exe)。

    2. 导航到设备类别的全局唯一标识符 (GUID) 密钥,其中包含 iSCSI 控制器设置,如下所示。

      警告

      确保处于 CurrentControlSet 子项内,而非 ControlSet001ControlSet002 等其他控制集内。

      HKEY_Local_Machine\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}
    3. 查找 Microsoft iSCSI 启动程序的子项,在下面显示为 [<实例编号]

      该项由四位数字表示,如 0000

      HKEY_Local_Machine\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\[<Instance Number]

      根据计算机上安装的内容,Microsoft iSCSI 启动程序可能不是子项 0000。可以通过验证字符串 DriverDesc 是否具有 Microsoft iSCSI Initiator 值来确保选择了正确的子项。

    4. 要显示 iSCSI 设置,请选择 Parameters (参数) 子项。

    5. 打开 MaxRequestHoldTime DWORD(32 位)的上下文(右键单击)菜单,选择修改,然后将该值改为 600

      MaxRequestHoldTime 指定在向上层通知 Device Removal 事件之前,Microsoft iSCSI 启动程序应保持并重试未完成的命令的秒数。该值表示 600 秒的保持时间。

  2. 通过修改以下参数,可以提高可在 iSCSI 数据包中发送的最大数据量:

    • FirstBurstLength 控制可在自发的写入请求中传输的最大数据量。将此值设置为 262144 或 Windows 操作系统的默认值,以较高者为准。

    • MaxBurstLengthFirstBurstLength 类似,但它设置的是可在请求的写入序列中传输的最大数据量。将此值设置为 1048576 或 Windows 操作系统的默认值,以较高者为准。

    • MaxRecvDataSegmentLength 控制与单个协议数据单元 (PDU) 关联的最大数据段大小。将此值设置为 262144 或 Windows 操作系统的默认值,以较高者为准。

    注意

    不同的备份软件可使用不同的 iSCSI 设置进行优化来达到最佳效果。要确认如何设置这些参数的值才能提供最佳性能,请参阅备份软件的文档。

  3. 增大磁盘超时值,如下所示:

    1. 如果您尚未启动注册表编辑器 (Regedit.exe),请将其启动。

    2. 导航到 CurrentControlSetServices (服务) 子项中的 Disk (磁盘) 子项,如下所示。

      HKEY_Local_Machine\SYSTEM\CurrentControlSet\Services\Disk
    3. 打开 TimeOutValue DWORD(32 位)值的上下文(右键单击)菜单,选择修改,然后将该值改为 600

      TimeOutValue 指定 iSCSI 启动程序在尝试通过丢弃并重新建立连接来恢复会话之前,将等待目标进行响应的秒数。该值表示 600 秒的超时期间。

  4. 要确保新配置的值生效,请重新启动系统。

    重新启动之前,必须确保刷新了对卷进行的所有写入操作的结果。要这样做,请在重启前将任何映射的存储卷磁盘脱机。

自定义您的 Linux iSCSI 设置

为网关设置启动程序后,我们强烈建议您自定义 iSCSI 设置以防止启动程序从目标断开。通过增大下面所示的 iSCSI 超时值,您可以提高应用程序对需要较长时间的写入操作以及网络中断等其他瞬态问题的处理能力。

注意

命令可能与 Linux 的其他命令类型略有不同。以下示例基于 Red Hat Linux。

如需自定义您的 Linux iSCSI 设置
  1. 提高请求排队的最长时间。

    1. 打开 /etc/iscsi/iscsid.conf 文件,然后找到以下各行。

      node.session.timeo.replacement_timeout = [replacement_timeout_value] node.conn[0].timeo.noop_out_interval = [noop_out_interval_value] node.conn[0].timeo.noop_out_timeout = [noop_out_timeout_value]
    2. [replacement_timeout_value] 值设为 600

      [noop_out_interval_value] 值设为 60

      [noop_out_timeout_value] 值设为 600

      这三种值的单位均为秒。

      注意

      必须在发现网关之前进行 iscsid.conf 设置。如果已发现网关和/或已登录到目标,则可使用以下命令从发现数据库中删除该项。然后可以重新发现或登录,从而使新设置生效。

      iscsiadm -m discoverydb -t sendtargets -p [GATEWAY_IP]:3260 -o delete
  2. 提高可在每个响应中传输的最大数据量。

    1. 打开 /etc/iscsi/iscsid.conf 文件,然后找到以下各行。

      node.session.iscsi.FirstBurstLength = [replacement_first_burst_length_value] node.session.iscsi.MaxBurstLength = [replacement_max_burst_length_value] node.conn[0].iscsi.MaxRecvDataSegmentLength = [replacement_segment_length_value]
    2. 我们建议使用以下值,以实现更佳性能。您的备份软件可以使用不同的值进行优化,因此请参阅备份软件文档了解最佳效果。

      [replacement_first_burst_length_value] 值设置为 262144 或 Linux 操作系统默认值,以较高者为准。

      [replacement_max_burst_length_value] 值设置为 1048576 或 Linux 操作系统默认值,以较高者为准。

      [replacement_segment_length_value] 值设置为 262144 或 Linux 操作系统默认值,以较高者为准。

      注意

      不同的备份软件可使用不同的 iSCSI 设置进行优化来达到最佳效果。要确认如何设置这些参数的值才能提供最佳性能,请参阅备份软件的文档。

  3. 重启系统以确保新配置的值生效。

    重新启动之前,确保刷新了对卷进行的所有写入操作的结果。为此,请在重新启动之前卸载磁带。