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@xxxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel