Installation guide
Chapter 21. Online Storage Management
146
21.17. Controlling the SCSI Command Timer and Device
Status
The Linux SCSI layer sets a timer on each command. When this timer expires, the SCSI layer will
quiesce the host bus adapter (HBA) and wait for all outstanding commands to either time out or
complete. Afterwards, the SCSI layer will activate the driver's error handler.
When the error handler is triggered, it attempts the following operations in order (until one successfully
executes):
1. Abort the command.
2. Reset the device.
3. Reset the bus.
4. Reset the host.
If all of these operations fail, the device will be set to the offline state. When this occurs, all I/O to
that device will be failed, until the problem is corrected and the user sets the device to running.
The process is different, however, if a device uses the fibre channel protocol and the rport is
blocked. In such cases, the drivers wait for several seconds for the rport to become online again
before activating the error handler. This prevents devices from becoming offline due to temporary
transport problems.
Device States
To display the state of a device, use:
cat /sys/block/device-name/device/state
To set a device to running state, use:
echo running > /sys/block/device-name/device/state
Command Timer
To control the command timer, you can write to /sys/block/device-name/device/timeout. To
do so, run:
echo value /sys/block/device-name/device/timeout
Here, value is the timeout value (in seconds) you want to implement.
21.18. Troubleshooting
This section provides solution to common problems users experience during online storage
reconfiguration.
Logical unit removal status is not reflected on the host.
When a logical unit is deleted on a configured filer, the change is not reflected on the host. In such
cases, lvm commands will hang indefinitely when dm-multipath is used, as the logical unit has
now become stale.
To work around this, perform the following procedure: