It may be caused by the kernel specification of the Linux OS. Please check the kernel version you are using and if it corresponds to the version described in [Cause] below, please change the timeout value of iSCSI initiator in the procedure described in [How to change the setting] below.
Cause
In iSCSI + DM-Multipath environment, the default value (5) of "fast_io_fail_tmo" parameter in /etc/multipath.conf is set to the recovery_tmo variable held by the kernel.
This recovery_tmo variable is the same as used for setting replacement_timeout with iscsiadm, but it has been modified from the specific kernel, not overwriting the value by iSCSI side.
For this reason, even if you change the value with iscsiadm, the default setting on the multipath side becomes effective so, as a result, the value can not be changed.
The kernel that has been modified so that the value is not overwritten by the iSCSI side operation is as follows.
RHEL7.1(3.10.0-229.20.1.el7)
RHEL7.2(3.10.0-327.el7)
How to change the settings
Permanent settings
Put the configuration of either of the followings in "/etc/multipath.conf".
1. fast_io_fail_tmo 120 (This value is reflected to recovery_tmo)
- Put "fast_io_fail_tmo 120" in defaults section of "/etc/multipath.conf".
- Restart multipathd.
2. fast_io_fail_tmo off (The valur ofreplacement_timeout(120) is reflected to recovery_tmo)
- Put "fast_io_fail_tmo off" in defaults section of "/etc/multipath.conf".
- Restart multipathd.
- Change "replacement_timeout".
- Logout / login iscsi session.
* Restarting multipathd is safe even during I/O processing.
Provisional settings
Change "recovery_tmo" of the corresponding sysfs.
ex.
# echo "120" > /sys/class/iscsi_session/session1/recovery_tmo
# echo "120" > /sys/class/iscsi_session/session2/recovery_tmo