* User specific priorities on for iscsi paths doesn't seem to work
@ 2009-08-07 20:25 Akshay Lal
2009-08-07 20:43 ` Mike Snitzer
2009-08-07 20:59 ` John A. Sullivan III
0 siblings, 2 replies; 8+ messages in thread
From: Akshay Lal @ 2009-08-07 20:25 UTC (permalink / raw)
To: dm-devel, John Quigley
I'm having a few issues with path priorities. It seems that the choice
of path to use during I/O is independent of the user defined priorities
for each path.
I am setting the priorities by executing writing a script that is used
by prio_callout. This seems to work when I execute multipath -ll since
all the specified priorities show up correctly. (the
path_grouping_policy being used is failover)
multipath -ll:
--------------
mpath2 (244534e3833623961) dm-1 DSNET,Dispersed Store
[size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=10][enabled]
\_ 85:0:0:0 sdc 8:32 [active][ready]
\_ round-robin 0 [prio=5][enabled]
\_ 87:0:0:0 sde 8:64 [active][ready]
mpath1 (244534e3266616134) dm-0 DSNET,Dispersed Store
[size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=5][enabled]
\_ 84:0:0:0 sdb 8:16 [active][ready]
\_ round-robin 0 [prio=10][enabled]
\_ 86:0:0:0 sdd 8:48 [active][ready]
At this point when I dd to /dev/mapper/mpath1 or /dev/mapper/mpath2 the
priorities don't come into play at all. Data starts going to /dev/sdc
for /dev/mapper/mpath2 & /dev/sdb for /dev/mapper/mpath1, which totally
by-passes the set priorities. Below is a list of all the conf files and
scripts I'm using.
/etc/multipath.conf
--------------------
defaults {
udev_dir /dev
polling_interval 1
selector "round-robin 0"
path_grouping_policy multibus
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
prio_callout "/bin/bash
/root/MultipathScripts/mpath_prio_alt %n"
path_checker tur
rr_min_io 128
max_fds 8192
rr_weight priorities
failback immediate
no_path_retry queue
user_friendly_names yes
}
/root/MultipathScripts/mpath_prio_alt :
---------------------------------------
#!/bin/bash
# if not passed any device name, return a priority of 0
if [ -z "${1}" ];then
echo 0
exit
fi
ENTRY="$(ls -l1 /dev/disk/by-path | grep /${1}'$')"
DEV="${ENTRY##* ip-}"
if [ "$DEV" = "${ENTRY}" ];then #This is not an iSCSI device
echo 0
exit
fi
# stripping $ENTRY to obtain the IP:Port-iscsi-iqn-lunNumber
DEV="${ENTRY##* ip-}"
#DEV="${DEV%% ->*}" # the pattern changed in CentOS 5.3
#DEV="$(echo ${DEV} | sed 's/-lun-[0-9][0-9]* ->.*//')"
DEV="${DEV%%-lun-[0-9]* ->*}"
echo $(grep ${DEV} /root/MultipathScripts/iscsi.list | cut -f2)
/root/MultipathScripts/iscsi.list:
----------------------------------
192.xxx.xxx.103:3260-iscsi-iqn.2008-07.com.company:stoarge-2 1
192.xxx.xxx.106:3260-iscsi-iqn.2008-07.com.company:stoarge-2 0
192.xxx.xxx.103:3260-iscsi-iqn.2008-07.com.company:stoarge-1 0
192.xxx.xxx.106:3260-iscsi-iqn.2008-07.com.company:stoarge-1 1
Is there something I'm doing wrong? I would like to be able to define
the priorities per device, and ensure that data only traverses on the
lower priority path when
a) a failure to the first path (path with a higher priority) occures
b) no other path with a higher priority exists
--
Akshay Lal
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: User specific priorities on for iscsi paths doesn't seem to work
2009-08-07 20:25 User specific priorities on for iscsi paths doesn't seem to work Akshay Lal
@ 2009-08-07 20:43 ` Mike Snitzer
2009-08-07 21:07 ` Akshay Lal
2009-08-07 20:59 ` John A. Sullivan III
1 sibling, 1 reply; 8+ messages in thread
From: Mike Snitzer @ 2009-08-07 20:43 UTC (permalink / raw)
To: Akshay Lal; +Cc: device-mapper development, John Quigley
On Fri, Aug 07 2009 at 4:25pm -0400,
Akshay Lal <alal@cleversafe.com> wrote:
> I'm having a few issues with path priorities. It seems that the choice
> of path to use during I/O is independent of the user defined priorities
> for each path.
>
> I am setting the priorities by executing writing a script that is used
> by prio_callout. This seems to work when I execute multipath -ll since
> all the specified priorities show up correctly. (the
> path_grouping_policy being used is failover)
...
> Is there something I'm doing wrong? I would like to be able to define
> the priorities per device, and ensure that data only traverses on the
> lower priority path when
> a) a failure to the first path (path with a higher priority) occures
> b) no other path with a higher priority exists
Do things behave as you'd like if you change path_grouping_policy to
'group_by_prio'?
Mike
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: User specific priorities on for iscsi paths doesn't seem to work
2009-08-07 20:25 User specific priorities on for iscsi paths doesn't seem to work Akshay Lal
2009-08-07 20:43 ` Mike Snitzer
@ 2009-08-07 20:59 ` John A. Sullivan III
1 sibling, 0 replies; 8+ messages in thread
From: John A. Sullivan III @ 2009-08-07 20:59 UTC (permalink / raw)
To: device-mapper development; +Cc: John Quigley
On Fri, 2009-08-07 at 15:25 -0500, Akshay Lal wrote:
> I'm having a few issues with path priorities. It seems that the choice
> of path to use during I/O is independent of the user defined priorities
> for each path.
>
> I am setting the priorities by executing writing a script that is used
> by prio_callout. This seems to work when I execute multipath -ll since
> all the specified priorities show up correctly. (the
> path_grouping_policy being used is failover)
>
> multipath -ll:
> --------------
> mpath2 (244534e3833623961) dm-1 DSNET,Dispersed Store
> [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
> \_ round-robin 0 [prio=10][enabled]
> \_ 85:0:0:0 sdc 8:32 [active][ready]
> \_ round-robin 0 [prio=5][enabled]
> \_ 87:0:0:0 sde 8:64 [active][ready]
> mpath1 (244534e3266616134) dm-0 DSNET,Dispersed Store
> [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
> \_ round-robin 0 [prio=5][enabled]
> \_ 84:0:0:0 sdb 8:16 [active][ready]
> \_ round-robin 0 [prio=10][enabled]
> \_ 86:0:0:0 sdd 8:48 [active][ready]
>
> At this point when I dd to /dev/mapper/mpath1 or /dev/mapper/mpath2 the
> priorities don't come into play at all. Data starts going to /dev/sdc
> for /dev/mapper/mpath2 & /dev/sdb for /dev/mapper/mpath1, which totally
> by-passes the set priorities. Below is a list of all the conf files and
> scripts I'm using.
>
>
>
> /etc/multipath.conf
> --------------------
> defaults {
> udev_dir /dev
> polling_interval 1
> selector "round-robin 0"
> path_grouping_policy multibus
> getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
> prio_callout "/bin/bash
> /root/MultipathScripts/mpath_prio_alt %n"
> path_checker tur
> rr_min_io 128
> max_fds 8192
> rr_weight priorities
> failback immediate
> no_path_retry queue
> user_friendly_names yes
> }
>
>
> /root/MultipathScripts/mpath_prio_alt :
> ---------------------------------------
> #!/bin/bash
> # if not passed any device name, return a priority of 0
> if [ -z "${1}" ];then
> echo 0
> exit
> fi
>
> ENTRY="$(ls -l1 /dev/disk/by-path | grep /${1}'$')"
> DEV="${ENTRY##* ip-}"
> if [ "$DEV" = "${ENTRY}" ];then #This is not an iSCSI device
> echo 0
> exit
> fi
>
> # stripping $ENTRY to obtain the IP:Port-iscsi-iqn-lunNumber
> DEV="${ENTRY##* ip-}"
> #DEV="${DEV%% ->*}" # the pattern changed in CentOS 5.3
> #DEV="$(echo ${DEV} | sed 's/-lun-[0-9][0-9]* ->.*//')"
> DEV="${DEV%%-lun-[0-9]* ->*}"
>
> echo $(grep ${DEV} /root/MultipathScripts/iscsi.list | cut -f2)
>
>
> /root/MultipathScripts/iscsi.list:
> ----------------------------------
> 192.xxx.xxx.103:3260-iscsi-iqn.2008-07.com.company:stoarge-2 1
> 192.xxx.xxx.106:3260-iscsi-iqn.2008-07.com.company:stoarge-2 0
> 192.xxx.xxx.103:3260-iscsi-iqn.2008-07.com.company:stoarge-1 0
> 192.xxx.xxx.106:3260-iscsi-iqn.2008-07.com.company:stoarge-1 1
>
>
> Is there something I'm doing wrong? I would like to be able to define
> the priorities per device, and ensure that data only traverses on the
> lower priority path when
> a) a failure to the first path (path with a higher priority) occures
> b) no other path with a higher priority exists
<snip>
I believe to do what you want you will need two changes. First, set
path_grouping_policy to failover.
Second, multipathd needs to have everything in memory so not only do you
need /bin/bash loaded into memory (via your prio-callout line in
defaults) but you must also load your script into memory. We did this
with a dummy device. Here is our devices section of multipath.conf:
devices {
device {
vendor "NEXENTA"
product "COMSTAR"
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
features "0"
hardware_handler "0"
# path_grouping_policy failover
rr_weight uniform
# rr_min_io 1000
path_checker tur
}
device {
vendor "dummy"
product "Used_to_load_mpath_prio_ssi_into_memory"
prio_callout "/sbin/mpath_prio_ssi %n"
}
}
Hope this helps - John
--
John A. Sullivan III
Open Source Development Corporation
+1 207-985-7880
jsullivan@opensourcedevel.com
http://www.spiritualoutreach.com
Making Christianity intelligible to secular society
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: User specific priorities on for iscsi paths doesn't seem to work
2009-08-07 20:43 ` Mike Snitzer
@ 2009-08-07 21:07 ` Akshay Lal
2009-08-07 21:21 ` Mike Snitzer
0 siblings, 1 reply; 8+ messages in thread
From: Akshay Lal @ 2009-08-07 21:07 UTC (permalink / raw)
To: Mike Snitzer; +Cc: device-mapper development, John Quigley
Mike:
It seems that if I were to set the path_grouping_policy to
"group_by_prio", then it seems to be working similar to a multibus
configuration. What I would like is for within a single multipath group,
(say mpath1), specify a primary path and an alternate/failover path. If
I can make this configurable via user land tool that'd be great. In this
vein, I had considered priorities with hope that if I can set the
priority of a certain path within a group then the path with the highest
priority will always be chosen and the other path (with the lower
priority) will only come into play when the primary goes down.
Below is the output of the multipath -ll & conf file when setting the
path_grouping_policy to group_by_prio.
multipath -ll:
--------------
mpath2 (244534e3833623961) dm-1 DSNET,Dispersed Store
[size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=15][enabled]
\_ 85:0:0:0 sdc 8:32 [active][ready]
\_ 87:0:0:0 sde 8:64 [active][ready]
mpath1 (244534e3266616134) dm-0 DSNET,Dispersed Store
[size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=15][active]
\_ 84:0:0:0 sdb 8:16 [active][ready]
\_ 86:0:0:0 sdd 8:48 [active][ready]
/etc/multipath.conf:
--------------------
defaults {
udev_dir /dev
polling_interval 1
selector "round-robin 0"
path_grouping_policy group_by_prio
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
prio_callout "/bin/bash
/root/MultipathScripts/mpath_prio_alt %n"
path_checker tur
rr_min_io 128
max_fds 8192
rr_weight priorities
failback immediate
no_path_retry queue
user_friendly_names yes
}
Mike Snitzer wrote:
> On Fri, Aug 07 2009 at 4:25pm -0400,
> Akshay Lal <alal@cleversafe.com> wrote:
>
>
>> I'm having a few issues with path priorities. It seems that the choice
>> of path to use during I/O is independent of the user defined priorities
>> for each path.
>>
>> I am setting the priorities by executing writing a script that is used
>> by prio_callout. This seems to work when I execute multipath -ll since
>> all the specified priorities show up correctly. (the
>> path_grouping_policy being used is failover)
>>
>
> ...
>
>
>> Is there something I'm doing wrong? I would like to be able to define
>> the priorities per device, and ensure that data only traverses on the
>> lower priority path when
>> a) a failure to the first path (path with a higher priority) occures
>> b) no other path with a higher priority exists
>>
>
> Do things behave as you'd like if you change path_grouping_policy to
> 'group_by_prio'?
>
> Mike
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: User specific priorities on for iscsi paths doesn't seem to work
2009-08-07 21:07 ` Akshay Lal
@ 2009-08-07 21:21 ` Mike Snitzer
2009-08-07 21:28 ` Akshay Lal
2009-08-07 21:50 ` John A. Sullivan III
0 siblings, 2 replies; 8+ messages in thread
From: Mike Snitzer @ 2009-08-07 21:21 UTC (permalink / raw)
To: Akshay Lal; +Cc: device-mapper development, John Quigley
On Fri, Aug 07 2009 at 5:07pm -0400,
Akshay Lal <alal@cleversafe.com> wrote:
> Mike Snitzer wrote:
>> On Fri, Aug 07 2009 at 4:25pm -0400,
>> Akshay Lal <alal@cleversafe.com> wrote:
>>
>>
>>> I'm having a few issues with path priorities. It seems that the
>>> choice of path to use during I/O is independent of the user defined
>>> priorities for each path.
>>>
>>> I am setting the priorities by executing writing a script that is
>>> used by prio_callout. This seems to work when I execute multipath
>>> -ll since all the specified priorities show up correctly. (the
>>> path_grouping_policy being used is failover)
>>>
>>
>> ...
>>
>>
>>> Is there something I'm doing wrong? I would like to be able to define
>>> the priorities per device, and ensure that data only traverses on
>>> the lower priority path when
>>> a) a failure to the first path (path with a higher priority) occures
>>> b) no other path with a higher priority exists
>>>
>>
>> Do things behave as you'd like if you change path_grouping_policy to
>> 'group_by_prio'?
>>
>> Mike
>>
> Mike:
>
> It seems that if I were to set the path_grouping_policy to
> "group_by_prio", then it seems to be working similar to a multibus
> configuration. What I would like is for within a single multipath group,
> (say mpath1), specify a primary path and an alternate/failover path. If
> I can make this configurable via user land tool that'd be great. In this
> vein, I had considered priorities with hope that if I can set the
> priority of a certain path within a group then the path with the highest
> priority will always be chosen and the other path (with the lower
> priority) will only come into play when the primary goes down.
>
> Below is the output of the multipath -ll & conf file when setting the
> path_grouping_policy to group_by_prio.
>
>
> multipath -ll:
> --------------
> mpath2 (244534e3833623961) dm-1 DSNET,Dispersed Store
> [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
> \_ round-robin 0 [prio=15][enabled]
> \_ 85:0:0:0 sdc 8:32 [active][ready]
> \_ 87:0:0:0 sde 8:64 [active][ready]
> mpath1 (244534e3266616134) dm-0 DSNET,Dispersed Store
> [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
> \_ round-robin 0 [prio=15][active]
> \_ 84:0:0:0 sdb 8:16 [active][ready]
> \_ 86:0:0:0 sdd 8:48 [active][ready]
>
>
> /etc/multipath.conf:
> --------------------
> defaults {
> udev_dir /dev
> polling_interval 1
> selector "round-robin 0"
> path_grouping_policy group_by_prio
> getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
> prio_callout "/bin/bash
> /root/MultipathScripts/mpath_prio_alt %n"
> path_checker tur
> rr_min_io 128
> max_fds 8192
> rr_weight priorities
> failback immediate
> no_path_retry queue
> user_friendly_names yes
> }
Please don't top-post.
I'm pretty sure John meant to say "group_by_prio" rather than "failover"
in his initial reply to this thread. John originally got this insight
(dummy device section et. al. applies to RHEL 5.3) back in April:
https://www.redhat.com/archives/dm-devel/2009-April/msg00157.html
Which multipath/distro are you using?
Mike
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: User specific priorities on for iscsi paths doesn't seem to work
2009-08-07 21:21 ` Mike Snitzer
@ 2009-08-07 21:28 ` Akshay Lal
2009-08-07 21:31 ` Akshay Lal
2009-08-07 21:50 ` John A. Sullivan III
1 sibling, 1 reply; 8+ messages in thread
From: Akshay Lal @ 2009-08-07 21:28 UTC (permalink / raw)
To: Mike Snitzer; +Cc: device-mapper development, John Quigley
Mike Snitzer wrote:
> On Fri, Aug 07 2009 at 5:07pm -0400,
> Akshay Lal <alal@cleversafe.com> wrote:
>
>
>> Mike Snitzer wrote:
>>
>>> On Fri, Aug 07 2009 at 4:25pm -0400,
>>> Akshay Lal <alal@cleversafe.com> wrote:
>>>
>>>
>>>
>>>> I'm having a few issues with path priorities. It seems that the
>>>> choice of path to use during I/O is independent of the user defined
>>>> priorities for each path.
>>>>
>>>> I am setting the priorities by executing writing a script that is
>>>> used by prio_callout. This seems to work when I execute multipath
>>>> -ll since all the specified priorities show up correctly. (the
>>>> path_grouping_policy being used is failover)
>>>>
>>>>
>>> ...
>>>
>>>
>>>
>>>> Is there something I'm doing wrong? I would like to be able to define
>>>> the priorities per device, and ensure that data only traverses on
>>>> the lower priority path when
>>>> a) a failure to the first path (path with a higher priority) occures
>>>> b) no other path with a higher priority exists
>>>>
>>>>
>>> Do things behave as you'd like if you change path_grouping_policy to
>>> 'group_by_prio'?
>>>
>>> Mike
>>>
>>>
>
>
>
>> Mike:
>>
>> It seems that if I were to set the path_grouping_policy to
>> "group_by_prio", then it seems to be working similar to a multibus
>> configuration. What I would like is for within a single multipath group,
>> (say mpath1), specify a primary path and an alternate/failover path. If
>> I can make this configurable via user land tool that'd be great. In this
>> vein, I had considered priorities with hope that if I can set the
>> priority of a certain path within a group then the path with the highest
>> priority will always be chosen and the other path (with the lower
>> priority) will only come into play when the primary goes down.
>>
>> Below is the output of the multipath -ll & conf file when setting the
>> path_grouping_policy to group_by_prio.
>>
>>
>> multipath -ll:
>> --------------
>> mpath2 (244534e3833623961) dm-1 DSNET,Dispersed Store
>> [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
>> \_ round-robin 0 [prio=15][enabled]
>> \_ 85:0:0:0 sdc 8:32 [active][ready]
>> \_ 87:0:0:0 sde 8:64 [active][ready]
>> mpath1 (244534e3266616134) dm-0 DSNET,Dispersed Store
>> [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
>> \_ round-robin 0 [prio=15][active]
>> \_ 84:0:0:0 sdb 8:16 [active][ready]
>> \_ 86:0:0:0 sdd 8:48 [active][ready]
>>
>>
>> /etc/multipath.conf:
>> --------------------
>> defaults {
>> udev_dir /dev
>> polling_interval 1
>> selector "round-robin 0"
>> path_grouping_policy group_by_prio
>> getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
>> prio_callout "/bin/bash
>> /root/MultipathScripts/mpath_prio_alt %n"
>> path_checker tur
>> rr_min_io 128
>> max_fds 8192
>> rr_weight priorities
>> failback immediate
>> no_path_retry queue
>> user_friendly_names yes
>> }
>>
>
>
> Please don't top-post.
>
> I'm pretty sure John meant to say "group_by_prio" rather than "failover"
> in his initial reply to this thread. John originally got this insight
> (dummy device section et. al. applies to RHEL 5.3) back in April:
>
> https://www.redhat.com/archives/dm-devel/2009-April/msg00157.html
>
> Which multipath/distro are you using?
>
> Mike
>
I tried out John's approach as well and it still seems to be giving me
the similar results to what I mentioned before, i.e., replicating multibus
Priority list:
--------------
192.168.7.103:3260-iscsi-iqn.2008-07.com.cleversafe:vault-2 5
192.168.7.106:3260-iscsi-iqn.2008-07.com.cleversafe:vault-2 10
192.168.7.103:3260-iscsi-iqn.2008-07.com.cleversafe:vault-1 10
192.168.7.106:3260-iscsi-iqn.2008-07.com.cleversafe:vault-1 5
iSCSI disk associated with iSCSI sessions:
------------------------------------------
Target: iqn.2008-07.com.cleversafe:vault-1
Current Portal: 192.168.7.106:3260,1
Persistent Portal: 192.168.7.106:3260,1
Attached scsi disk sdb State: running
Current Portal: 192.168.7.103:3260,1
Persistent Portal: 192.168.7.103:3260,1
Attached scsi disk sdd State: running
Target: iqn.2008-07.com.cleversafe:vault-2
Current Portal: 192.168.7.106:3260,1
Persistent Portal: 192.168.7.106:3260,1
Attached scsi disk sdc State: running
Current Portal: 192.168.7.103:3260,1
Persistent Portal: 192.168.7.103:3260,1
Attached scsi disk sde State: running
multipath -ll:
---------------
mpath2 (244534e3833623961) dm-1 DSNET,Dispersed Store
[size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=15][enabled]
\_ 85:0:0:0 sdc 8:32 [active][ready]
\_ 87:0:0:0 sde 8:64 [active][ready]
mpath1 (244534e3266616134) dm-0 DSNET,Dispersed Store
[size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=15][enabled]
\_ 84:0:0:0 sdb 8:16 [active][ready]
\_ 86:0:0:0 sdd 8:48 [active][ready]
Versions being used:
dm-multipath: device-mapper-multipath-0.4.7-23.el5_3.4
kernel: 2.6.29.6
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: User specific priorities on for iscsi paths doesn't seem to work
2009-08-07 21:28 ` Akshay Lal
@ 2009-08-07 21:31 ` Akshay Lal
0 siblings, 0 replies; 8+ messages in thread
From: Akshay Lal @ 2009-08-07 21:31 UTC (permalink / raw)
To: Mike Snitzer; +Cc: device-mapper development, John Quigley
Akshay Lal wrote:
> Mike Snitzer wrote:
>> On Fri, Aug 07 2009 at 5:07pm -0400,
>> Akshay Lal <alal@cleversafe.com> wrote:
>>
>>
>>> Mike Snitzer wrote:
>>>
>>>> On Fri, Aug 07 2009 at 4:25pm -0400,
>>>> Akshay Lal <alal@cleversafe.com> wrote:
>>>>
>>>>
>>>>> I'm having a few issues with path priorities. It seems that the
>>>>> choice of path to use during I/O is independent of the user
>>>>> defined priorities for each path.
>>>>>
>>>>> I am setting the priorities by executing writing a script that is
>>>>> used by prio_callout. This seems to work when I execute multipath
>>>>> -ll since all the specified priorities show up correctly. (the
>>>>> path_grouping_policy being used is failover)
>>>>>
>>>> ...
>>>>
>>>>
>>>>> Is there something I'm doing wrong? I would like to be able to
>>>>> define the priorities per device, and ensure that data only
>>>>> traverses on the lower priority path when
>>>>> a) a failure to the first path (path with a higher priority) occures
>>>>> b) no other path with a higher priority exists
>>>>>
>>>> Do things behave as you'd like if you change path_grouping_policy to
>>>> 'group_by_prio'?
>>>>
>>>> Mike
>>>>
>>
>>
>>
>>> Mike:
>>>
>>> It seems that if I were to set the path_grouping_policy to
>>> "group_by_prio", then it seems to be working similar to a multibus
>>> configuration. What I would like is for within a single multipath
>>> group, (say mpath1), specify a primary path and an
>>> alternate/failover path. If I can make this configurable via user
>>> land tool that'd be great. In this vein, I had considered
>>> priorities with hope that if I can set the priority of a certain
>>> path within a group then the path with the highest priority will
>>> always be chosen and the other path (with the lower priority) will
>>> only come into play when the primary goes down.
>>>
>>> Below is the output of the multipath -ll & conf file when setting
>>> the path_grouping_policy to group_by_prio.
>>>
>>>
>>> multipath -ll:
>>> --------------
>>> mpath2 (244534e3833623961) dm-1 DSNET,Dispersed Store
>>> [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
>>> \_ round-robin 0 [prio=15][enabled]
>>> \_ 85:0:0:0 sdc 8:32 [active][ready]
>>> \_ 87:0:0:0 sde 8:64 [active][ready]
>>> mpath1 (244534e3266616134) dm-0 DSNET,Dispersed Store
>>> [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
>>> \_ round-robin 0 [prio=15][active]
>>> \_ 84:0:0:0 sdb 8:16 [active][ready]
>>> \_ 86:0:0:0 sdd 8:48 [active][ready]
>>>
>>>
>>> /etc/multipath.conf:
>>> --------------------
>>> defaults {
>>> udev_dir /dev
>>> polling_interval 1
>>> selector "round-robin 0"
>>> path_grouping_policy group_by_prio
>>> getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
>>> prio_callout "/bin/bash
>>> /root/MultipathScripts/mpath_prio_alt %n"
>>> path_checker tur
>>> rr_min_io 128
>>> max_fds 8192
>>> rr_weight priorities
>>> failback immediate
>>> no_path_retry queue
>>> user_friendly_names yes
>>> }
>>>
>>
>>
>> Please don't top-post.
>>
>> I'm pretty sure John meant to say "group_by_prio" rather than "failover"
>> in his initial reply to this thread. John originally got this insight
>> (dummy device section et. al. applies to RHEL 5.3) back in April:
>>
>> https://www.redhat.com/archives/dm-devel/2009-April/msg00157.html
>>
>> Which multipath/distro are you using?
>>
>> Mike
>>
>
> I tried out John's approach as well and it still seems to be giving me
> the similar results to what I mentioned before, i.e., replicating
> multibus
>
>
> Priority list:
> --------------
> 192.168.7.103:3260-iscsi-iqn.2008-07.com.cleversafe:vault-2 5
> 192.168.7.106:3260-iscsi-iqn.2008-07.com.cleversafe:vault-2 10
> 192.168.7.103:3260-iscsi-iqn.2008-07.com.cleversafe:vault-1 10
> 192.168.7.106:3260-iscsi-iqn.2008-07.com.cleversafe:vault-1 5
>
> iSCSI disk associated with iSCSI sessions:
> ------------------------------------------
> Target: iqn.2008-07.com.cleversafe:vault-1
> Current Portal: 192.168.7.106:3260,1
> Persistent Portal: 192.168.7.106:3260,1
> Attached scsi disk sdb State: running
> Current Portal: 192.168.7.103:3260,1
> Persistent Portal: 192.168.7.103:3260,1
> Attached scsi disk sdd State: running
>
> Target: iqn.2008-07.com.cleversafe:vault-2
> Current Portal: 192.168.7.106:3260,1
> Persistent Portal: 192.168.7.106:3260,1
> Attached scsi disk sdc State: running
> Current Portal: 192.168.7.103:3260,1
> Persistent Portal: 192.168.7.103:3260,1
> Attached scsi disk sde State: running
>
>
> multipath -ll:
> ---------------
> mpath2 (244534e3833623961) dm-1 DSNET,Dispersed Store
> [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
> \_ round-robin 0 [prio=15][enabled]
> \_ 85:0:0:0 sdc 8:32 [active][ready]
> \_ 87:0:0:0 sde 8:64 [active][ready]
> mpath1 (244534e3266616134) dm-0 DSNET,Dispersed Store
> [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
> \_ round-robin 0 [prio=15][enabled]
> \_ 84:0:0:0 sdb 8:16 [active][ready]
> \_ 86:0:0:0 sdd 8:48 [active][ready]
>
>
>
> Versions being used:
> dm-multipath: device-mapper-multipath-0.4.7-23.el5_3.4
> kernel: 2.6.29.6
>
>
Sorry I forgot to add the multipath conf file
/etc/multipath.conf :
---------------------
# Blacklist all devices by default. Remove this to enable multipathing
# on the default devices.
#blacklist {
# devnode "*"
#}
##
## Defaults for the multipath daemon
##
#
defaults {
udev_dir /dev
polling_interval 1
selector "round-robin 0"
path_grouping_policy group_by_prio
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
prio_callout "/bin/bash /sbin/mpath_prio_alt %n"
path_checker tur
# rr_min_io 128
max_fds 8192
rr_weight uniform
failback immediate
no_path_retry queue
user_friendly_names yes
}
devices {
device {
vendor "dummy"
product "dummy"
prio_callout "/sbin/mpath_prio_alt %n"
}
}
--
Akshay Lal
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Re: User specific priorities on for iscsi paths doesn't seem to work
2009-08-07 21:21 ` Mike Snitzer
2009-08-07 21:28 ` Akshay Lal
@ 2009-08-07 21:50 ` John A. Sullivan III
1 sibling, 0 replies; 8+ messages in thread
From: John A. Sullivan III @ 2009-08-07 21:50 UTC (permalink / raw)
To: device-mapper development; +Cc: Akshay Lal, John Quigley
On Fri, 2009-08-07 at 17:21 -0400, Mike Snitzer wrote:
> On Fri, Aug 07 2009 at 5:07pm -0400,
> Akshay Lal <alal@cleversafe.com> wrote:
>
> > Mike Snitzer wrote:
> >> On Fri, Aug 07 2009 at 4:25pm -0400,
> >> Akshay Lal <alal@cleversafe.com> wrote:
> >>
> >>
> >>> I'm having a few issues with path priorities. It seems that the
> >>> choice of path to use during I/O is independent of the user defined
> >>> priorities for each path.
> >>>
> >>> I am setting the priorities by executing writing a script that is
> >>> used by prio_callout. This seems to work when I execute multipath
> >>> -ll since all the specified priorities show up correctly. (the
> >>> path_grouping_policy being used is failover)
> >>>
> >>
> >> ...
> >>
> >>
> >>> Is there something I'm doing wrong? I would like to be able to define
> >>> the priorities per device, and ensure that data only traverses on
> >>> the lower priority path when
> >>> a) a failure to the first path (path with a higher priority) occures
> >>> b) no other path with a higher priority exists
> >>>
> >>
> >> Do things behave as you'd like if you change path_grouping_policy to
> >> 'group_by_prio'?
> >>
> >> Mike
> >>
>
>
> > Mike:
> >
> > It seems that if I were to set the path_grouping_policy to
> > "group_by_prio", then it seems to be working similar to a multibus
> > configuration. What I would like is for within a single multipath group,
> > (say mpath1), specify a primary path and an alternate/failover path. If
> > I can make this configurable via user land tool that'd be great. In this
> > vein, I had considered priorities with hope that if I can set the
> > priority of a certain path within a group then the path with the highest
> > priority will always be chosen and the other path (with the lower
> > priority) will only come into play when the primary goes down.
> >
> > Below is the output of the multipath -ll & conf file when setting the
> > path_grouping_policy to group_by_prio.
> >
> >
> > multipath -ll:
> > --------------
> > mpath2 (244534e3833623961) dm-1 DSNET,Dispersed Store
> > [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
> > \_ round-robin 0 [prio=15][enabled]
> > \_ 85:0:0:0 sdc 8:32 [active][ready]
> > \_ 87:0:0:0 sde 8:64 [active][ready]
> > mpath1 (244534e3266616134) dm-0 DSNET,Dispersed Store
> > [size=47G][features=1 queue_if_no_path][hwhandler=0][rw]
> > \_ round-robin 0 [prio=15][active]
> > \_ 84:0:0:0 sdb 8:16 [active][ready]
> > \_ 86:0:0:0 sdd 8:48 [active][ready]
> >
> >
> > /etc/multipath.conf:
> > --------------------
> > defaults {
> > udev_dir /dev
> > polling_interval 1
> > selector "round-robin 0"
> > path_grouping_policy group_by_prio
> > getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
> > prio_callout "/bin/bash
> > /root/MultipathScripts/mpath_prio_alt %n"
> > path_checker tur
> > rr_min_io 128
> > max_fds 8192
> > rr_weight priorities
> > failback immediate
> > no_path_retry queue
> > user_friendly_names yes
> > }
>
>
> Please don't top-post.
>
> I'm pretty sure John meant to say "group_by_prio" rather than "failover"
> in his initial reply to this thread. John originally got this insight
> (dummy device section et. al. applies to RHEL 5.3) back in April:
>
> https://www.redhat.com/archives/dm-devel/2009-April/msg00157.html
>
> Which multipath/distro are you using?
>
> Mike
<snip>
Actually, we are using failover in our environment. Perhaps I have
missed something but it is working well for us as far as I can tell. We
have a single path unless it fails in which case we go to the next path
in priority order. We are handling load balancing across paths in a
different way as we found the performance of multibus was less than we
could achieve otherwise. Then again, this is not an area of expertise
for me. Thanks - John
--
John A. Sullivan III
Open Source Development Corporation
+1 207-985-7880
jsullivan@opensourcedevel.com
http://www.spiritualoutreach.com
Making Christianity intelligible to secular society
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2009-08-07 21:50 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-07 20:25 User specific priorities on for iscsi paths doesn't seem to work Akshay Lal
2009-08-07 20:43 ` Mike Snitzer
2009-08-07 21:07 ` Akshay Lal
2009-08-07 21:21 ` Mike Snitzer
2009-08-07 21:28 ` Akshay Lal
2009-08-07 21:31 ` Akshay Lal
2009-08-07 21:50 ` John A. Sullivan III
2009-08-07 20:59 ` John A. Sullivan III
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.