All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: device-mapper development <dm-devel@redhat.com>
Subject: Re: path priorities on Sun's 6140
Date: Mon, 17 Sep 2007 08:21:50 +0200	[thread overview]
Message-ID: <46EE1CFE.9070807@suse.de> (raw)
In-Reply-To: <66F461DD7EDEEF4AA928FCC80B425B520468B7@c2kp01mail.cucbc.com>

James Fillman wrote:
> I'm running RHEL5 with QLogic HBA's and a Sun 6140 SAN. The host type
> I'm using for my servers is 'Solaris (with DMP)'. This turns AVT mode
> one. For some reason, the two controllers are returning the same
> priority value to my priority call out program (mpath_prio_tpc).
> 
> Can anyone briefly explain what the mpath_prio_tpc utility does and
> where these priority values come from?
> 
> The output of multipath -v2 -ll is:
> 
> [root@vlxq02md cluster]# multipath -v2 -ll
> mdi_logging (3600a0b800029f8e80000064d46e565e7) dm-9 SUN,CSM200_R
> [size=100G][features=1 queue_if_no_path][hwhandler=0]
> \_ round-robin 0 [prio=0][active]
>  \_ 1:0:0:2 sdd 8:48  [active][ready]
>  \_ 1:0:1:2 sdg 8:96  [active][ready]
> 
> Where is should be:
> 
> [root@vlxq02md cluster]# multipath -v2 -ll
> mdi_logging (3600a0b800029f8e80000064d46e565e7) dm-9 SUN,CSM200_R
> [size=100G][features=1 queue_if_no_path][hwhandler=0]
> \_ round-robin 0 [prio=3][active]
>  \_ 1:0:0:2 sdd 8:48  [active][ready]
> \_ round-robin 0 [prio=0][active]
>  \_ 1:0:1:2 sdg 8:96  [active][ready]
> 
> I've gotten this working at my other data center with the same
> hardware/software configuration. At the moment, I'm pointing my finger
> at the SAN hardware but I don't have much to back it up with.
> 
> here's my multipath.conf file:
> 
> blacklist
> {
>          devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st|sda)[0-9]*"
> }
> 
> defaults
> {
>         udev_dir                /dev
>         polling_interval        10
>         selector                "round-robin 0"
>         path_grouping_policy    group_by_prio
>         getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
>         prio_callout            "/sbin/mpath_prio_tpc /dev/%n"
>         path_checker            readsector0
>         rr_min_io               100
>         rr_weight               priorities
>         failback                immediate
>         no_path_retry           queue
>         user_friendly_name      yes
> }
> 
> devnode_blacklist
> {
>         devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st|sda)[0-9]*"
>         devnode "^hd[a-z][0-9]*"
>         devnode "^cciss!c[0-9]d[0-9]*"
> }
> 
> multipaths
> {
>          multipath
>         {
>                 wwid                   3600a0b800029cc400000120946e56616
>                 alias                  mdi_deploys
>         }
>          multipath
>         {
>                 wwid                   3600a0b800029f8e80000064d46e565e7
>                 alias                  mdi_logging
>         }
>          multipath
>         {
>                 wwid                   3600a0b800029cc4000001140468531fa
>                 alias                  primary_logging
>         }
> }
> 
> devices
> {
>         device
>         {
>                 vendor                  "SUN"
>                 product                 "CSM200_R"
>                 path_grouping_policy    group_by_prio
>                 path_checker            readsector0
>                 prio_callout            "/sbin/mpath_prio_tpc /dev/%n"
>                 getuid_callout          "/sbin/scsi_id -g -u -s
> /block/%n"
>                 rr_weight               uniform
>                 rr_min_io               1000
>                 features                "1 queue_if_no_path"
>         }
> }
> 
Oh, please _don't_ use 

rr_weight priorities

The implementation is broken (I send a patch once but it got rejected)
and it's completely useless when using 'group_by_prio'.
rr_weight = priorities is meant to adjust the round-robin scheduler by
the priority of each path. However, when using group_by_prio you'll the
same priority for all paths in a group. So effectively you only increase
(actually, you would increase if it would be working properly) the rr_min_io
value by the priority value.
So please try without this setting.

As for the AVT setting: sg_vpd can decode the RDAC mode pages; please send
the output of

sg_vpd -p vac <devname>

That should give us some hints what's going on here.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)

      parent reply	other threads:[~2007-09-17  6:21 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-14 22:02 path priorities on Sun's 6140 James Fillman
2007-09-15  6:26 ` Eckebrecht von Pappenheim
2007-09-15  9:08 ` Tore Anderson
2007-09-17 18:17   ` James Fillman
2007-09-17 18:36     ` James Fillman
2007-09-18  7:39       ` Tore Anderson
2007-09-21 22:55         ` James Fillman
2007-09-24  6:47           ` Tore Anderson
2007-09-24 16:56             ` James Fillman
2007-09-18 14:02       ` Hannes Reinecke
2007-09-17  6:21 ` Hannes Reinecke [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46EE1CFE.9070807@suse.de \
    --to=hare@suse.de \
    --cc=dm-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.