Thanks for trying out this patch and for your comments. Patch is made on top of commit fa7074f35c67ff1ef29f1aea5a484c5dea25863a . Please let me know if you still face any issue in applying patch on this commit. Meanwhile I will rebase the changes to HEAD before resending it. Any feedback for your verification would be appreciated. On 12/31/2010 11:23 PM, Fil wrote: > oops sorry, I was reading something else you responded to so automatically I > wrote to you.... > On 12/31/2011 09:00 AM, Christophe Varoqui wrote: > > > >> I have seen your set of patches for persistent reservation of > >> multipath devices and wanted to try them out. While trying this patch > >> set I have run into several issues. Which code base can I apply this > >> against? Any help would be greatly appreciated. Issues are listed below. > > > > This patchset has been developped by Netapp's Vijay Chauhan. > > > >> 2. I pulled multipath-tools from opensvc git and that patching failed > >> too, so I had to apply all the patches manually. > >> > > This is the correct project repository. The patchset may need rebasing > > over the HEAD. If it does not apply cleanly there, you might try to > > revert to a previous commit. > > > > I'll try this patchset soon and compare my experience with your > > observations. > > > > Thanks for the report. > > > >> 3. while testing mppersist I get following error: > >> > >> mpathpersist --out --register --param-sark=123abc --prout-type=8 > >> /dev/mapper/blah -v 4 Dec 31 00:54:29 | alias = blah Dec 31 00:54:29 > >> | params = 0 0 1 1 round-robin 0 2 1 8:0 1 8:16 1 Dec 31 00:54:29 | > >> status = 2 0 0 0 1 1 A 0 2 0 8:0 A 0 8:16 A 0 Dec 31 00:54:29 | blah: > >> disassemble map [0 0 1 1 round-robin 0 2 1 8:0 1 > >> 8:16 1 ] > >> Dec 31 00:54:29 | 8:0: not found in pathvec Dec 31 00:54:29 | 8:16: > >> not found in pathvec Dec 31 00:54:29 | No device found for 8:0 > >> Please try patch on the commit version mentioned above and let me know if you still face issue 3 and issue 4? > >> Dec 31 00:54:29 | No device found for 8:16 > >> > >> Dec 31 00:54:29 | blah: disassemble status [2 0 0 0 1 1 A 0 2 0 8:0 A > >> 0 > >> 8:16 A 0 ] > >> Dec 31 00:54:29 | 36001405c55fc03cd8193d491eda0d4d7: no path > >> available PR out: command failed > >> > >> 4. with all patches applied, all multipathd cli commands crash the daemon. > >> You may need specify reservation_key keyword in following format in either multipath section or default section for the applicable devices. In case if reservation_key is not mentioned in multipath.conf then multipathd would not check for persistent reservation for newly discovered path and reinstated path. reservation_key <reservation key> Example: multipaths { multipath { wwid XXXXXXXXXXXXXXXX alias yellow reservation_key 0x123abc } } > >> here are my configs: > >> > >> cat /etc/multipath.conf > >> defaults { > >> user_friendly_names yes > >> polling_interval 10 > >> } > >> > >> multipaths { > >> multipath { > >> wwid > 36001405c55fc03cd8193d491eda0d4d7 > >> alias blah > >> } > >> } > >> > >> > >> devices { > >> device { > >> vendor "QNAP" > >> product "iSCSI Storage" > >> path_selector "round-robin 0" > >> path_grouping_policy multibus > >> getuid_callout "/lib/udev/scsi_id -g -u -d /dev/%n" > >> path_checker directio > >> failback immediate > >> } > >> > >> } > >> > >> blacklist { > >> devnode "^(vd)[a-z]" > >> } > >> > >> multipath -ll -v3 > >> Dec 31 00:59:01 | loading /lib64/multipath/libcheckdirectio.so > >> checker Dec 31 00:59:01 | loading /lib64/multipath/libprioconst.so > >> prioritizer Dec 31 00:59:01 | loop0: device node name blacklisted Dec > >> 31 00:59:01 | loop1: device node name blacklisted Dec 31 00:59:01 | > >> loop2: device node name blacklisted Dec 31 00:59:01 | loop3: device > >> node name blacklisted Dec 31 00:59:01 | loop4: device node name > >> blacklisted Dec 31 00:59:01 | loop5: device node name blacklisted Dec > >> 31 00:59:01 | loop6: device node name blacklisted Dec 31 00:59:01 | > >> loop7: device node name blacklisted Dec 31 00:59:01 | vda: device > >> node name blacklisted Dec 31 00:59:01 | dm-0: device node name > >> blacklisted Dec 31 00:59:01 | dm-1: device node name blacklisted Dec > >> 31 00:59:01 | dm-2: device node name blacklisted Dec 31 00:59:01 | > >> dm-3: device node name blacklisted Dec 31 00:59:01 | sda: not found > >> in pathvec Dec 31 00:59:01 | sda: mask = 0x5 Dec 31 00:59:01 | sda: > >> dev_t = 8:0 Dec 31 00:59:01 | sda: size = 20971520 Dec 31 00:59:01 | > >> sda: vendor = QNAP Dec 31 00:59:01 | sda: product = iSCSI Storage Dec > >> 31 00:59:01 | sda: rev = 3.1 Dec 31 00:59:01 | sda: h:b:t:l = 2:0:0:0 > >> Dec 31 00:59:01 | sda: path state = running Dec 31 00:59:01 | sda: > >> get_state Dec 31 00:59:01 | sda: path checker = directio (controller > >> setting) Dec 31 00:59:01 | sda: checker timeout = 30000 ms (sysfs > >> setting) Dec 31 00:59:01 | directio: starting new request Dec 31 > >> 00:59:01 | directio: io finished 4096/0 Dec 31 00:59:01 | sda: state > >> = up Dec 31 00:59:01 | sdb: not found in pathvec Dec 31 00:59:01 | > >> sdb: mask = 0x5 Dec 31 00:59:01 | sdb: dev_t = 8:16 Dec 31 00:59:01 | > >> sdb: size = 20971520 Dec 31 00:59:01 | sdb: vendor = QNAP Dec 31 > >> 00:59:01 | sdb: product = iSCSI Storage Dec 31 00:59:01 | sdb: rev = > >> 3.1 Dec 31 00:59:01 | sdb: h:b:t:l = 3:0:0:0 Dec 31 00:59:01 | sdb: > >> path state = running Dec 31 00:59:01 | sdb: get_state Dec 31 00:59:01 > >> | sdb: path checker = directio (controller setting) Dec 31 00:59:01 | > >> sdb: checker timeout = 30000 ms (sysfs setting) Dec 31 00:59:01 | > >> directio: starting new request Dec 31 00:59:01 | directio: io > >> finished 4096/0 Dec 31 00:59:01 | sdb: state = up Dec 31 00:59:01 | > >> dm-4: device node name blacklisted ===== paths list ===== > >> uuid hcil dev dev_t pri dm_st chk_st vend/prod/rev dev_st > >> 2:0:0:0 sda 8:0 -1 undef ready QNAP,iSCSI Storage running > >> 3:0:0:0 sdb 8:16 -1 undef ready QNAP,iSCSI Storage running > >> Dec 31 00:59:01 | params = 0 0 1 1 round-robin 0 2 1 8:0 1 8:16 1 Dec > >> 31 00:59:01 | status = 2 0 0 0 1 1 A 0 2 0 8:0 A 0 8:16 A 0 Dec 31 > >> 00:59:01 | blah: disassemble map [0 0 1 1 round-robin 0 2 1 8:0 1 > >> 8:16 1 ] > >> Dec 31 00:59:01 | sda: mask = 0x8 > >> Dec 31 00:59:01 | sda: path state = running Dec 31 00:59:01 | sda: > >> prio = const (internal default) Dec 31 00:59:01 | sda: prio = > >> (internal default) Dec 31 00:59:01 | sda: const prio = 1 Dec 31 > >> 00:59:01 | sdb: mask = 0x8 Dec 31 00:59:01 | sdb: path state = > >> running Dec 31 00:59:01 | sdb: prio = const (internal default) Dec 31 > >> 00:59:01 | sdb: prio = (internal default) Dec 31 00:59:01 | sdb: > >> const prio = 1 Dec 31 00:59:01 | blah: disassemble status [2 0 0 0 1 > >> 1 A 0 2 0 8:0 A 0 > >> 8:16 A 0 ] > >> blah (36001405c55fc03cd8193d491eda0d4d7) dm-4 QNAP,iSCSI Storage > >> size=10G features='0' hwhandler='0' wp=rw > >> `-+- policy='round-robin 0' prio=0 status=active > >> |- 2:0:0:0 sda 8:0 active ready running > >> `- 3:0:0:0 sdb 8:16 active ready running Dec 31 00:59:01 | directio > >> checker refcount 2 Dec 31 00:59:01 | directio checker refcount 1 Dec > >> 31 00:59:01 | unloading const prioritizer Dec 31 00:59:01 | unloading > >> directio checker Thanks, Vijay -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel