[Lustre-discuss] Lustre 1.8.2 patchless with RHEL5.5?

Brian J. Murrell Brian.Murrell at Sun.COM
Tue Apr 13 06:36:03 PDT 2010


I should have replied to the OP but it only just occurred to me to
suggest this after reading the follow-up message...

On Mon, 2010-04-12 at 17:19 -0600, Nathan Dauchy wrote: 
> Adesanya, Adeyemi wrote:
> > Has anyone tried building Lustre 1.8.2 client RPMs for RHEL5.5 (2.6.18-194 kernel)?

There is another option which will be available in some future release
of the lustre-modules package, and that's to use the "weak-modules"
facility.

The "weak-modules facility" is a process by where modules built for one
kernel can be loaded and used in another kernel.  A couple of changes to
our packaging will be made to make this work.

First is that the modules will me moved out of the /lib/modules/$(uname
-r)/kernel tree into the /lib/modules/$(uname -r)/updates/kernel tree.
Secondly, on installation of lustre-modules, the following is run:

# rpm -ql lustre[-client]-modules-$version-$release | grep '\.ko$' | /sbin/weak-modules --add-modules

which makes the modules available to all installed kernels that have a
compatible kABI.

When a new RH kernel is installed it has a similar process to promote
modules from older kernels into the new kernel as long as the kABI
matches.

I've done this manually on my Ubuntu client and it works just fine.  If
you wanted to try this technique out manually (i.e. rather than
rebuilding the lustre package for the new kernel you want to use), you
could simply, prior to installing your new kernel, do the following:

# mv /lib/modules/$(uname -r)/{,updates/}kernel/fs/lustre 
# mv /lib/modules/$(uname -r)/{,updates/}kernel/net/lustre
# depmod -ae

assuming you are currently booted on the kernel that has the
corresponding lustre modules.  Replace $(uname -r) with the correct
kernel version if you are not.

Once you have done the above, go ahead and install your new kernel.  You
should find that the lustre modules from the old kernel have been
hard/soft linked or copied into your new kernel's tree -- if the kABI of
the new kernel matches the modules.  It might be that the kABI doesn't
match and not all modules could be promoted in which case the only
option is to rebuild from source.

If you do try the weak-modules route out, please do let me know how it
works out for you.

Cheers,
b.

> cd lustre-1.8.2
> ./configure --disable-server
> --with-o2ib=/usr/src/kernels/linux-2.6.18-194.el5

Hrm.  Do you really need the --with-o2ib= parameter?  Will it not find
the kernel's OFED and build o2iblnd if you leave it out?

> make -j 8
> mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
> echo "%_topdir `pwd`/rpmbuild" > ~/.rpmmacros
> make rpms
> rm -f ~/.rpmmacros

Hrm.  It seems it would be useful here to be able to give "make rpms"
defines to pass to rpmbuild so that you didn't have to mock up a
~/.rpmmacros file, I think.  Something like:

$ make RPMB_DEFS="%_topdir `pwd`/rpmbuild" rpms

Or maybe something even more purpose built.

b.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://lists.lustre.org/pipermail/lustre-discuss-lustre.org/attachments/20100413/d57b159a/attachment.pgp>


More information about the lustre-discuss mailing list