1.16.2.2. replacement_timeout
replacement_timeout
controls how long the iSCSI layer should wait for a timed-out path/session to reestablish itself before failing any commands on it. The default replacement_timeout
value is 120 seconds.
To adjust
replacement_timeout
, open /etc/iscsi/iscsid.conf
and edit the following line:
node.session.timeo.replacement_timeout = [replacement_timeout]
The
1 queue_if_no_path
option in /etc/multipath.conf
sets iSCSI timers to immediately defer commands to the multipath layer (refer to Section 1.16.2, “iSCSI Settings With dm-multipath
”). This setting prevents I/O errors from propagating to the application; because of this, you can set replacement_timeout
to 15-20 seconds.
By configuring a lower
replacement_timeout
, I/O is quickly sent to a new path and executed (in the event of a NOP-Out timeout) while the iSCSI layer attempts to re-establish the failed path/session. If all paths time out, then the multipath and device mapper layer will internally queue I/O based on the settings in /etc/multipath.conf
instead of /etc/iscsi/iscsid.conf
.
Note that this will not work for iSCSI targets already logged in or discovered once. In this case run
iscsiadm
to update configuration values explicitly.
iscsiadm -m node -T $target_name -p $target_ip:$port -o update -n \ node.session.timeo.replacement_timeout -v $timeout_value
Important
Whether your considerations are failover speed or security, the recommended value for
replacement_timeout
will depend on other factors. These factors include the network, target, and system workload. As such, it is recommended that you thoroughly test any new configurations to replacements_timeout
before applying it to a mission-critical system.
The iSCSI tools do not use the
iscsid.conf
settings for portals that have already been discovered and logged into. To modify the settings of a portal that has already been discovered and set up, run:
iscsiadm -m node -T $target_name -p $target_ip:$port -o update -n \ node.session.timeo.replacement_timeout -v $timeout_value
The above command will modify the portal's record so the next time the iSCSI tools log in, that value will be used.
Note
The value on a running session cannot be modified. For the value to be used, either restart the iSCSI service, or run the
iscsiadm logout
command on that session, then log back in.
To set the value to be the new default for all newly discovered portals, set the value in
iscsid.conf
. Next time the iscsiadm discovery
command is run and portals are found, the new value will be used.