LinuxSysAdmin

Things I don't want to look for twice..

Monthly Archives: October 2014

Lustre 2.6 on Debian Wheezy (clients)

I had a shitty job of trying to upgrade Lustre clients to the latest 2.6. I’ve had a lot of bugs on 2.5 some of them were solved in 2.6. My configuration is the following:

– 3 CentOS6 servers (for now)

– 24 Debian Wheezy clients (for now)

Upgrading Lustre on CentOS went pretty smooth. Just found the updated packages and installed. On the other had, Debian clients, let’s say I was not so lucky. So here is what I did:

– installed a Debian 7 x86_64 on a VM (kernel version 3.2.0-4-amd64)

– found a RedHat kernel ported to Debian here (thanks Thomas Stibor) and installed linux-headers and linux-images deb packages, then booted using those:

http://web-docs.gsi.de/~tstibor/lustre/lustre-builds/wheezy/redhat-kernel/2.6.32-rh-431.23.3-lustre-tstibor-latest/

– cloned branch 2.6 from Lustre, then:

git clone -b b2_6 git://git.whamcloud.com/fs/lustre-release.git
cd lustre-release/
sh autogen.sh
./configure --enable-dist
make dist

This will create a file called lustre-2.6.0.tar.gz in lustre-release folder. Then:

mkdir BUILD
cd BUILD/
ln -s ../lustre-2.6.0.tar.gz lustre-2.6.0.orig.tar.gz
tar xzvf ../lustre-2.6.0.tar.gz
./configure

Then, the tricky part. Somehow, from the rules and makefiles in there, I found out that if you’re not changing latest version of Lustre in debian/changelog, it will build version 2.6 with a name, something like: 1.8.1.50. Also, somewhere along the way, it also expects a “-” after the version. Not good. For this to change, we’ll add this to the beginning of debian/changelog (only the first line counts):

lustre (2.6.0-1) unstable; urgency=low
  * Update for an on-the-road-to-1.8.2 release
 -- Brian J. Murrell <brian@interlinx.bc.ca>  Mon, 17 Aug 2009 14:54:35 -0400

After that, instead of building packages with version 1.8.1.50-1 it will build packages with the same version as the sources are. I think it’s safe to maybe only change first line’s version and that’s it. Then:

make debs

This will create all necessary deb files and will put them in lustre-release/lustre-2.6.0/debs/ (I’ve also included the kernel debs and e2fsprogs, I needed an archive that can be installed on production servers):

e2fsprogs-1.42.9.wc1.deb
linux-headers-2.6.32-rh-431.23.3-lustre-tstibor_20140904_amd64.deb
linux-image-2.6.32-rh-431.23.3-lustre-tstibor_20140904_amd64.deb
linux-patch-lustre_2.6.0-1_all.deb
lustre_2.6.0-1_amd64.changes
lustre_2.6.0-1.dsc
lustre-client-modules-2.6.32-rh-431.23.3-lustre-tstibor_2.6.0-1_amd64.deb
lustre-dev_2.6.0-1_amd64.deb
lustre-source_2.6.0-1_all.deb
lustre-tests_2.6.0-1_amd64.deb
lustre-utils_2.6.0-1_amd64.deb

That’s it. On your client machine, you should install:

e2fsprogs-1.42.9.wc1.deb
linux-headers-2.6.32-rh-431.23.3-lustre-tstibor_20140904_amd64.deb
linux-image-2.6.32-rh-431.23.3-lustre-tstibor_20140904_amd64.deb
linux-patch-lustre_2.6.0-1_all.deb
lustre-client-modules-2.6.32-rh-431.23.3-lustre-tstibor_2.6.0-1_amd64.deb
lustre-utils_2.6.0-1_amd64.deb

Should be enough. But first, better test on a VM/test machine. To verify that the wanted version of lustre in installed:

cat /proc/fs/lustre/version 
lustre: 2.6.0
kernel: patchless_client
build:  v2_6_0_0--PRISTINE-2.6.32-rh-431.23.3-lustre-tstibor

Good luck!

Advertisements