lost iscsi devices not recognised by zfs

Gregor Moeller freebsd-ml at bommel.de
Sun Sep 12 21:23:01 UTC 2010


Hi folks,

given the following setup:

iscsi initiator: 2.2.4.2, 8.1-STABLE
(tried also 8.1-PRERELEASE with initiator 2.1.0)

iscsi target: 8.1-STABLE as of 2010-09-12

ZFS pool on the initiator box:

         NAME        STATE     READ WRITE CKSUM
         tank        ONLINE       0     0     0
           mirror    ONLINE       0     0     0
             ada1    ONLINE       0     0     0
             da0     ONLINE       0     0     0
           mirror    ONLINE       0     0     0
             ada2    ONLINE       0     0     0
             da1     ONLINE       0     0     0
           mirror    ONLINE       0     0     0
             ada3    ONLINE       0     0     0
             da2     ONLINE       0     0     0

ada1, ada2, ada3: local disks
da0, da1, da2: iscsi disks

A loss of all iscsi devices shouldn't render the pool
unusable due to the mirroring.

Problem:

When I stop the iscsi target service to simulate an
error on the target box (reboot etc.), the initiator
recognises this:

iscontrol[5634]: trapped signal 30
iscontrol[5628]: trapped signal 30
iscontrol[5638]: trapped signal 30
iscontrol: supervise going down
iscontrol: supervise going down
iscontrol[5628]: sess flags=2000040d
iscontrol[5634]: sess flags=2000040d
iscontrol[5628]: Reconnect
iscontrol[5634]: Reconnect
iscontrol: supervise going down
iscontrol[5638]: sess flags=2000040d
iscontrol[5638]: Reconnect
recvpdu: Socket is not connected
recvpdu failed
iscontrol[5638]: terminated
recvpdu: Socket is not connected
recvpdu failed
iscontrol[5634]: terminated
recvpdu: Socket is not connected
recvpdu failed
iscontrol[5628]: terminated

and shortly after this I see:

(da2:iscsi2:0:0:0): lost device
(da1:iscsi1:0:0:0): lost device
(da0:iscsi0:0:0:0): lost device

But somehow ZFS does not recognise the lost devices.
The devices remain in ZFS "online" status with some r/w
errors reported. The pool is unusable though, any r/w
access hangs, as does a zpool detach tank da0 or a
ls /tank.

If I restart the target service after some minutes,
the initiator doesn't reconnect although the processes
are running:

root   5628  0.0  0.0  9200  1616  ??  DEs   7:19PM   0:00.00 iscontrol -c /etc/iscsi/disk1.conf -n disk1
root   5634  0.0  0.0  9200  1616  ??  DEs   7:19PM   0:00.00 iscontrol -c /etc/iscsi/disk2.conf -n disk2
root   5638  0.0  0.0  9200  1616  ??  DEs   7:19PM   0:00.00 iscontrol -c /etc/iscsi/disk3.conf -n disk3

I don't know if this issue is related to the initiator
(my guess) or ZFS or some other component (maybe even
my misunderstanding of some concepts) so I kindly ask
if someone can give me a hint?


Best regards,
Gregor


More information about the freebsd-scsi mailing list