How to make RHEL5.x x86_64 Lustre client RPMs.


Download and Compile

Working space and variables
tmpdir="/tmp/$$"
extraversion=`uname -r | cut -d"-" -f2`
mkdir $tmpdir ; cd $tmpdir

Download and configure the current Red Hat kernel source RPM
wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/kernel-`uname -r`.src.rpm
rpm -ivh kernel-*.src.rpm
rpmbuild -bp --target=`uname -i` /usr/src/redhat/SPECS/kernel-2.6.spec

sed -i -e "s/EXTRAVERSION = -prep/EXTRAVERSION = -$extraversion/" /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.`uname -i`/Makefile

\cp /boot/config-`uname -r` /usr/src/redhat/SOURCES/kernel-2.6.18-`uname -i`.config
\cp /boot/config-`uname -r` /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.`uname -i`/.config

cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.`uname -i`
make oldconfig
make include/asm
make include/linux/version.h
make SUBDIRS=scripts
make include/linux/utsrelease.h

Download lustre source to $tmpdir
Connect to http://wiki.lustre.org/index.php/Download and select the download link
Under Platform select Source
cd $tmpdir
tar xfvz lustre-1.8.5.tar.gz
cd lustre-1.8.5
./configure --disable-server --with-linux=/usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.`uname -i`
sed -i -e 's/%{!?lustre_name: %define lustre_name lustre}/%{!?lustre_name: %define lustre_name lustre-client}/' lustre.spec
make rpms

Resulting RPMs are:
/usr/src/redhat/RPMS/`uname -i`/lustre-client-1*
/usr/src/redhat/RPMS/`uname -i`/lustre-client-modules*

Test Lustre

Install Lustre RPMs (a reboot is required for lustre to work)
rpm -Uvh /usr/src/redhat/RPMS/`uname -i`/lustre-client-1* /usr/src/redhat/RPMS/`uname -i`/lustre-client-modules*
reboot

Configure lnet
echo "options lnet networks="o2ib0(ib0),tcp(eth0)" >> /etc/modprobe.conf

Make a test mountpoint
mkdir -p /test

To mount Lustre on the client, run the following command
mount -t lustre MDS-IP@MDS-Interface:/filesystem-name -o user_xattr,flock /mountpoint
where...
MDS_IP is the IP or hostname of the MDS
MDS-Interface is the preferred interface ib0 for Infiniband, tcp0 for ethernet
filesystem-name is the name of the lustre filesystem given when it was created
mountpoint is the actual mountpoint on the client
Ethernet example:
mount -t lustre aoc-mds@tcp0:/lustre -o user_xattr,flock /test
Infiniband example
mount -t lustre 192.168.1.10@o2ib:/lustre -o user_xattr,flock /test

Clean Up

cd /
rm -rf $tmpdir

References

-- KScottRowe - 26 Aug 2010 -- KScottRowe - 2011-07-11

This topic: HPC > WebHome > LustreFilesystem > LustreClientInstall
Topic revision: 2011-07-14, KScottRowe
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback