https://onitroad.com 更多教程

会话替换超时

一旦 NOP-Out 超时到期,正在运行的命令将立即失败。
但是,如果 SCSI 错误处理程序处于活动状态,则运行命令不会立即失败。
相反,当达到 NOP-Out 请求超时时,iSCSI 层将在运行命令失败之前等待中断的会话或者连接重新建立。
等待时间由replacement_timeout 设置控制。

在 CentOS/RHEL 7 中,replacement_timeout 默认设置为 120 秒。
它控制 iSCSI 层在将挂起的 SCSI 命令失败到更高级别(如多路径)或者应用程序(如果未使用多路径)失败之前等待的时间。
当使用多路径时,最好降低replacement_timeout 值。
通过将 replacement_timeout 从 15 秒降低到 20 秒,在错误情况下,待处理的 1/0 命令将立即定向到新的物理路径,同时 iSCSI 层进行会话恢复。

对 replacement_timeout 参数所做的更改不会影响已发现或者登录的 iSCSI 目标。
要在这些目标上应用新的 replacement_timeout 设置,请对 iscsiadm 命令使用更新运算符。

# iscsiadm -m node -T TARGET_NAME -p PORTAL_ADDRESS -o update -n node.session.timeo.replacernent_timeout -v TIMEOUT_ VALUE.

要为将来发现的目标自定义replacement_timeout 值,请编辑/etc/iscsi/iscsid.conf 中的以下条目,然后重新启动iscsi 服务。

node.session.timeo.replacement_timeout = [timeout value]

注意:replacement_timeout 的最佳值取决于多种因素,例如网络性能、目标规格和系统工作负载。
因此,对 replacement_timeout 的所有更改都应在应用于关键系统之前进行彻底测试。

在 Linux 中管理 iSCSI 超时设置

NOP-Out 间隔和超时

iSCSI 启动器和目标之间的通信在 iSCSI 协议数据单元 (PDU) 中发送。
请求 PDU 由发起方发送,而响应 PDU 由目标发送。

iSCSI POU 标头中的操作码字段指示 iSCSI POU 类型。
有两类操作码:启动器操作码和目标操作码。
发起者在向目标的请求 PDU 中使用发起者操作码,而目标在对发起者的响应 PDU 中使用目标操作码。

发起方操作码之一是 NOP-Out。
它的目标操作码对应物是 NOP-In。
NOPOut 操作码可以由发起者作为“ping”请求发送到目标,以验证连接或者会话是否处于活动状态且可操作,以及其组件是否可操作。
在从发起方接收到 NOP-Out POU 后,目标以 NOP-In POU 响应。
如果发起方在一定时间内没有收到 NOP-In 响应,则运行的命令将失败并重新排队等待稍后重试。

默认情况下,在 CentOS/RHEL 7 中,发起者每五秒发送一次 NOP-Out 请求。
一旦发送,NOP-Out 请求将在五秒内超时。
根据 iSCSI 实施或者 SAN 的性能和利用率,可能需要调整这些超时设置。

在 /etc/iscsi/iscsid.conf 中,可以使用以下条目指定 NOP-Out 请求间隔:

node.conn[0].timeo.noop_out_interval = [interval value]

可以通过编辑同一文件中的以下条目来自定义 NOP-Out 请求超时。

node.conn[0].timeo.noop_out_timeout = [timeout value]

一旦更改为 /etc/iscsi/iscsid。
配置完成后,必须重新启动 iSCSI 服务才能使更改生效。

# systemctl restart iscsi

NOP-Out 间隔和超时设置更改将仅应用于未来的目标交互。
已发现或者登录的 iSCSI 目标仍将保留旧设置。
要使这些目标上的新设置生效,请使用 iscsiadm 命令的更新运算符。

# iscsiadm -m node -T TARGET_NAME -p PORTAL_ADDRESS -o update -n 
node.conn[0).timeo.noop_out_interval -v INTERVAL_VALUE.
日期:2020-09-17 00:14:45 来源:oir作者:oir