All of lore.kernel.org
 help / color / mirror / Atom feed
* dm multipath kernel driver version too old - 2.6.32
@ 2009-12-31  7:59 John A. Sullivan III
  2010-01-01 16:00 ` Pasi Kärkkäinen
  2010-01-02  0:24 ` Mike Snitzer
  0 siblings, 2 replies; 8+ messages in thread
From: John A. Sullivan III @ 2009-12-31  7:59 UTC (permalink / raw)
  To: dm-devel

Hello, all.  We are attempting to upgrade our kernel on our VServer
hosts from 2.6.28 to 2.6.32.1.  After some initial grief, we thought we
were successful until multipath kicked in and we received an error
message:

DM multipath kernel driver version too old

In the RAID and LVM section of our kernel configuration, we have enabled
Multipath I/O support.  We have then created modules for Multipath
target and both I/O Path Selectors (in-flight I/Os and service time).

We are running fully patched CentOS 5.4.  What have we done wrong?
Thanks - John

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: dm multipath kernel driver version too old - 2.6.32
  2009-12-31  7:59 dm multipath kernel driver version too old - 2.6.32 John A. Sullivan III
@ 2010-01-01 16:00 ` Pasi Kärkkäinen
  2010-01-02  0:24 ` Mike Snitzer
  1 sibling, 0 replies; 8+ messages in thread
From: Pasi Kärkkäinen @ 2010-01-01 16:00 UTC (permalink / raw)
  To: device-mapper development

On Thu, Dec 31, 2009 at 02:59:26AM -0500, John A. Sullivan III wrote:
> Hello, all.  We are attempting to upgrade our kernel on our VServer
> hosts from 2.6.28 to 2.6.32.1.  After some initial grief, we thought we
> were successful until multipath kicked in and we received an error
> message:
> 
> DM multipath kernel driver version too old
> 
> In the RAID and LVM section of our kernel configuration, we have enabled
> Multipath I/O support.  We have then created modules for Multipath
> target and both I/O Path Selectors (in-flight I/Os and service time).
> 
> We are running fully patched CentOS 5.4.  What have we done wrong?
> Thanks - John
> 

Are you using the dm-multipath rpm that comes with CentOS/RHEL?
I believe that dm-multipath version requires the CentOS/RHEL kernel
(because of the patches Redhat has applied to that kernel).

You might have better luck using the upstream dm-multipath with the
upstream kernel.

-- Pasi

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: dm multipath kernel driver version too old - 2.6.32
  2009-12-31  7:59 dm multipath kernel driver version too old - 2.6.32 John A. Sullivan III
  2010-01-01 16:00 ` Pasi Kärkkäinen
@ 2010-01-02  0:24 ` Mike Snitzer
  2010-01-02  1:31   ` John A. Sullivan III
  2010-01-02 23:25   ` John A. Sullivan III
  1 sibling, 2 replies; 8+ messages in thread
From: Mike Snitzer @ 2010-01-02  0:24 UTC (permalink / raw)
  To: device-mapper development

On Thu, Dec 31 2009 at  2:59am -0500,
John A. Sullivan III <jsullivan@opensourcedevel.com> wrote:

> Hello, all.  We are attempting to upgrade our kernel on our VServer
> hosts from 2.6.28 to 2.6.32.1.  After some initial grief, we thought we
> were successful until multipath kicked in and we received an error
> message:
> 
> DM multipath kernel driver version too old
> 
> In the RAID and LVM section of our kernel configuration, we have enabled
> Multipath I/O support.  We have then created modules for Multipath
> target and both I/O Path Selectors (in-flight I/Os and service time).
> 
> We are running fully patched CentOS 5.4.  What have we done wrong?
> Thanks - John

Linux >= 2.6.31 has a DM multipath target version that was bumped to >=
1.1.0 (for request-based multipath et al).

The device-mapper-multipath in 5.4 has:
multipath/main.c:     if (dm_prereq(DEFAULT_TARGET, 1, 0, 3))

But 5.4's dm_prereq() is too simplistic to handle the higher DM target
version numbers that Linux >= 2.6.31 has for the DM multipath target.

