[Lustre-discuss] lustre + debian
Guy Coates
gmpc at sanger.ac.uk
Fri Aug 15 01:30:28 PDT 2008
I've just gone through the exercise of recompiling the lenny packages on etch;
it worked like a charm.
This is the procedure I used. Hope it helps.
*Pre-requisites
Any debian machine can be used to build the packages. It does not have to be a
lustre client or server.
*Install build essentials
Install the packages required to build debs. (build-essential, module-assistant etc)
*Get Source
Ensure sources.list contains the following lines:
deb http://debian.internal.sanger.ac.uk/debian/ etch main non-free contrib
deb-src http://debian.internal.sanger.ac.uk/debian/ lenny main contrib non-free
*Download the source with:
#aptitude update
#apt-get source linux-image-2.6.18-X-686
#apt-get source lustre
This will unpack two directories, one with the lustre source and one with the
kernel source.
*Build lustre userspace
Change to the lustre directory.
#cd lustre-X.X.X
#dpkg-buildpackage -r fakeroot
If the build fails with automake errors you will need to install a later
automake version. (debian/etch provides several to choose from.)
This will build the following packages:
lustre-utils #Userspace lustre util
lustre-dev #Development headers
lustre-source #Source for the kernel module
lustre-tests #Test suite
linux-patch-lustre #Patch for the linux kernel.
Install the lustre-source and linux-patch-lustre packages on the build machine.
These packages contain the patches to the kernel source tree that are used in
the next step of the build.
#dpkg -i linux-patch-lustre_XXX.deb
#dpkg -i lustre-source_XXX.deb
*Build lustre patched kernel
#cd linux-2.6-XXXX
We need to grab the .config file for the debian kernel. We should be able to
generate the config from the source package, but I'm not sure how. The easiest
way to get the correct config is to copy /boot/config-X.X.X from a machine
already running the debian kernel.
#cp /boot/config-2.6.XXX-686 .config
Check the kernel config works: (This might generate 1 or 2 minor questions. Just
hit "m" or "y".)
#make oldconfig
We can now build the kernel.
#export CONCURRENCY_LEVEL=3
#make-kpkg clean
#make-kpkg --rootcmd fakeroot --added-patches=lustre \
--initrd --append-to-version "-lustre-1.6.5.1" --revision=yyyymmdd kernel_image
(You might be asked about extra scsi statistics options; selecting Y is probably
a good idea)
You should now have a kernel-image deb.
*Build lustre kernel modules
The lustre kernel modules can now be built.
#module-assistant -u/your/working/directory -k /path/to/the/kernel/linux-2.6-X.X
build lustre
After the build has finished you should now have a lustre-modules.deb
*Install
To install lustre on a client or server machine, simply install the packages you
have created:
linux-image-2.6.XX-lustre-X.X.X._XXXXXX.deb
lustre-modules-2.6.XX-lustre-X.X.X._XXXXXX.deb
lustre-utils_X.X.deb
liblustre-X-X.deb
lustre-dev-X.X.deb
The test suite is optional. For configuration of networks and timeout options in
/etc/modprobe.d/lustre see the lustre manual.
*Extras not currently packaged
Lustre uses a special version of e2fsprogs. These allow you to specify the disk
raid geometry at filesystem creation time to optimise performance. It also has
extra options to support the lfsck lustre filesystem consistency check. Debian
upstream have said they will package this in the future. In the meantime, you
will have to build it yourself. Note that the modified program is only required
on OST and MDS machines.
*Get the e2fsprogs source
Get the latest sun patch tarball:
http://downloads.lustre.org/public/tools/e2fsprogs/latest/
eg e2fsprogs-1.40.11-sun1-patches.tar.gz
You will also need the upstream source (in this case e2fsprogs 1.40.11). This
can be found
http://downloads.lustre.org/public/tools/e2fsprogs/upstream/
*Patch the source
tar -xvf e2fsprogs 1.40.11.tar.gz
tar -xvf e2fsprogs-1.40.11-sun1-patches.tar.gz
Patch the source with quilt.
#cd e2fsprogs 1.40.11
#ln -s -f ../patches .
#ln -s -f ../patches/series .
#quilt push -av
*Build the source
Note that the ext2fs-dev, libsqlite3-dev, sqlite3 and libdb4.3-dev headers and
libraries must be installed before building. (Note that libdb4.4 does not work,
but the code will compile OK !?)
#./configure --with-lustre=/path/to/lustre/source
#make
#make install
--
Dr. Guy Coates, Informatics System Group
The Wellcome Trust Sanger Institute, Hinxton, Cambridge, CB10 1HH, UK
Tel: +44 (0)1223 834244 x 6925
Fax: +44 (0)1223 496802
--
The Wellcome Trust Sanger Institute is operated by Genome Research
Limited, a charity registered in England with number 1021457 and a
company registered in England with number 2742969, whose registered
office is 215 Euston Road, London, NW1 2BE.
More information about the lustre-discuss
mailing list