* Problems with multipathing
@ 2006-04-11 18:10 Roger Håkansson
2006-04-11 18:42 ` Christophe Varoqui
0 siblings, 1 reply; 13+ messages in thread
From: Roger Håkansson @ 2006-04-11 18:10 UTC (permalink / raw)
To: dm-devel
I'm trying to setup a couple of machines running CentOS 4.3 x86_64 using
disk from a SAN, but I can't get the multipathing to work properly.
The machines (three in total) all have two Emulex LP10000-M2 and thus
are using the lpfc-driver.
When I boot the machines the paths seem to be multipathed somewhat, if i
put a "multipath"-tag in /etc/multipath.conf with a specific alias
(yellow,red) for each wwid, those paths are mapped under /dev/mapper and
/dev/mpath.
But multipath -ll doesn't show what I expect (basically no mappings) and
if I do a multipath -F I can't get the mappings back without a reboot.
If I do a 'multipath -v3' directly after boot, this is what I get:
#
# all paths in cache :
#
3600d0230000000000b0191489a946601 1:0:2:0 sdb 8:16 [active][ready] IFT
/
3600d0230000000000b0191489a946600 1:0:3:0 sdc 8:32 [active][ready] IFT
/
3600d0230000000000b0191489a946601 2:0:2:0 sdd 8:48 [active][ready] IFT
/
3600d0230000000000b0191489a946600 2:0:3:0 sde 8:64 [active][ready] IFT
/
*blacklist*
===== path info sdb (mask 0x1f) =====
bus = 1
dev_t = 8:16
size = 204800000
vendor = IFT
product = A16F-R2221
rev = 347B
h:b:t:l = 1:0:2:0
tgt_node_name = 0x200000d0231b0191
serial = 0B0191489A946601
path checker = readsector0 (internal default)
state = 2
getprio = /bin/true (internal default)
prio = 0
uid = 3600d0230000000000b0191489a946601 (cache)
===== path info sdc (mask 0x1f) =====
bus = 1
dev_t = 8:32
size = 409600000
vendor = IFT
product = A16F-R2221
rev = 347B
h:b:t:l = 1:0:3:0
tgt_node_name = 0x200000d0230b0191
serial = 0B0191489A946600
path checker = readsector0 (internal default)
state = 2
getprio = /bin/true (internal default)
prio = 0
uid = 3600d0230000000000b0191489a946600 (cache)
===== path info sdd (mask 0x1f) =====
bus = 1
dev_t = 8:48
size = 204800000
vendor = IFT
product = A16F-R2221
rev = 347B
h:b:t:l = 2:0:2:0
tgt_node_name = 0x200000d0231b0191
serial = 0B0191489A946601
path checker = readsector0 (internal default)
state = 2
getprio = /bin/true (internal default)
prio = 0
uid = 3600d0230000000000b0191489a946601 (cache)
===== path info sde (mask 0x1f) =====
bus = 1
dev_t = 8:64
size = 409600000
vendor = IFT
product = A16F-R2221
rev = 347B
h:b:t:l = 2:0:3:0
tgt_node_name = 0x200000d0230b0191
serial = 0B0191489A946600
path checker = readsector0 (internal default)
state = 2
getprio = /bin/true (internal default)
prio = 0
uid = 3600d0230000000000b0191489a946600 (cache)
path sdf not found in pathvec
===== path info sdf (mask 0x1f) =====
bus = 1
dev_t = 8:80
sr0 blacklisted
After a 'multipath -F;multipath', 'multipath -v3' gives me this:
#
# all paths in cache :
#
3600d0230000000000b0191489a946601 1:0:2:0 sdb 8:16 [ready] IFT
/A16F-R22
3600d0230000000000b0191489a946600 1:0:3:0 sdc 8:32 [ready] IFT
/A16F-R22
3600d0230000000000b0191489a946601 2:0:2:0 sdd 8:48 [ready] IFT
/A16F-R22
3600d0230000000000b0191489a946600 2:0:3:0 sde 8:64 [ready] IFT
/A16F-R22
*blacklist*
===== path info sdb (mask 0x1f) =====
bus = 1
dev_t = 8:16
size = 204800000
vendor = IFT
product = A16F-R2221
rev = 347B
h:b:t:l = 1:0:2:0
tgt_node_name = 0x200000d0231b0191
serial = 0B0191489A946601
path checker = readsector0 (internal default)
state = 2
getprio = /bin/true (internal default)
prio = 0
uid = 3600d0230000000000b0191489a946601 (cache)
===== path info sdc (mask 0x1f) =====
bus = 1
dev_t = 8:32
size = 409600000
vendor = IFT
product = A16F-R2221
rev = 347B
h:b:t:l = 1:0:3:0
tgt_node_name = 0x200000d0230b0191
serial = 0B0191489A946600
path checker = readsector0 (internal default)
state = 2
getprio = /bin/true (internal default)
prio = 0
uid = 3600d0230000000000b0191489a946600 (cache)
===== path info sdd (mask 0x1f) =====
bus = 1
dev_t = 8:48
size = 204800000
vendor = IFT
product = A16F-R2221
rev = 347B
h:b:t:l = 2:0:2:0
tgt_node_name = 0x200000d0231b0191
serial = 0B0191489A946601
path checker = readsector0 (internal default)
state = 2
getprio = /bin/true (internal default)
prio = 0
uid = 3600d0230000000000b0191489a946601 (cache)
===== path info sde (mask 0x1f) =====
bus = 1
dev_t = 8:64
size = 409600000
vendor = IFT
product = A16F-R2221
rev = 347B
h:b:t:l = 2:0:3:0
tgt_node_name = 0x200000d0230b0191
serial = 0B0191489A946600
path checker = readsector0 (internal default)
state = 2
getprio = /bin/true (internal default)
prio = 0
uid = 3600d0230000000000b0191489a946600 (cache)
path sdf not found in pathvec
===== path info sdf (mask 0x1f) =====
bus = 1
dev_t = 8:80
sr0 blacklisted
Running multipathd with -v4 doesn't give me any relevant output.
Anyone got a clue how to solve this problem?
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: Problems with multipathing 2006-04-11 18:10 Problems with multipathing Roger Håkansson @ 2006-04-11 18:42 ` Christophe Varoqui 2006-04-11 21:04 ` Roger Håkansson 0 siblings, 1 reply; 13+ messages in thread From: Christophe Varoqui @ 2006-04-11 18:42 UTC (permalink / raw) To: device-mapper development Roger Håkansson a écrit : > I'm trying to setup a couple of machines running CentOS 4.3 x86_64 using > disk from a SAN, but I can't get the multipathing to work properly. > > The machines (three in total) all have two Emulex LP10000-M2 and thus > are using the lpfc-driver. > > When I boot the machines the paths seem to be multipathed somewhat, if i > put a "multipath"-tag in /etc/multipath.conf with a specific alias > (yellow,red) for each wwid, those paths are mapped under /dev/mapper and > /dev/mpath. > > But multipath -ll doesn't show what I expect (basically no mappings) and > if I do a multipath -F I can't get the mappings back without a reboot. > > If I do a 'multipath -v3' directly after boot, this is what I get: > ... > Anyone got a clue how to solve this problem? > > Can you reproduce with upstream version ? Regards, cvaroqui ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-11 18:42 ` Christophe Varoqui @ 2006-04-11 21:04 ` Roger Håkansson 2006-04-13 17:14 ` Roger Håkansson 0 siblings, 1 reply; 13+ messages in thread From: Roger Håkansson @ 2006-04-11 21:04 UTC (permalink / raw) To: device-mapper development Christophe Varoqui wrote: > > Can you reproduce with upstream version ? > With upstream I guess you mean 0.4.7 or "CVS-HEAD". Haven't tried that, but just looking at the requirements tells me I'll have a lot to do in order to even just to prepare to test it. > Dependencies : > Linux kernel > > * 2.6.10-rc*-udm2 or later > * 2.6.11-mm* or later > * 2.6.12-rc1 or later > udev 050+ CentOS 4.3 have 2.6.9-34 and udev-039-10, and even though some stuff are backported I guess I have to update both and I can only imagine the amount of work that will render me, but I'll try to do it if I can find the time... ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-11 21:04 ` Roger Håkansson @ 2006-04-13 17:14 ` Roger Håkansson 2006-04-13 20:48 ` Christophe Varoqui 0 siblings, 1 reply; 13+ messages in thread From: Roger Håkansson @ 2006-04-13 17:14 UTC (permalink / raw) To: device-mapper development Roger Håkansson wrote: > > With upstream I guess you mean 0.4.7 or "CVS-HEAD". > > Haven't tried that, but just looking at the requirements tells me I'll > have a lot to do in order to even just to prepare to test it. > >> Dependencies : >> Linux kernel >> >> * 2.6.10-rc*-udm2 or later >> * 2.6.11-mm* or later >> * 2.6.12-rc1 or later >> udev 050+ > > CentOS 4.3 have 2.6.9-34 and udev-039-10, and even though some stuff are > backported I guess I have to update both and I can only imagine the > amount of work that will render me, but I'll try to do it if I can find > the time... > > 0.4.7 seems to work better without updating kernel or udev, but not entirely... Unless I've gotten this wrong, with pathgroupingpolicy set to failover I should get two pathgroups where only one is active an if the active fails, the other pathgroup will become active, correct? Multibus pathgrouping will place all paths in the same pathgroup so that all paths will share the I/O when they are active and if some path fails, the I/O is spread among the active paths, correct? Multibus works just like I expect it to, but failover doesn't fail the path entirely. This is what 'multipath -ll' gives me after I have disconnected one HBA from the fabric. mpath1 (3600d0230000000000b0191489a946602) [size=183 GB][features=0][hwhandler=0] \_ round-robin 0 [prio=0][enabled] \_ 1:0:1:1 sdc 8:32 [active][faulty] \_ round-robin 0 [prio=0][enabled] \_ 2:0:0:1 sdf 8:80 [active][ready] mpath2 (3600d0230000000000b0191489a946600) [size=97 GB][features=0][hwhandler=0] \_ round-robin 0 [prio=0][active] \_ 1:0:1:0 sdb 8:16 [failed][faulty] \_ 2:0:0:0 sde 8:64 [active][ready] Notice that sdc is faulty, but still active and both pathgroups are enabled but none is active... I've noticed this problem when I/O is active ( I was running a 'dd if=/dev/zero of=/mount_point count=10000000000' to each mpath) when one "path" fails, if there is no activity at all the failover works. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-13 17:14 ` Roger Håkansson @ 2006-04-13 20:48 ` Christophe Varoqui 2006-04-16 22:44 ` Roger Håkansson 2006-04-17 0:35 ` Roger Håkansson 0 siblings, 2 replies; 13+ messages in thread From: Christophe Varoqui @ 2006-04-13 20:48 UTC (permalink / raw) To: device-mapper development Roger Håkansson a écrit : > Roger Håkansson wrote: > >> With upstream I guess you mean 0.4.7 or "CVS-HEAD". >> >> Haven't tried that, but just looking at the requirements tells me I'll >> have a lot to do in order to even just to prepare to test it. >> >> >>> Dependencies : >>> Linux kernel >>> >>> * 2.6.10-rc*-udm2 or later >>> * 2.6.11-mm* or later >>> * 2.6.12-rc1 or later >>> udev 050+ >>> >> CentOS 4.3 have 2.6.9-34 and udev-039-10, and even though some stuff are >> backported I guess I have to update both and I can only imagine the >> amount of work that will render me, but I'll try to do it if I can find >> the time... >> >> >> > > 0.4.7 seems to work better without updating kernel or udev, but not > entirely... > > Unless I've gotten this wrong, with pathgroupingpolicy set to failover I > should get two pathgroups where only one is active an if the active > fails, the other pathgroup will become active, correct? > Multibus pathgrouping will place all paths in the same pathgroup so that > all paths will share the I/O when they are active and if some path > fails, the I/O is spread among the active paths, correct? > > Multibus works just like I expect it to, but failover doesn't fail the > path entirely. > > This is what 'multipath -ll' gives me after I have disconnected one HBA > from the fabric. > > mpath1 (3600d0230000000000b0191489a946602) > [size=183 GB][features=0][hwhandler=0] > \_ round-robin 0 [prio=0][enabled] > \_ 1:0:1:1 sdc 8:32 [active][faulty] > \_ round-robin 0 [prio=0][enabled] > \_ 2:0:0:1 sdf 8:80 [active][ready] > mpath2 (3600d0230000000000b0191489a946600) > [size=97 GB][features=0][hwhandler=0] > \_ round-robin 0 [prio=0][active] > \_ 1:0:1:0 sdb 8:16 [failed][faulty] > \_ 2:0:0:0 sde 8:64 [active][ready] > > Notice that sdc is faulty, but still active and both pathgroups are > enabled but none is active... > > I've noticed this problem when I/O is active ( I was running a 'dd > if=/dev/zero of=/mount_point count=10000000000' to each mpath) when one > "path" fails, if there is no activity at all the failover works. > > I don't know your hardware (vendor = IFT, product = A16F-R2221) but it seems assymmetrical. Most hardware in this familly need a hardware handler, and some need the "queue_if_no_path" feature set too. You'll have to find how your array works and try to figure if some existing hardware handler does the good thing. As a last resort, post the maximum techical details about what your hardware needs to activate backup paths, and hope that some good soul is willing to code the handler. Regards, cvaroqui ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-13 20:48 ` Christophe Varoqui @ 2006-04-16 22:44 ` Roger Håkansson 2006-04-17 0:35 ` Roger Håkansson 1 sibling, 0 replies; 13+ messages in thread From: Roger Håkansson @ 2006-04-16 22:44 UTC (permalink / raw) To: device-mapper development [-- Attachment #1.1: Type: text/plain, Size: 2938 bytes --] Christophe Varoqui wrote: > I don't know your hardware (vendor = IFT, product = A16F-R2221) http://www.infortrend.com/main/2_product/a16f-r2221.asp > but it seems assymmetrical. I guess that you with "asymmetrical" means that paths are only presented on one controller at a time, more on that later. > Most hardware in this familly need a hardware > handler, and some need the "queue_if_no_path" feature set too. > > You'll have to find how your array works and try to figure if some > existing hardware handler does the good thing. I've done some testing and it seems that multibus works fine, but when a controller fails and the secondary controller takes over, the scsi-devices are seen as "dead" and if I, before multipath determines both paths to be permanently faulty, do a "echo 1 > /sys/class/scsi_device/1:0:0:0/device/rescan", multipath will not fail the device. So the question is if this is something a hardware_handler could do, and if so, how hard is it to write such a handler? > As a last resort, post the maximum techical details about what your > hardware needs to activate backup paths, and hope that some good soul is > willing to code the handler. Ok, I'll give you as much info as I can (if its of any use is another thing...). The "box" has two controllers, which Infortrend calls active-active, which in this case means that one can create logical drives (and optionally logical volumes) which are assigned to one of the controllers, but a logical drive can only be active on one controller at a time. The "box" also has two "channels" which are connected to both controllers, each controller can be assigned multiple "host controller IDs" on each channel. "Host controller ID-index" (lowest "host controller id" on primary controller will have 0, next 1.. to N, lowest on secondary will have N+1 and so on) together with some static pieces (MAC-address) form the WWNN, beginning with 20. All targets on "channel 0" will have WWPN beginning with 21 and the rest identical to the WWNN, targets on "channel 1" begin with 22. When a controller fails, the other one takes over all logical drives, LUNs, WWNN and WWPN. Another thing which I don't know if its important or not, but the "box" have four fysical SFP-ports which can be configured in two ways, either in "hubbed mode" where two are "hubbed" together on one "channel" on both controllers and the other two on the other channel, or "non-hubbed mode" where each port are staticly bound to a specific "channel" on a specific controller. As far as I've been able to tell, there is no difference in behaviour between hubbed/non-hubbed mode -- Roger Håkansson , Senior Consultant Algitech Consulting AB Södra Kungsgatan 5 (Office) Box 28, S-971 02 Luleå , Sweden Tel: +46 (0)920 88313 Mobile: +46 (0)705 549533 Fax: +1 (0)928 222 7116 E-mail: roger.hakansson@algitech.com [-- Attachment #1.2: S/MIME Cryptographic Signature --] [-- Type: application/x-pkcs7-signature, Size: 3276 bytes --] [-- Attachment #2: Type: text/plain, Size: 0 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-13 20:48 ` Christophe Varoqui 2006-04-16 22:44 ` Roger Håkansson @ 2006-04-17 0:35 ` Roger Håkansson 2006-04-17 9:43 ` Christophe Varoqui 1 sibling, 1 reply; 13+ messages in thread From: Roger Håkansson @ 2006-04-17 0:35 UTC (permalink / raw) To: device-mapper development Christophe Varoqui wrote: > > I don't know your hardware (vendor = IFT, product = A16F-R2221) http://www.infortrend.com/main/2_product/a16f-r2221.asp > > but it seems assymmetrical. I guess that you with "asymmetrical" means that paths are only presented on one controller at a time, more on that later. > > Most hardware in this familly need a hardware > > handler, and some need the "queue_if_no_path" feature set too. > > > > You'll have to find how your array works and try to figure if some > > existing hardware handler does the good thing. I've done some testing and it seems that multibus works fine, but when a controller fails and the secondary controller takes over, the scsi-devices are seen as "dead" and if I, before multipath determines both paths to be permanently faulty, do a "echo 1 > /sys/class/scsi_device/1:0:0:0/device/rescan", multipath will not fail the device. So the question is if this is something a hardware_handler could do, and if so, how hard is it to write such a handler? > > As a last resort, post the maximum techical details about what your > > hardware needs to activate backup paths, and hope that some good soul is > > willing to code the handler. Ok, I'll give you as much info as I can (if its of any use is another thing...). The "box" has two controllers, which Infortrend calls active-active, which in this case means that one can create logical drives (and optionally logical volumes) which are assigned to one of the controllers, but a logical drive can only be active on one controller at a time. The "box" also has two "channels" which are connected to both controllers, each controller can be assigned multiple "host controller IDs" on each channel. "Host controller ID-index" (lowest "host controller id" on primary controller will have 0, next 1.. to N, lowest on secondary will have N+1 and so on) together with some static pieces (MAC-address) form the WWNN, beginning with 20. All targets on "channel 0" will have WWPN beginning with 21 and the rest identical to the WWNN, targets on "channel 1" begin with 22. When a controller fails, the other one takes over all logical drives, LUNs, WWNN and WWPN. Another thing which I don't know if its important or not, but the "box" have four fysical SFP-ports which can be configured in two ways, either in "hubbed mode" where two are "hubbed" together on one "channel" on both controllers and the other two on the other channel, or "non-hubbed mode" where each port are staticly bound to a specific "channel" on a specific controller. As far as I've been able to tell, there is no difference in behaviour between hubbed/non-hubbed mode ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-17 0:35 ` Roger Håkansson @ 2006-04-17 9:43 ` Christophe Varoqui 2006-04-17 14:17 ` Roger Håkansson 2006-04-18 19:24 ` James Smart 0 siblings, 2 replies; 13+ messages in thread From: Christophe Varoqui @ 2006-04-17 9:43 UTC (permalink / raw) To: device-mapper development Roger Håkansson a écrit : >>> but it seems assymmetrical. >>> > > I guess that you with "asymmetrical" means that paths are only presented > on one controller at a time, more on that later. > > Yes, and the "transparent path switching with a penalty" family, which your hardware seems to be part of. Those usually don't need a hardware handler. >>> Most hardware in this familly need a hardware >>> handler, and some need the "queue_if_no_path" feature set too. >>> >>> You'll have to find how your array works and try to figure if some >>> existing hardware handler does the good thing. >>> > > I've done some testing and it seems that multibus works fine, but when a > controller fails and the secondary controller takes over, the > scsi-devices are seen as "dead" and if I, before multipath determines > both paths to be permanently faulty, do a "echo 1 > > /sys/class/scsi_device/1:0:0:0/device/rescan", multipath will not fail > the device. > > Do failover device nodes get reassigned during the rescan ? Like, for example, a configured path sda gets removed and a new path sdb appears ? If so, the FC transport class is in charge of the timeout triggering the dead devices removal. A hardware handler wouldn't help here. Can you paste a before/after scsi rescan "multipath -l" output ? Regards, cvaroqui ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-17 9:43 ` Christophe Varoqui @ 2006-04-17 14:17 ` Roger Håkansson 2006-04-18 4:47 ` Christophe Varoqui 2006-04-18 19:24 ` James Smart 1 sibling, 1 reply; 13+ messages in thread From: Roger Håkansson @ 2006-04-17 14:17 UTC (permalink / raw) To: device-mapper development Christophe Varoqui wrote: > > Do failover device nodes get reassigned during the rescan ? > Like, for example, a configured path sda gets removed and a new path sdb > appears ? No, since I don't do a rescan on the bus but just on the target itself. When I had the controller in non-hubbed mode and did (when a controller has failed) "echo 1> /sys/class/scsi_host/host[1-2]/scan" I got two new devices, sde and sdf (I normally havesda,sdb,sdc and sdd) But if I instead did "echo 1 > /sys/class/scsi_device/[1-2]:0:0:0/device/rescan", I didn't get any new devices but the old ones start working again. Now, when I have the box in hubbed-mode, I can't seem to get new devices even when I do a scsi-host-scan, but just as before, a scsi-target-rescan will get my devices back to order again. Also, I've noticed that it's not only when a controller fails that this happens, when a failed controller is "revived" the same thing might happen. As far as I've been able to tell, the more I/O-transactions at the time of the failure, the more likely that the (SCSI) device will be marked as "dead". If I do "while /bin/true ;do dd if=/dev/zero of=/mnt/test count=20000; sleep 1" and fail (or revive) a controller it seems to work in 50% of the cases, with 2 sec sleep there is rarely any problem but with no sleep at all it fails nearly 100% of the times And in all types of tests, if I do a SCSI-target(path) rescan before multipath decides both paths are dead, both paths will work again and the multipath-device will never fail. > If so, the FC transport class is in charge of the timeout triggering the > dead devices removal. > A hardware handler wouldn't help here. > > Can you paste a before/after scsi rescan "multipath -l" output ? > They are identical [root@asl005 ~]# multipath -l mpath1 (3600d0230000000000b01910b4d313400) [size=97 GB][features=0][hwhandler=0] \_ round-robin 0 [prio=0][active] \_ 1:0:0:0 sdb 8:16 [active][undef] \_ 2:0:0:0 sdc 8:32 [active][undef] [root@asl005 ~]# dmesg |tail -20 SCSI error : <1 0 0 0> return code = 0x20008 end_request: I/O error, dev sdb, sector 21247352 end_request: I/O error, dev sdb, sector 21247360 SCSI error : <1 0 0 0> return code = 0x20008 end_request: I/O error, dev sdb, sector 21036576 end_request: I/O error, dev sdb, sector 21036584 Aborting journal on device dm-5. ext3_abort called. EXT3-fs error (device dm-5): ext3_journal_start_sb: Detected aborted journal Remounting filesystem read-only EXT3-fs error (device dm-5) in start_transaction: Journal has aborted __journal_remove_journal_head: freeing b_committed_data printk: 254766 messages suppressed. Buffer I/O error on device dm-5, logical block 2092209 lost page write due to I/O error on dm-5 Buffer I/O error on device dm-5, logical block 2093234 lost page write due to I/O error on dm-5 printk: 485 messages suppressed. Buffer I/O error on device dm-5, logical block 1 lost page write due to I/O error on dm-5 [root@asl005 ~]# multipath -l mpath1 (3600d0230000000000b01910b4d313400) [size=97 GB][features=0][hwhandler=0] \_ round-robin 0 [prio=0][enabled] \_ 1:0:0:0 sdb 8:16 [failed][undef] \_ 2:0:0:0 sdc 8:32 [failed][undef] [root@asl005 ~]# echo 1 > /sys/class/fc_transport/target1\:0\:0/device/1\:0\:0\:0/rescan [root@asl005 ~]# multipath -l mpath1 (3600d0230000000000b01910b4d313400) [size=97 GB][features=0][hwhandler=0] \_ round-robin 0 [prio=0][enabled] \_ 1:0:0:0 sdb 8:16 [failed][undef] \_ 2:0:0:0 sdc 8:32 [failed][undef] [root@asl005 ~]# multipath [root@asl005 ~]# multipath -ll mpath1 (3600d0230000000000b01910b4d313400) [size=97 GB][features=0][hwhandler=0] \_ round-robin 0 [prio=0][active] \_ 1:0:0:0 sdb 8:16 [active][undef] \_ 2:0:0:0 sdc 8:32 [active][undef] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-17 14:17 ` Roger Håkansson @ 2006-04-18 4:47 ` Christophe Varoqui 2006-04-18 5:04 ` Roger Håkansson 2006-04-18 19:38 ` James Smart 0 siblings, 2 replies; 13+ messages in thread From: Christophe Varoqui @ 2006-04-18 4:47 UTC (permalink / raw) To: device-mapper development Roger Håkansson a écrit : > Christophe Varoqui wrote: > >> Do failover device nodes get reassigned during the rescan ? >> Like, for example, a configured path sda gets removed and a new path sdb >> appears ? >> > > No, since I don't do a rescan on the bus but just on the target itself. > When I had the controller in non-hubbed mode and did (when a controller > has failed) "echo 1> /sys/class/scsi_host/host[1-2]/scan" I got two new > devices, sde and sdf (I normally havesda,sdb,sdc and sdd) > But if I instead did "echo 1 > > /sys/class/scsi_device/[1-2]:0:0:0/device/rescan", I didn't get any new > devices but the old ones start working again. > Now, when I have the box in hubbed-mode, I can't seem to get new devices > even when I do a scsi-host-scan, but just as before, a > scsi-target-rescan will get my devices back to order again. > > ok. have you tried sending a START_STOP scsi command (wit sg_start from sg3_utils) to the affect'ed LUN instead of target-rescaning ? > Also, I've noticed that it's not only when a controller fails that this > happens, when a failed controller is "revived" the same thing might happen. > > As far as I've been able to tell, the more I/O-transactions at the time > of the failure, the more likely that the (SCSI) device will be marked as > "dead". > If I do "while /bin/true ;do dd if=/dev/zero of=/mnt/test count=20000; > sleep 1" and fail (or revive) a controller it seems to work in 50% of > the cases, with 2 sec sleep there is rarely any problem but with no > sleep at all it fails nearly 100% of the times > And in all types of tests, if I do a SCSI-target(path) rescan before > multipath decides both paths are dead, both paths will work again and > the multipath-device will never fail. > > I see your features still don't include "queue_if_no_path". You seem to really need it. >> If so, the FC transport class is in charge of the timeout triggering the >> dead devices removal. >> A hardware handler wouldn't help here. >> >> Can you paste a before/after scsi rescan "multipath -l" output ? >> >> > > They are identical > > [root@asl005 ~]# multipath -l > mpath1 (3600d0230000000000b01910b4d313400) > [size=97 GB][features=0][hwhandler=0] > \_ round-robin 0 [prio=0][active] > \_ 1:0:0:0 sdb 8:16 [active][undef] > \_ 2:0:0:0 sdc 8:32 [active][undef] > [root@asl005 ~]# dmesg |tail -20 > SCSI error : <1 0 0 0> return code = 0x20008 > end_request: I/O error, dev sdb, sector 21247352 > end_request: I/O error, dev sdb, sector 21247360 > SCSI error : <1 0 0 0> return code = 0x20008 > end_request: I/O error, dev sdb, sector 21036576 > end_request: I/O error, dev sdb, sector 21036584 > Aborting journal on device dm-5. > ext3_abort called. > EXT3-fs error (device dm-5): ext3_journal_start_sb: Detected aborted journal > Remounting filesystem read-only > EXT3-fs error (device dm-5) in start_transaction: Journal has aborted > __journal_remove_journal_head: freeing b_committed_data > printk: 254766 messages suppressed. > Buffer I/O error on device dm-5, logical block 2092209 > lost page write due to I/O error on dm-5 > Buffer I/O error on device dm-5, logical block 2093234 > lost page write due to I/O error on dm-5 > printk: 485 messages suppressed. > Buffer I/O error on device dm-5, logical block 1 > lost page write due to I/O error on dm-5 > [root@asl005 ~]# multipath -l > mpath1 (3600d0230000000000b01910b4d313400) > [size=97 GB][features=0][hwhandler=0] > \_ round-robin 0 [prio=0][enabled] > \_ 1:0:0:0 sdb 8:16 [failed][undef] > \_ 2:0:0:0 sdc 8:32 [failed][undef] > [root@asl005 ~]# echo 1 > > /sys/class/fc_transport/target1\:0\:0/device/1\:0\:0\:0/rescan > [root@asl005 ~]# multipath -l > mpath1 (3600d0230000000000b01910b4d313400) > [size=97 GB][features=0][hwhandler=0] > \_ round-robin 0 [prio=0][enabled] > \_ 1:0:0:0 sdb 8:16 [failed][undef] > \_ 2:0:0:0 sdc 8:32 [failed][undef] > [root@asl005 ~]# multipath > [root@asl005 ~]# multipath -ll > mpath1 (3600d0230000000000b01910b4d313400) > [size=97 GB][features=0][hwhandler=0] > \_ round-robin 0 [prio=0][active] > \_ 1:0:0:0 sdb 8:16 [active][undef] > \_ 2:0:0:0 sdc 8:32 [active][undef] > > -- > dm-devel mailing list > dm-devel@redhat.com > https://www.redhat.com/mailman/listinfo/dm-devel > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-18 4:47 ` Christophe Varoqui @ 2006-04-18 5:04 ` Roger Håkansson 2006-04-18 19:38 ` James Smart 1 sibling, 0 replies; 13+ messages in thread From: Roger Håkansson @ 2006-04-18 5:04 UTC (permalink / raw) To: device-mapper development Christophe Varoqui wrote: > ok. > have you tried sending a START_STOP scsi command (wit sg_start from > sg3_utils) to the affect'ed LUN instead of target-rescaning ? No, but I'll try that. I've noticed that you(?) have written something about that in the "TestedEnvironments" section, but how does this "integrate" with multipath-tools? > I see your features still don't include "queue_if_no_path". You seem to > really need it. Yup, I've added that in my later tests and it seems to work as expected. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-18 4:47 ` Christophe Varoqui 2006-04-18 5:04 ` Roger Håkansson @ 2006-04-18 19:38 ` James Smart 1 sibling, 0 replies; 13+ messages in thread From: James Smart @ 2006-04-18 19:38 UTC (permalink / raw) To: device-mapper development > Roger Håkansson a écrit : >> Also, I've noticed that it's not only when a controller fails that this >> happens, when a failed controller is "revived" the same thing might >> happen. >> >> As far as I've been able to tell, the more I/O-transactions at the time >> of the failure, the more likely that the (SCSI) device will be marked as >> "dead". Hmmm.. I'm wondering if he's hitting the scenario in which the midlayer marks the sdev in an offline state - which could be the "dead" state. This occurs if an i/o hits the LLDD when the device is disconnected, and error recovery fails. If so, at a later time when the LLDD has connectivity and can access the device, the scsi layer would still likely bounce i/o. It requires a manual interaction to change it back to a running state, any i/o requests by dm would be failed back by the midlayer. What doesn't jive is the rescan re-enabling the device. As I stated, this is usually a manual action to restore things. If the rescans are just prior to the transition to the offline state, they may be making dm change it's path mappings to avoid i/o to the failed path, thus deflecting the sdev transition. Can you report the contents of /sys/class/scsi_device/1:0:*/device/state at the following states in both the works and does not work cases : working, right after failover but before dm fails it; after failure/success -- james ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Problems with multipathing 2006-04-17 9:43 ` Christophe Varoqui 2006-04-17 14:17 ` Roger Håkansson @ 2006-04-18 19:24 ` James Smart 1 sibling, 0 replies; 13+ messages in thread From: James Smart @ 2006-04-18 19:24 UTC (permalink / raw) To: device-mapper development Christophe Varoqui wrote: > Do failover device nodes get reassigned during the rescan ? > Like, for example, a configured path sda gets removed and a new path sdb > appears ? > If so, the FC transport class is in charge of the timeout triggering the > dead devices removal. > A hardware handler wouldn't help here. On the kernel rev he's talking about, 2.6.9-34, the FC transport class doesn't fully exist, so there's no automatic device removal. -- james ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2006-04-18 19:38 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-04-11 18:10 Problems with multipathing Roger Håkansson 2006-04-11 18:42 ` Christophe Varoqui 2006-04-11 21:04 ` Roger Håkansson 2006-04-13 17:14 ` Roger Håkansson 2006-04-13 20:48 ` Christophe Varoqui 2006-04-16 22:44 ` Roger Håkansson 2006-04-17 0:35 ` Roger Håkansson 2006-04-17 9:43 ` Christophe Varoqui 2006-04-17 14:17 ` Roger Håkansson 2006-04-18 4:47 ` Christophe Varoqui 2006-04-18 5:04 ` Roger Håkansson 2006-04-18 19:38 ` James Smart 2006-04-18 19:24 ` James Smart
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.