Upstream multipath-tools can handle the newer DM target versions
properly.  5.4's device-mapper-multipath-tools can be patched with
something like the following (note this is white-space damaged, but you
get the idea):

@@ -107,10 +107,10 @@ dm_prereq (char * str, int x, int y, int z)
 
                if (!strncmp(str, target->name, strlen(str))) {
                        r--;
-                       
-                       if (target->version[0] >= x &&
-                           target->version[1] >= y &&
-                           target->version[2] >= z)
+
+                       if ((target->version[0] > x) ||
+                           ((target->version[0] ==  x) && (target->version[1] > y)) ||
+                           ((target->version[0] == x) && (target->version[1] == y) && (target->version[2] >= z)))
                                r--;

			break;

But again: upstream multipath-tools already has a nicer fix.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: dm multipath kernel driver version too old - 2.6.32
  2010-01-02  0:24 ` Mike Snitzer
@ 2010-01-02  1:31   ` John A. Sullivan III
  2010-01-02 23:25   ` John A. Sullivan III
  1 sibling, 0 replies; 8+ messages in thread
From: John A. Sullivan III @ 2010-01-02  1:31 UTC (permalink / raw)
  To: device-mapper development

On Fri, 2010-01-01 at 19:24 -0500, Mike Snitzer wrote: 
> On Thu, Dec 31 2009 at  2:59am -0500,
> John A. Sullivan III <jsullivan@opensourcedevel.com> wrote:
> 
> > Hello, all.  We are attempting to upgrade our kernel on our VServer
> > hosts from 2.6.28 to 2.6.32.1.  After some initial grief, we thought we
> > were successful until multipath kicked in and we received an error
> > message:
> > 
> > DM multipath kernel driver version too old
> > 
> > In the RAID and LVM section of our kernel configuration, we have enabled
> > Multipath I/O support.  We have then created modules for Multipath
> > target and both I/O Path Selectors (in-flight I/Os and service time).
> > 
> > We are running fully patched CentOS 5.4.  What have we done wrong?
> > Thanks - John
> 
> Linux >= 2.6.31 has a DM multipath target version that was bumped to >=
> 1.1.0 (for request-based multipath et al).
> 
> The device-mapper-multipath in 5.4 has:
> multipath/main.c:     if (dm_prereq(DEFAULT_TARGET, 1, 0, 3))
> 
> But 5.4's dm_prereq() is too simplistic to handle the higher DM target
> version numbers that Linux >= 2.6.31 has for the DM multipath target.
> 
> Upstream multipath-tools can handle the newer DM target versions
> properly.  5.4's device-mapper-multipath-tools can be patched with
> something like the following (note this is white-space damaged, but you
> get the idea):
> 
> @@ -107,10 +107,10 @@ dm_prereq (char * str, int x, int y, int z)
>  
>                 if (!strncmp(str, target->name, strlen(str))) {
>                         r--;
> -                       
> -                       if (target->version[0] >= x &&
> -                           target->version[1] >= y &&
> -                           target->version[2] >= z)
> +
> +                       if ((target->version[0] > x) ||
> +                           ((target->version[0] ==  x) && (target->version[1] > y)) ||
> +                           ((target->version[0] == x) && (target->version[1] == y) && (target->version[2] >= z)))
>                                 r--;
> 
> 			break;
> 
> But again: upstream multipath-tools already has a nicer fix.
> 
> --
> dm-devel mailing list
> dm-devel@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel

Thanks very, very much to both respondents.  I was feeling quite
befuddled.  I'll give upstream a try and see how I fare.  Thanks again -
John

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: dm multipath kernel driver version too old - 2.6.32
  2010-01-02  0:24 ` Mike Snitzer
  2010-01-02  1:31   ` John A. Sullivan III
@ 2010-01-02 23:25   ` John A. Sullivan III
  2010-01-03  0:17     ` John A. Sullivan III
  1 sibling, 1 reply; 8+ messages in thread
From: John A. Sullivan III @ 2010-01-02 23:25 UTC (permalink / raw)
  To: device-mapper development

On Fri, 2010-01-01 at 19:24 -0500, Mike Snitzer wrote: 
> On Thu, Dec 31 2009 at  2:59am -0500,
> John A. Sullivan III <jsullivan@opensourcedevel.com> wrote:
> 
> > Hello, all.  We are attempting to upgrade our kernel on our VServer
> > hosts from 2.6.28 to 2.6.32.1.  After some initial grief, we thought we
> > were successful until multipath kicked in and we received an error
> > message:
> > 
> > DM multipath kernel driver version too old
> > 
> > In the RAID and LVM section of our kernel configuration, we have enabled
> > Multipath I/O support.  We have then created modules for Multipath
> > target and both I/O Path Selectors (in-flight I/Os and service time).
> > 
> > We are running fully patched CentOS 5.4.  What have we done wrong?
> > Thanks - John
> 
> Linux >= 2.6.31 has a DM multipath target version that was bumped to >=
> 1.1.0 (for request-based multipath et al).
> 
> The device-mapper-multipath in 5.4 has:
> multipath/main.c:     if (dm_prereq(DEFAULT_TARGET, 1, 0, 3))
> 
> But 5.4's dm_prereq() is too simplistic to handle the higher DM target
> version numbers that Linux >= 2.6.31 has for the DM multipath target.
> 
> Upstream multipath-tools can handle the newer DM target versions
> properly.  5.4's device-mapper-multipath-tools can be patched with
> something like the following (note this is white-space damaged, but you
> get the idea):
> 
> @@ -107,10 +107,10 @@ dm_prereq (char * str, int x, int y, int z)
>  
>                 if (!strncmp(str, target->name, strlen(str))) {
>                         r--;
> -                       
> -                       if (target->version[0] >= x &&
> -                           target->version[1] >= y &&
> -                           target->version[2] >= z)
> +
> +                       if ((target->version[0] > x) ||
> +                           ((target->version[0] ==  x) && (target->version[1] > y)) ||
> +                           ((target->version[0] == x) && (target->version[1] == y) && (target->version[2] >= z)))
>                                 r--;
> 
> 			break;
> 
> But again: upstream multipath-tools already has a nicer fix.
<snip>
Hmm . . . I'll keep looking but the first fifteen minutes of googling
has not shown me where to find upstream multipath-tools.  Everything on
http://christophe.varoqui.free.fr/multipath-tools/ looks quite old.
Where do I find the latest upstream multipath-tools? Thanks - John

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: dm multipath kernel driver version too old - 2.6.32
  2010-01-02 23:25   ` John A. Sullivan III
@ 2010-01-03  0:17     ` John A. Sullivan III
  2010-01-03 17:04       ` Pasi Kärkkäinen
  0 siblings, 1 reply; 8+ messages in thread
From: John A. Sullivan III @ 2010-01-03  0:17 UTC (permalink / raw)
  To: device-mapper development; +Cc: pmdaws

On Sat, 2010-01-02 at 18:25 -0500, John A. Sullivan III wrote: 
> On Fri, 2010-01-01 at 19:24 -0500, Mike Snitzer wrote: 
> > On Thu, Dec 31 2009 at  2:59am -0500,
> > John A. Sullivan III <jsullivan@opensourcedevel.com> wrote:
> > 
> > > Hello, all.  We are attempting to upgrade our kernel on our VServer
> > > hosts from 2.6.28 to 2.6.32.1.  After some initial grief, we thought we
> > > were successful until multipath kicked in and we received an error
> > > message:
> > > 
> > > DM multipath kernel driver version too old
> > > 
> > > In the RAID and LVM section of our kernel configuration, we have enabled
> > > Multipath I/O support.  We have then created modules for Multipath
> > > target and both I/O Path Selectors (in-flight I/Os and service time).
> > > 
> > > We are running fully patched CentOS 5.4.  What have we done wrong?
> > > Thanks - John
> > 
> > Linux >= 2.6.31 has a DM multipath target version that was bumped to >=
> > 1.1.0 (for request-based multipath et al).
> > 
> > The device-mapper-multipath in 5.4 has:
> > multipath/main.c:     if (dm_prereq(DEFAULT_TARGET, 1, 0, 3))
> > 
> > But 5.4's dm_prereq() is too simplistic to handle the higher DM target
> > version numbers that Linux >= 2.6.31 has for the DM multipath target.
> > 
> > Upstream multipath-tools can handle the newer DM target versions
> > properly.  5.4's device-mapper-multipath-tools can be patched with
> > something like the following (note this is white-space damaged, but you
> > get the idea):
> > 
> > @@ -107,10 +107,10 @@ dm_prereq (char * str, int x, int y, int z)
> >  
> >                 if (!strncmp(str, target->name, strlen(str))) {
> >                         r--;
> > -                       
> > -                       if (target->version[0] >= x &&
> > -                           target->version[1] >= y &&
> > -                           target->version[2] >= z)
> > +
> > +                       if ((target->version[0] > x) ||
> > +                           ((target->version[0] ==  x) && (target->version[1] > y)) ||
> > +                           ((target->version[0] == x) && (target->version[1] == y) && (target->version[2] >= z)))
> >                                 r--;
> > 
> > 			break;
> > 
> > But again: upstream multipath-tools already has a nicer fix.
> <snip>
> Hmm . . . I'll keep looking but the first fifteen minutes of googling
> has not shown me where to find upstream multipath-tools.  Everything on
> http://christophe.varoqui.free.fr/multipath-tools/ looks quite old.
> Where do I find the latest upstream multipath-tools? Thanks - John
<snip>
Sorry to be a pest but I'm a bit out of my depth . . . well, maybe more
than a bit.  From examining main.c in the various tarballs, I am
assuming 0.4.8 is indeed what I want.  Now, what exactly do I do?

Do I simply compile the multipath directory and replace the resultant
binaries or do I build and replace everything? I don't want to destroy
my data storage by mixing versions but I also don't want to step too far
outside the official packaging.  Any guidance would be greatly
appreciated.  Thanks - John

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: dm multipath kernel driver version too old - 2.6.32
  2010-01-03  0:17     ` John A. Sullivan III
@ 2010-01-03 17:04       ` Pasi Kärkkäinen
  2010-01-04 17:59         ` John A. Sullivan III
  0 siblings, 1 reply; 8+ messages in thread
From: Pasi Kärkkäinen @ 2010-01-03 17:04 UTC (permalink / raw)
  To: device-mapper development; +Cc: pmdaws

On Sat, Jan 02, 2010 at 07:17:08PM -0500, John A. Sullivan III wrote:
> On Sat, 2010-01-02 at 18:25 -0500, John A. Sullivan III wrote: 
> > On Fri, 2010-01-01 at 19:24 -0500, Mike Snitzer wrote: 
> > > On Thu, Dec 31 2009 at  2:59am -0500,
> > > John A. Sullivan III <jsullivan@opensourcedevel.com> wrote:
> > > 
> > > > Hello, all.  We are attempting to upgrade our kernel on our VServer
> > > > hosts from 2.6.28 to 2.6.32.1.  After some initial grief, we thought we
> > > > were successful until multipath kicked in and we received an error
> > > > message:
> > > > 
> > > > DM multipath kernel driver version too old
> > > > 
> > > > In the RAID and LVM section of our kernel configuration, we have enabled
> > > > Multipath I/O support.  We have then created modules for Multipath
> > > > target and both I/O Path Selectors (in-flight I/Os and service time).
> > > > 
> > > > We are running fully patched CentOS 5.4.  What have we done wrong?
> > > > Thanks - John
> > > 
> > > Linux >= 2.6.31 has a DM multipath target version that was bumped to >=
> > > 1.1.0 (for request-based multipath et al).
> > > 
> > > The device-mapper-multipath in 5.4 has:
> > > multipath/main.c:     if (dm_prereq(DEFAULT_TARGET, 1, 0, 3))
> > > 
> > > But 5.4's dm_prereq() is too simplistic to handle the higher DM target
> > > version numbers that Linux >= 2.6.31 has for the DM multipath target.
> > > 
> > > Upstream multipath-tools can handle the newer DM target versions
> > > properly.  5.4's device-mapper-multipath-tools can be patched with
> > > something like the following (note this is white-space damaged, but you
> > > get the idea):
> > > 
> > > @@ -107,10 +107,10 @@ dm_prereq (char * str, int x, int y, int z)
> > >  
> > >                 if (!strncmp(str, target->name, strlen(str))) {
> > >                         r--;
> > > -                       
> > > -                       if (target->version[0] >= x &&
> > > -                           target->version[1] >= y &&
> > > -                           target->version[2] >= z)
> > > +
> > > +                       if ((target->version[0] > x) ||
> > > +                           ((target->version[0] ==  x) && (target->version[1] > y)) ||
> > > +                           ((target->version[0] == x) && (target->version[1] == y) && (target->version[2] >= z)))
> > >                                 r--;
> > > 
> > > 			break;
> > > 
> > > But again: upstream multipath-tools already has a nicer fix.
> > <snip>
> > Hmm . . . I'll keep looking but the first fifteen minutes of googling
> > has not shown me where to find upstream multipath-tools.  Everything on
> > http://christophe.varoqui.free.fr/multipath-tools/ looks quite old.
> > Where do I find the latest upstream multipath-tools? Thanks - John
> <snip>
> Sorry to be a pest but I'm a bit out of my depth . . . well, maybe more
> than a bit.  From examining main.c in the various tarballs, I am
> assuming 0.4.8 is indeed what I want.  Now, what exactly do I do?
> 
> Do I simply compile the multipath directory and replace the resultant
> binaries or do I build and replace everything? I don't want to destroy
> my data storage by mixing versions but I also don't want to step too far
> outside the official packaging.  Any guidance would be greatly
> appreciated.  Thanks - John
> 

You could always grab the latest device-mapper-multipath src.rpm from
Fedora rawhide and re-build it on your setup for EL5.

device-mapper-multipath-0.4.9-11.fc13.src.rpm seems to be the latest in Fedora.

(Note that the new rpms in Fedora 12/13 use different compression/format, 
so EL5 rpm tool might not be able to install/handle that src.rpm..)

-- Pasi

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: dm multipath kernel driver version too old - 2.6.32
  2010-01-03 17:04       ` Pasi Kärkkäinen
@ 2010-01-04 17:59         ` John A. Sullivan III
  0 siblings, 0 replies; 8+ messages in thread
From: John A. Sullivan III @ 2010-01-04 17:59 UTC (permalink / raw)
  To: device-mapper development; +Cc: pmdaws

On Sun, 2010-01-03 at 19:04 +0200, Pasi Kärkkäinen wrote: 
> On Sat, Jan 02, 2010 at 07:17:08PM -0500, John A. Sullivan III wrote:
> > On Sat, 2010-01-02 at 18:25 -0500, John A. Sullivan III wrote: 
> > > On Fri, 2010-01-01 at 19:24 -0500, Mike Snitzer wrote: 
> > > > On Thu, Dec 31 2009 at  2:59am -0500,
> > > > John A. Sullivan III <jsullivan@opensourcedevel.com> wrote:
> > > > 
> > > > > Hello, all.  We are attempting to upgrade our kernel on our VServer
> > > > > hosts from 2.6.28 to 2.6.32.1.  After some initial grief, we thought we
> > > > > were successful until multipath kicked in and we received an error
> > > > > message:
> > > > > 
> > > > > DM multipath kernel driver version too old
> > > > > 
> > > > > In the RAID and LVM section of our kernel configuration, we have enabled
> > > > > Multipath I/O support.  We have then created modules for Multipath
> > > > > target and both I/O Path Selectors (in-flight I/Os and service time).
> > > > > 
> > > > > We are running fully patched CentOS 5.4.  What have we done wrong?
> > > > > Thanks - John
> > > > 
> > > > Linux >= 2.6.31 has a DM multipath target version that was bumped to >=
> > > > 1.1.0 (for request-based multipath et al).
> > > > 
> > > > The device-mapper-multipath in 5.4 has:
> > > > multipath/main.c:     if (dm_prereq(DEFAULT_TARGET, 1, 0, 3))
> > > > 
> > > > But 5.4's dm_prereq() is too simplistic to handle the higher DM target
> > > > version numbers that Linux >= 2.6.31 has for the DM multipath target.
> > > > 
> > > > Upstream multipath-tools can handle the newer DM target versions
> > > > properly.  5.4's device-mapper-multipath-tools can be patched with
> > > > something like the following (note this is white-space damaged, but you
> > > > get the idea):
> > > > 
> > > > @@ -107,10 +107,10 @@ dm_prereq (char * str, int x, int y, int z)
> > > >  
> > > >                 if (!strncmp(str, target->name, strlen(str))) {
> > > >                         r--;
> > > > -                       
> > > > -                       if (target->version[0] >= x &&
> > > > -                           target->version[1] >= y &&
> > > > -                           target->version[2] >= z)
> > > > +
> > > > +                       if ((target->version[0] > x) ||
> > > > +                           ((target->version[0] ==  x) && (target->version[1] > y)) ||
> > > > +                           ((target->version[0] == x) && (target->version[1] == y) && (target->version[2] >= z)))
> > > >                                 r--;
> > > > 
> > > > 			break;
> > > > 
> > > > But again: upstream multipath-tools already has a nicer fix.
> > > <snip>
> > > Hmm . . . I'll keep looking but the first fifteen minutes of googling
> > > has not shown me where to find upstream multipath-tools.  Everything on
> > > http://christophe.varoqui.free.fr/multipath-tools/ looks quite old.
> > > Where do I find the latest upstream multipath-tools? Thanks - John
> > <snip>
> > Sorry to be a pest but I'm a bit out of my depth . . . well, maybe more
> > than a bit.  From examining main.c in the various tarballs, I am
> > assuming 0.4.8 is indeed what I want.  Now, what exactly do I do?
> > 
> > Do I simply compile the multipath directory and replace the resultant
> > binaries or do I build and replace everything? I don't want to destroy
> > my data storage by mixing versions but I also don't want to step too far
> > outside the official packaging.  Any guidance would be greatly
> > appreciated.  Thanks - John
> > 
> 
> You could always grab the latest device-mapper-multipath src.rpm from
> Fedora rawhide and re-build it on your setup for EL5.
> 
> device-mapper-multipath-0.4.9-11.fc13.src.rpm seems to be the latest in Fedora.
> 
> (Note that the new rpms in Fedora 12/13 use different compression/format, 
> so EL5 rpm tool might not be able to install/handle that src.rpm..)
<snip>
Thanks, Pasi.  I thought, rather than take a chance with that, I would
simply use the make rpm target included with 0.4.8.  However, it
produces an error:

error: Installed (but unpackaged) file(s) found:
   /etc/udev/rules.d/kpartx.rules
   /lib/udev/kpartx_id
   /sbin/mpath_prio_hp_sw
   /usr/share/man/man5/multipath.conf.5.gz


RPM build errors:
    Installed (but unpackaged) file(s) found:
   /etc/udev/rules.d/kpartx.rules
   /lib/udev/kpartx_id
   /sbin/mpath_prio_hp_sw
   /usr/share/man/man5/multipath.conf.5.gz
make: *** [rpm] Error 1

Not being an expert in building rpms (this would be my first), and not
wanting to mangle my storage, I thought I had better ask how to handle
it.  Do I add the files to the spec file or do I remove them from
Makefile? I suppose that's another way of asking if these are required
for CentOS or if they are Debian specific? Thanks - John



--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-01-04 17:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-31  7:59 dm multipath kernel driver version too old - 2.6.32 John A. Sullivan III
2010-01-01 16:00 ` Pasi Kärkkäinen
2010-01-02  0:24 ` Mike Snitzer
2010-01-02  1:31   ` John A. Sullivan III
2010-01-02 23:25   ` John A. Sullivan III
2010-01-03  0:17     ` John A. Sullivan III
2010-01-03 17:04       ` Pasi Kärkkäinen
2010-01-04 17: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.