From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christophe Varoqui Subject: Re: [RFC] [PATCH] add serial keyword to the weightedpath prioritizer Date: Mon, 1 Aug 2016 10:42:13 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3702401710936434243==" Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: Hannes Reinecke Cc: device-mapper development List-Id: dm-devel.ids --===============3702401710936434243== Content-Type: multipart/alternative; boundary=001a11402e64ab3f1d0538fe93cd --001a11402e64ab3f1d0538fe93cd Content-Type: text/plain; charset=UTF-8 On Mon, Aug 1, 2016 at 9:49 AM, Hannes Reinecke wrote: > On 07/31/2016 09:26 PM, Christophe Varoqui wrote: > >> Ben, Hannes, >> >> Can you review this patch, adding a new 'serial' keyword to the >> weightedpath prioritizer. >> >> I compile-tested it only, as I have no testing environment at hand at >> the moment. >> >> I commited it in a separate 'weightedpath-serial' branch for now. >> >> >> http://git.opensvc.com/?p=multipath-tools/.git;a=commitdiff;h=4dd16d99281104fc3504ad73626894a5c3702fb3 >> >> Thanks, >> Christophe Varoqui >> OpenSVC >> >> Well. > In general, sure, fine, I don't have any issues with that. > If the customer wants to diddle with his array that way... > > The more general problem I'm seeing is that our current two-layered > priority setup (path groups with distinct priorities and paths within them) > might not be leading to issues with larger and more complex scenarios. > > ATM we already have the problem that clustered scenarios like this: > > Storage node 1(active): > Path 1 (optimal): > LUN 1, LUN2 > Path 2 (non-optimal): > LUN 1, LUN2 > > Storage node 2(passive): > Path 1(optimal): > LUN 1, LUN2 > Path 2(non-optimal): > LUN 1, LUN2 > > can not be represented properly with multipath tools. > We are forced to either > a) set 'storage node 2' to 'failed', which would kill > any cluster instance accessing only 'storage node 2' > or > b) map all priorities from 'storage node 2' to '0', > thereby losing all priority information > > Things become even more convoluted if both storage nodes are in fact > accessible, or if someone would be using different transports. > > Would something like "prio alua+weightedpath" produce correct priorities for the path grouping ? where priorities reported by alua would be added to those reported by weighted path. That syntax extension would reduce the need to develop more complex prioritizers. The prio_args to prio mapping, wouldn't be nice though. Concerning transports, we can also extend the weightedpath prioritizer, and if the multi-prioritizer setup is implemented we could even weight on serial+transport with a "prio weighedpath+weightedpath" setup. --001a11402e64ab3f1d0538fe93cd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On Mon, Aug 1, 2016 at 9:49 AM, Hannes Reinecke <<= a href=3D"mailto:hare@suse.de" target=3D"_blank">hare@suse.de> wrote:
On 07/31/2016 09:26 PM, Ch= ristophe Varoqui wrote:
Ben, Hannes,

Can you review this patch, adding a new 'serial' keyword to the
weightedpath prioritizer.

I compile-tested it only, as I have no testing environment at hand at
the moment.

I commited it in a separate 'weightedpath-serial' branch for now.
http://git.opensvc.com/?p=3Dmultipath-tools/.git;a=3Dcommitdiff;h= =3D4dd16d99281104fc3504ad73626894a5c3702fb3

Thanks,
Christophe Varoqui
OpenSVC

Well.
In general, sure, fine, I don't have any issues with that.
If the customer wants to diddle with his array that way...

The more general problem I'm seeing is that our current two-layered pri= ority setup (path groups with distinct priorities and paths within them) mi= ght not be leading to issues with larger and more complex scenarios.

ATM we already have the problem that clustered scenarios like this:

Storage node 1(active):
=C2=A0 Path 1 (optimal):
=C2=A0 =C2=A0 LUN 1, LUN2
=C2=A0 Path 2 (non-optimal):
=C2=A0 =C2=A0 LUN 1, LUN2

Storage node 2(passive):
=C2=A0 Path 1(optimal):
=C2=A0 =C2=A0 =C2=A0LUN 1, LUN2
=C2=A0 Path 2(non-optimal):
=C2=A0 =C2=A0 =C2=A0LUN 1, LUN2

can not be represented properly with multipath tools.
We are forced to either
a) set 'storage node 2' to 'failed', which would kill
=C2=A0 =C2=A0any cluster instance accessing only 'storage node 2' or
b) map all priorities from 'storage node 2' to '0',
=C2=A0 =C2=A0thereby losing all priority information

Things become even more convoluted if both storage nodes are in fact access= ible, or if someone would be using different transports.

Would something like "prio alua+weightedpath&quo= t; produce correct priorities for the path grouping ? where priorities repo= rted by alua would be added to those reported by weighted path. That syntax= extension would reduce the need to develop more complex prioritizers.

The prio_args to prio mapping, wouldn't be nice th= ough.

Concerning transports, we can also extend th= e weightedpath prioritizer, and if the multi-prioritizer setup is implement= ed we could even weight on serial+transport with a "prio weighedpath+w= eightedpath" setup.

--001a11402e64ab3f1d0538fe93cd-- --===============3702401710936434243== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============3702401710936434243==--