[dm-devel] path priorities on Sun's 6140

Tore Anderson tore at linpro.no
Sat Sep 15 09:08:36 UTC 2007


* James Fillman

> 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).

   Try path_grouping_policy group_by_serial?

> Can anyone briefly explain what the mpath_prio_tpc utility does and 
> where these priority values come from?

   It calls out to the supplied SCSI device and returns a different
  integer depending on if the controller is the preferred owner for the
  volume and if it actually is.  The values has changed quite a bit from
  version to version, but if I recall correctly they are in your version:

   Device is a path to the preferred and active controller = 6
   Device is a path to the preferred and inactive controller = 4
   Device is a path to the least preferred and active controller = 3
   Device is a path to the least preferred and inactive controller = 1

   Since you have group_by_prio and they end up in the same path group it
  seems the prio callout doesn't work (you can test this yourself by
  running «mpath_prio_tpc /dev/sdx»).  When I used AVT I set the hosts to
  host type AIX_FO, which seemed to work fine for me at least.  Try that?

   You're also using path_checker readsector0 with AVT which is really
  bad.  Every time multipathd checks a path to the passive controller the
  volume vil move there, which will interrupt I/O for several seconds.
  Use the tur checker instead.

   However, are you _really_ sure you want AVT mode?  Support for RDAC
  mode was recently added to dm-multipath (both a hardware handler and
  a path checker), and using this is normally vastly superior to AVT
  mode.  The Linux kernel itself (partition scan on boot) as well as a
  lot of applications (LVM, mdadm, fdisk, etc.) believe reading from
  block devices is a harmless thing to do.  However with AVT mode this
  I/O will cause a volume to transfer and I/O to be interrupted, and
  paths will fail.  With AVT you won't be able to boot node A in a
  cluster without interrupting the I/O flow of the rest of the nodes, nor
  manage LVM on any node in a cluster without also interrupting I/O
  (unless you've configured LVM to stay away from your multipathed
  devices).

   PS:  If you have I/O failures happening on your hosts when you do
  changes to the storage domains setup, this is due to a mis-feature in
  the 6140 that makes it dim its fibre ports whenever a change is made.
  They said this was done to make all hosts relogin and automatically
  discover new volumes with no manual rescan needed, but the fabric
  relogin interrupts I/O and causes path failures.  But there is hope.  I
  was told yesterday that in the next firmware release we can opt to
  toggle this «feature» off.  Go pester Sun to get it.  ;-)

Regards
-- 
Tore Anderson




More information about the dm-devel mailing list