Could you send me the /boot/config-2.6.whatever-kernel-version-you-are-using
Could you also do
cat /sys/class/iscsi_connection/connection1:0/recv_tmo
cat /sys/class/iscsi_connection/connection1:0/ping_tmo
and send those values.
Ignore that. I forgot suse uses HZ=250.
It looks like the nop code it broken. If you use
node.conn[0].timeo.noop_out_interval = 0
node.conn[0].timeo.noop_out_timeout = 0
Set that for each portal or set it in your /etc/iscsi/iscsi.conf file
and then redo discovery.
> May 5 21:15:05 manjula klogd: connection1:0: detected conn error
> (1011)
> May 5 21:15:05 manjula iscsid: Kernel reported iSCSI connection 1:0
> error (1011) state (3)
> May 5 21:15:09 manjula iscsid: connection1:0 is operational after
> recovery (1 attempts)
>
> The target is the infamous Promise m500i and the initiator "transport
> class version 2.0-869. iscsid version 2.0-868"
> Nic : Broadcom NetXtreme BCM5721 Gigabit Ethernet PCI Express (tg3)
> Kernel 2.6.25-rc9-17-default x86_64
>
> There is really no load on this system yet. I used a sniffer to record
> the traffic and it seem the target "all the sudden" sends a reset
> (frame 65). I'm not sure if this happens at the same time as the error
> printed to the log. I have uploaded the capture file here:
> http://www.wehay.com/iscsi.cap.gz
>
> To my first stupid question. The target is equipped with 2 x 1GB nics
> having address 192.168.43.5 & 6. When I did the discovery I only
> pointed to one of these addresses still both where found and used
> (magic). Also I noticed that every lun is registered twice (sdc & d
This is expected. Normally if you do discovery to one port it will tell
you about all of them on the target.
The multiple sd entries is also expected. The scsi layer does not know
or care if it can see the same LU from different paths, so it creates a
sd everytime it sees it. You could then use multipath to assemble all
the sds into one multipath device.
> for lun1 etc), is the reason for this performance, fail over or
> perhaps both ? I've spotted in the target the following setting "Max
> Connections 1" (non-configurable) and was thinking perhaps this reset
> was related to this. I have left all configuration to it's defaults
> only changing the login information.
>
max connections is not used so do not worry about it.
If that works could you try the kernel modules and tools in this tarball?
http://open-iscsi.org/bits/open-iscsi-2.0-869.1.test1.tar.gz
Renable nops by setting:
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 5
back to five, then retry the test. This should fix the root problem
where we drop the session when we wanted to test it.
No. The first numnber in connectionX:Y is the session number.
>
> I still see the same errors though:
>
> May 6 09:07:06 manjula klogd: connection1:0: ping timeout of 5 secs
> expired, last rx 4636947795, last ping 4636942795, now 4636950295
It looks the value did not get picked up. Forget I asked you to do this
ok? We do not need it.
Could you just try
http://open-iscsi.org/bits/open-iscsi-2.0-869.1.test1.tar.gz
Remove the old iscsi tools (I think in suse the package is named
open-iscsi).
Do
rpm -e open-iscsi
Now build this test package
http://open-iscsi.org/bits/open-iscsi-2.0-869.1.test1.tar.gz
with extra debugging:
Build it with
make DEBUG_SCSI=1
make DEBUG_SCSI=1 install
>
> Furthermore, are there supposed to as many processes as this ?
>
You are going to get a scsi_eh and a scsi_wq and a iscsi_scan thread per
session/target. Some targets do a target per device/LU/LUN and in that
case you would see a lot. If you run iscsiadm -m session we can see what
is up.
Apply the attached patch.
>
> OK, were back in business.
>
> Built and installed the debug-initiator.
>
> The [scsi_eh_xx] scsi_wq_xx] processes, there are about 60 of those
> before I have even started open-iscsi, zombies ?
>
Eh..... I do not know what is on your box. If you have not started
open-iscsi they could be from something else.
> May 6 21:03:53 manjula iscsid: connection3:0 is operational now
> May 6 21:03:53 manjula iscsid: connection4:0 is operational now
>
> 3 and 4 now, could this be caused by those processes ?
>
I am not sure what you are doing. If yo had started iscsi previously then
the session number would be incremented like it is above.
> I would have expected this version to be very noisy log-wise, however
It should be really noisy. Did you build with "make DEBUG_SCSI=1"?
> I have stressed the disk quite alot now and have not seen anything in
> the log. Performance actually also looks better. 3GB in 40 sec, that
> is far better than before.
>
> Those processes, could I just shut everything down and kill the
> remaining ?
>
Yeah, reboot the box, use the new modules and tools build with
DEBUG_SCSI=1. Remove the suse tools, stop the init iscsi and open-iscsi
init scripts from running, and then just start iscsid by hand. Then run
iscsiadm by hand.
> Rgds
> Jonas
> >
>
Can you remind me what target you are using and how many sessions you
should have? It looks like only one session has problems. The other/s
look like they are just fine. Are the errors now (before I understood
that it happened when no IO was running) only occuring when you put IO
on the session/disk?
From the first mail of this thread:
"The target is the infamous Promise m500i"
-- Pasi
Hi!
I'm also (unfortunately) running Promise m500i on one setup, and I've had
problems with it basicly all the time. Should just get rid of it and replace
it with something more stable and powerful.
You can check this thread for more info about my problems with this target:
"open-iscsi with Promise M500i dropping session / Nop-out timedout"
Basicly I'm seeing "Nop-out timedout" and "Session dropped" errors whenever
there is IO going on..
-- Pasi
It's pretty much the standard or "out of the box" configuration with a
couple of LD's defined.. I'm running the latest Promise firmware.
I have two disk arrays, both having a single LD (so two LD's total).
This LD having problems is RAID5 with 5 drives in use (and a hotspare).
I'm not sure if the other LD has problems too.. It's being used by
Qlogic iSCSI HBA so I'm not sure if there are problems or not.
-- Pasi
But with this test are there no nop out timed out errors like before?
Hey could you guys try this patch. It is made over open-iscsi-2.0-869.2.
Pasi, I do not think 869 compiles over RHEL, because it has some stuff
backported that the tarball does not expect, so you would have to run a
kernel.org kernel.
Yeah, something is still setting the nops somehow so we are still
hitting the same problem. If you do
cat /sys/class/iscsi_connection/connectionX:0/ping_tmo
cat /sys/class/iscsi_connection/connectionX:0/recv_tmo
Do you see 5 for both values (X would be the session number)?
Could also send the beginning of the log where you login and see the
scsi devices get added? The parts right after:
Loading iSCSI transport class v2.0-869.
iscsi: registered transport (tcp)
Up to the parts where you see the last scsi device get added.
Also what arch are you running? Are you running x86 or x86_64? If the
latter are you running both 64bit kernels and userspace?
And could you just run iscsid by hand with
iscsid -d 8 -f &
login to the target then send the output? You do not have to do any
other IO. I just want to make sure the params are getting sent to the
kernel right.
Oh yeah I found the reason for the zobmie process you were hitting.
There was a bug introduced into 2.5.25 which left them hanging around
even though we removed the host and sessions. You need the attached
patch on your kernel to fix the problem.
No. I do not need any of the kernel info. It all seems to be telling us
that the kernel really does think we set the timers as 5 seconds. We
want to see why iscsid thinks it wants to set these timers as 5 seconds
even though you set it so it shouldn't.
>
>> Also what arch are you running? Are you running x86 or x86_64? If the
>> latter are you running both 64bit kernels and userspace?
>
> Everything should have been built for the x86_64 architecture.
>
> manjula:/sbin # file iscsid
> iscsid: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/
> Linux 2.6.4, dynamically linked (uses shared libs), not stripped
>
ok.
No. It looks like the target dropped the connection on us. Did you see
anything on the target logs?
Hi!
I'm afraid I don't know more about that..
My general impression about this target (Promise Vtrak M500i) is that it sucks a
lot. I've seen a lot of target crashes, failing firmware updates, missing
(unimplemented) features in the menus, especially in the cmdline, missing
links on the web management (mentioned in the docs but nowhere in the actual
gui) and general feeling of "unstable and not finished".. not to mention bad
customer support.
It's the same as always.. good and cheap come in different packages :(
-- Pasi