For a Fibre Channel device, if a driver implements the Transport dev_loss_tmo callback, access attempts to a device through a link will be blocked when a transport problem is detected. To verify if a device is blocked, run the following command:

$ cat /sys/block/device/device/state

This command will return blocked if the device is blocked. If the device is operating normally, this command will return running.

Determining The State of a Remote Port

1. To determine the state of a remote port, run the following command:
$ cat /sys/class/fc_remote_port/rport-H:B:R/port_state
2. This command will return blocked when the remote port (along with devices accessed through it) are blocked. If the remote port is operating normally, the command will return Online.
3. If the problem is not resolved within dev_loss_tmo seconds, the rport and devices will be unblocked and all I/O running on that device (along with any new I/O sent to that device) will be failed.

Changing dev_loss_tmo

To change the dev_loss_tmo value, echo in the desired value to the file. For example, to set dev_loss_tmo to 30 seconds, run:

$ echo 30 > /sys/class/fc_remote_port/rport-H:B:R/dev_loss_tmo

When a link loss exceeds dev_loss_tmo , the scsi_device and sdN devices are removed. Typically, the Fibre Channel class will leave the device as is

 i.e. /dev/sdx will remain /dev/sdx.

This is because the target binding is saved by the Fibre Channel driver so when the target port returns, the SCSI addresses are recreated faithfully. However, this cannot be guaranteed; the sdx will be restored only if no additional change on in-storage box configuration of LUNs is made.

Comments powered by CComment