From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hannes Reinecke Subject: Re: HDS multipathing prioritizer not doing what it should Date: Thu, 10 May 2012 14:48:09 +0200 Message-ID: <4FABB909.8020804@suse.de> References: <4FAB6E06.9020709@ips.at> Reply-To: device-mapper development Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <4FAB6E06.9020709@ips.at> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: device-mapper development List-Id: dm-devel.ids On 05/10/2012 09:28 AM, Christian Schausberger wrote: > Hi all, > = > = > I think I found a bug in the HDS prioritizer module at > http://git.kernel.org/gitweb.cgi?p=3Dlinux/storage/multipath/hare/multipa= th-tools.git;a=3Dblob_plain;f=3Dlibmultipath/prioritizers/hds.c;hb=3DHEAD > = > In there the following is stated for assigning the priority: > = > * CONTROLLER ODD and LDEV ODD: PRIORITY 1 > * CONTROLLER ODD and LDEV EVEN: PRIORITY 0 > * CONTROLLER EVEN and LDEV ODD: PRIORITY 0 > * CONTROLLER EVEN and LDEV EVEN: PRIORITY 1 > = > When watching multipathing with debug output one can see that the > controllers returned are 1 and 2: > = > May 08 14:44:00 | sdo: hds prio: VENDOR: HITACHI > May 08 14:44:00 | sdo: hds prio: PRODUCT: DF600F = > May 08 14:44:00 | sdo: hds prio: SERIAL: 0x0089 > May 08 14:44:00 | sdo: hds prio: LDEV: 0x0004 > May 08 14:44:00 | sdo: hds prio: CTRL: 1 = > <=3D This is really controller 0 > May 08 14:44:00 | sdo: hds prio: PORT: C > May 08 14:44:00 | sdo: hds prio: CTRL ODD, LDEV EVEN, PRIO 0 > May 08 14:44:00 | sdo: hds prio =3D 0 > = > May 08 14:44:00 | sdk: hds prio: VENDOR: HITACHI > May 08 14:44:00 | sdk: hds prio: PRODUCT: DF600F = > May 08 14:44:00 | sdk: hds prio: SERIAL: 0x0089 > May 08 14:44:00 | sdk: hds prio: LDEV: 0x0004 > May 08 14:44:00 | sdk: hds prio: CTRL: 2 = > <=3D This is really controller 1 > May 08 14:44:00 | sdk: hds prio: PORT: C > May 08 14:44:00 | sdk: hds prio: CTRL EVEN, LDEV EVEN, PRIO 1 > May 08 14:44:00 | sdk: hds prio =3D 1 > = > This looks fine, but afaik HDS starts counting controllers from 0 > (so actually I have 0 and 1). So when assigning LUN ownership in the > storage, a LUN with an active/passive path will actually always be > accessed through the wrong controller. This has a huge performance > penalty when the system is under stress, because of the additional > overhead generated by this. > = Have you tested whether the situation improves when the priority is reversed? I'd be very much surprised if it did, though. I suspect more the internal queue size of the Hitachi to be a problem here. I've seen instances where we overload the internal queue size, causing the array to seize up. Cheers, Hannes -- = Dr. Hannes Reinecke zSeries & Storage hare@suse.de +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg GF: J. Hawn, J. Guild, F. Imend=F6rffer, HRB 16746 (AG N=FCrnberg)