[dm-devel] Rdac checker in device unmap/remove situation

Yanqing_Liu at Dell.com Yanqing_Liu at Dell.com
Tue Oct 7 19:23:28 UTC 2008


In a test with device unmapping/deletion for rdac device handler, a
problems comes up with rdac checker improperly marking all device path
as active state after device is unmapped from the host.

If a device is unmapped from a storage array to a host,  peripheral
qualifier files in the standard inquiry indicates no connected logical
unit, although command can go through with success status.

TUR command would fail with sense code 0x59100, sense key: illegal
request, additional sense: logical unit not supported.

VPD inquiry such as volume access control inquiry can succeed also, but
it has a peripheral qualifier field to indicate the device is not there.


RDAC checker uses VPD page 0xC9, however it only checks the return
status, which is good even after device is unmapped. That results in
RDAC checker restoring the paths to good state even after device is
unmapped.

So, after a device is unmapped,  >> mode select queue to fail over to
the other controller >> mode select command failed with 0x59100 >> rdac
checker restored the path>> mode select tried again.

All the paths for the unmapped device are shown as "active" instead of
"failed".

We should add a simple check for peripheral qualifier in 0xC9 inquiry
after inquiry result comes back, to determine is the logical unit is not
connected anymore. If the device is either unmapped or deleted, we can
trigger sysfs to remove the device. Or at least, we can mark all paths
as failed or offlined. The changes would be like

If (peripheral qualifier != device not connected && inquiry succeeds)
   report path up
else
   report path down
end if


Thanks,
Yanqing

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20081007/0c0eaa4f/attachment.htm>


More information about the dm-devel mailing list