Whamcloud - gitweb
LUDOC-173 trademarks: Completed second pass of Intel trademark compliance review.
[doc/manual.git] / InstallingLustreFromSourceCode.xml
1 <?xml version='1.0' encoding='UTF-8'?><chapter xmlns="http://docbook.org/ns/docbook" xmlns:xl="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en-US" xml:id="installinglustrefromsourcecode">
2   <title xml:id="installinglustrefromsourcecode.title">Installing a Lustre File System from Source
3     Code</title>
4   <para>This chapter describes how to create a customized Lustre server kernel from source code.
5     Sections included are:</para>
6   <itemizedlist>
7     <listitem>
8       <para><xref linkend="dbdoclet.50438210_69313"/></para>
9     </listitem>
10     <listitem>
11       <para><xref linkend="dbdoclet.50438210_65411"/></para>
12     </listitem>
13     <listitem>
14       <para><xref linkend="dbdoclet.50438210_47529"/></para>
15     </listitem>
16     <listitem>
17       <para><xref linkend="section_g4d_yby_lk"/></para>
18     </listitem>
19   </itemizedlist>
20   <note>
21     <para>It is recommended that you install from prebuild RPMs of the Lustre software unless you
22       need to customize the Lustre server kernel or will be using an Linux kernel that has not been
23       tested with the Lustre software. Instructions on installing pre-built RPMs are in <xref linkend='installinglustre.title'/></para>
24     <para>For a list of supported Linux distributions and architectures, see <xref
25         xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LustreTestMatrixTable"/>. Prebuild RPMs
26       are available in the <link xl:href="https://wiki.hpdd.intel.com/display/PUB/Lustre+Releases">Lustre Releases</link>
27       repository. For information about installing Lustre RPMs, see <xref
28         xmlns:xlink="http://www.w3.org/1999/xlink" linkend="installinglustre"/>.</para>
29   </note>
30   <section xml:id="dbdoclet.50438210_69313">
31       <title><indexterm>
32         <primary>installing</primary>
33         <secondary>from source</secondary>
34         <tertiary>prerequisites</tertiary>
35       </indexterm>Overview and Prerequisites</title>
36     <para>To install the Lustre software from source code, the following are required:</para>
37     <itemizedlist>
38       <listitem>
39         <para>A x86_64 machine with a fresh installation of a Linux operating system.</para>
40                 <note><para>This section of the Manual only describes the specific procedure against building on Red Hat
41             Enterprise Linux 6 and derivatives. For a complete set of supported platforms please
42             visit <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="LustreTestMatrixTable"
43             />.The server kernel should be one of the supported kernel versions but it is not
44             necessary to run a vendor distribution to build the Lustre software.</para></note>
45       </listitem>
46       <listitem>
47                 <para>Access to the Lustre software git repository at <link xl:href="http://git.hpdd.intel.com/">http://git.hpdd.intel.com/</link>.</para>
48       </listitem>
49       <listitem>
50                         <para>(Recommended) Access to a recent version of <link xmlns:xlink="http://www.w3.org/1999/xlink"
51             xlink:href="http://fedoraproject.org/wiki/EPEL">EPEL</link> containing the
52             <literal>quilt</literal> utility used for managing a series of patches. </para>
53                         <note><para>The use of <literal>quilt</literal> is optional for building the Lustre software, and is
54             detected at configure time if it is installed. Otherwise the <literal>patch</literal>
55             utility is used to apply <literal>ldiskfs</literal> patches to the kernel source. Quilt
56             is useful if you intend to modify the Lustre kernel patches.</para></note>
57       </listitem>
58       <listitem>
59         <para><emphasis role="italic">(Recommended)</emphasis> At least 1 GB memory on the machine
60           used for the build.</para>
61       </listitem>
62       <listitem>
63         <para><emphasis role="italic">(Recommended)</emphasis> At least 20 GB hard disk space on the
64           machine used for the build. </para>
65       </listitem>
66       <listitem>
67         <para>Security-Enhanced Linux (SELinux) <emphasis role="italic">disabled</emphasis> on all
68           Lustre servers and clients.  The Lustre software does not support SELinux.</para>
69       </listitem>
70     </itemizedlist>
71     <para>The installation procedure includes several steps:</para>
72     <itemizedlist>
73       <listitem>
74         <para> Patching the core kernel.</para>
75       </listitem>
76       <listitem>
77         <para> Building Lustre RPMs.</para>
78       </listitem>
79       <listitem>
80         <para> Installing and testing the Lustre file system.</para>
81       </listitem>
82     </itemizedlist>
83     <para>These steps are described in the following sections.</para>
84   </section>
85   <section xml:id="dbdoclet.50438210_65411">
86     <title><indexterm><primary>installing</primary><secondary>from source</secondary><tertiary>patching the kernel</tertiary></indexterm>Patching the Kernel</title>
87     <para>This section first describes how to prepare your machine to serve as a development
88       environment, including build tools, the Lustre source, and the Linux kernel source. It then
89       describes how to apply Lustre patches to the Linux kernel.</para>
90     <note>
91       <para>A patched Linux kernel is <emphasis>NOT</emphasis> required in order to build the
92 Lustre client code. The steps below for building the Linux kernel are only
93 required if a new kernel is needed for a Lustre server.</para>
94     </note>
95     <section remap="h3">
96       <title><indexterm>
97           <primary>quilt</primary>
98         </indexterm>Provisioning the Build Machine and Installing Dependencies</title>
99       <note>
100         <para>This example is specific for building a modified Red Hat Enteprise Linux 6 kernel for
101           the Lustre file system server. It is assumed that the operating system has been freshly
102           installed on a machine with the hostname <literal>rhel6-master</literal>.</para>
103       </note>
104       <para>To provision the build machine and install dependencies, complete these steps.</para>
105       <orderedlist>
106         <listitem>
107           <para>Log in as <systemitem>root</systemitem>.</para>
108         </listitem>
109         <listitem>
110           <para>Install the kernel development tools:</para>
111           <para>
112             <screen># yum -y groupinstall "Development Tools"</screen>
113           </para>
114           <note>
115             <para>If the Development Tools group is not available, you will need to satisfy the dependencies for the build manually.</para>
116           </note>
117         </listitem>
118         <listitem>
119           <para>Install additional dependencies:</para>
120           <para>
121             <screen># yum -y install xmlto asciidoc  elfutils-libelf-devel 
122      zlib-devel binutils-devel newt-devel python-devel  hmaccalc 
123      perl-ExtUtils-Embed</screen>
124           </para>
125         </listitem>
126         <listitem>
127           <para>(Optional) Install EPEL:</para>
128           <para>
129             <screen># wget 
130      http://download.fedoraproject.org/pub/epel/6/x86_64/
131      epel-release-6-8.noarch.rpm
132 # rpm -ivh ./epel-release-5-4.noarch.rpm
133 </screen>
134           </para>
135         </listitem>
136         <listitem>
137           <para>(Optional) Install quilt:</para>
138           <para>
139             <screen># yum -y install quilt
140 </screen>
141           </para>
142           <note>
143             <para>
144               <package>newt-devel</package> may not be available for Red Hat Enterprise Linux 6. One
145               option is to download the <link xmlns:xlink="http://www.w3.org/1999/xlink"
146                 xlink:href="http://mirror.centos.org/centos/6/os/x86_64/Packages/newt-devel-0.52.11-3.el6.x86_64.rpm"
147                 >newt-devel</link>, <link xmlns:xlink="http://www.w3.org/1999/xlink"
148                 xlink:href="http://mirror.centos.org/centos/6/os/x86_64/Packages/slang-devel-2.2.1-1.el6.x86_64.rpm"
149                 >slang-devel</link>, and <link xmlns:xlink="http://www.w3.org/1999/xlink"
150                 xlink:href="http://mirror.centos.org/centos/6/os/i386/Packages/asciidoc-8.4.5-4.1.el6.noarch.rpm"
151                 >asciidoc</link> RPMs from the CentOS Enterprise Linux Distribution and install
152               using:</para>
153             <para>
154               <screen>yum --nogpgcheck localinstall
155    ./newt-devel-0.52.11-3.el6.x86_64.rpm
156    ./slang-devel-2.2.1-1.el6.x86_64.rpm
157    ./asciidoc-8.4.5-4.1.el6.noarch.rpm
158 </screen>
159             </para>
160           </note>
161         </listitem>
162       </orderedlist>
163     </section>
164     <section remap="h3" xml:id="PreparingLustreSource">
165       <title>Preparing the Lustre Source</title>
166       <para>To prepare the Lustre source, complete these steps.</para>
167       <orderedlist>
168         <listitem>
169           <para>Create a user called <systemitem>build</systemitem> with a home directory
170               <systemitem>/home/build</systemitem>:</para>
171           <para>
172             <screen># useradd -m build
173 </screen>
174           </para>
175         </listitem>
176         <listitem>
177           <para>Switch to the user called <systemitem>build</systemitem> and change the directory to
178             the users home directory:</para>
179           <para>
180             <screen># su build
181 $ cd $HOME
182 </screen>
183           </para>
184         </listitem>
185         <listitem>
186           <para>Get the MASTER branch of the Lustre software from the Lustre software git
187             repository:</para>
188           <para>
189             <screen># git clone git://git.hpdd.intel.com/fs/lustre-release.git
190 # cd lustre-release
191 </screen>
192           </para>
193         </listitem>
194         <listitem>
195           <para>Run:</para>
196           <para>
197             <screen>sh ./autogen.sh
198 </screen>
199           </para>
200         </listitem>
201         <listitem>
202           <para>Resolve any outstanding dependencies. </para>
203           <para><screen># sh ./autogen.sh</screen>When <package>autogen.sh</package> completes
204             successfully, a response similar to the following is displayed: </para>
205           <para>
206             <screen>Checking for a complete tree...
207 checking forautomake-1.9&gt;= 1.9... found 1.9.6
208 ...
209 ...
210 configure.ac:10: installing `./config.sub'
211 configure.ac:12: installing `./install-sh'
212 configure.ac:12: installing `./missing'
213 Running autoconf</screen>
214           </para>
215         </listitem>
216       </orderedlist>
217     </section>
218     <section remap="h3">
219       <title>Preparing the Kernel Source</title>
220       <para>To build the kernel using <literal>rpmbuild</literal> (a tool specific to RPM-based
221         distributions), complete these steps.</para>
222       <orderedlist>
223         <listitem>
224           <para>Get the kernel source: </para>
225           <para>
226             <screen># cd $HOME
227 # mkdir -p kernel/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
228 # cd kernel
229 # echo '%_topdir %(echo $HOME)/kernel/rpmbuild'&gt; ~/.rpmmacros
230 </screen>
231           </para>
232         </listitem>
233         <listitem>
234           <para>Install the kernel source (enter on one line):</para>
235           <para>
236             <screen># rpm -ivh http://ftp.redhat.com/pub/redhat/linux/enterprise/
237     6Server/en/os/SRPMS/kernel-2.6.32-358.14.1.el6.src.rpm
238     2&gt;&amp;1 | grep -v mockb</screen>
239           </para>
240           <note>
241             <para>It is intended that the Lustre software master branch be kept up-to-date with the
242               most recent kernel distributions. However, a delay may occur between a periodic update
243               to a kernel distribution and a corresponding update of the master branch. The most
244               recent supported kernel in the master branch can be found in the source directory in
245                 <systemitem>lustre/kernel_patches/which_patch</systemitem>. If the master branch is
246               not current with the latest  distribution, download the most recent kernel RPMs from
247               the vendor's download site.</para>
248           </note>
249         </listitem>
250         <listitem>
251           <para>Prepare the source using <literal>rpmbuild</literal>:</para>
252           <para>
253             <screen># cd ~/kernel/rpmbuild
254 # rpmbuild -bp --target=`uname -m` ./SPECS/kernel.spec
255 </screen>
256           </para>
257           <para>The text displayed ends with the following:</para>
258           <para>
259             <screen>...
260 gpg: Total number processed: 1
261 gpg:               imported: 1
262 + gpg --homedir . --export --keyring ./kernel.pub Red
263 gpg: WARNING: unsafe permissions on homedir `.'
264 + gcc -o scripts/bin2c scripts/bin2c.c
265 + scripts/bin2c ksign_def_public_key __initdata
266 + cd ..
267 + exit 0</screen>
268           </para>
269         </listitem>
270       </orderedlist>
271       <para>The kernel source with the Red Hat Enterprise Linux patches applied is now residing in
272         the directory
273           <systemitem>/home/build/kernel/rpmbuild/BUILD/kernel-2.6.32-358.14.1.el6.x86_64/</systemitem></para>
274     </section>
275     <section remap="h3">
276       <title>Patching the Kernel Source with the Lustre Code</title>
277       <para>To patch the kernel source with the Lustre code, complete these steps.</para>
278       <orderedlist>
279         <listitem>
280           <para>Go to the directory containing the kernel source:</para>
281           <para>
282             <screen>#cd ~/kernel/rpmbuild/BUILD/kernel-2.6.32-358.14.1.el6/
283      linux-2.6.32-358.14.1.el6.x86_64/</screen>
284           </para>
285         </listitem>
286         <listitem>
287           <para>Edit the <filename>Makefile</filename> file in this directory to add a unique build
288             id to be able to ascertain that the kernel is booted. Modify line 4 as shown
289             below:</para>
290           <para>
291             <screen>EXTRAVERSION = -358.14.1.el6_lustre.x86_64</screen>
292           </para>
293         </listitem>
294         <listitem>
295           <para>Overwrite the <filename>.config</filename> file in this directory with the Lustre
296               <filename>.config</filename> file:</para>
297           <para>
298             <screen># cp ~/lustre-release/lustre/kernel_patches/kernel_configs/
299      kernel-2.6.32-2.6-rhel6-x86_64.config ./.config</screen>
300           </para>
301         </listitem>
302         <listitem>
303           <para>Link the Lustre series and patches:</para>
304           <para>
305             <screen># ln -s ~/lustre-release/lustre/kernel_patches/series/
306      2.6-rhel6.series series
307 # ln -s ~/lustre-release/lustre/kernel_patches/patches patches</screen>
308           </para>
309         </listitem>
310         <listitem>
311           <para>Apply the patches to the kernel source using <package>quilt</package>:</para>
312           <para>
313             <screen># quilt push -av</screen>
314           </para>
315           <para>The following is displayed:</para>
316           <screen>...
317 ...
318 patching file fs/jbd2/transaction.c
319 Hunk #3succeeded at 1222(offset 3lines).
320 Hunk #4succeeded at 1357(offset 3lines).
321 Now at patch  patches/jbd2-jcberr-2.6-rhel6.patch</screen>
322                 <note><para>If quilt is not installed, the following steps would be equivalent:
323 <screen>for PATCH in $(cat series); do patch -p1 &lt; patches/$PATCH; done</screen></para></note>
324         </listitem>
325       </orderedlist>
326     </section>
327   </section>
328   <section xml:id="dbdoclet.50438210_47529">
329     <title>
330       <indexterm>
331         <primary>installing</primary>
332         <secondary>from source</secondary>
333         <tertiary>installing Lustre RPMs</tertiary>
334       </indexterm> Building the Lustre RPMs</title>
335     <para>This section describes how to configure the patched kernel to work with the Lustre
336       software and how to create and install the Lustre packages (RPMs).</para>
337     <section>
338       <title>Building a New Kernel</title>
339       <para>To build a new kernel as an RPM, complete these steps.</para>
340       <orderedlist>
341         <listitem>
342           <para>In the kernel source directory, build a kernel rpm:</para>
343           <screen># cd ~/kernel/rpmbuild/BUILD/kernel-2.6.32-131.2.1.el6/
344      linux-2.6.32-131.2.1.el6.x86_64/
345 # make oldconfig || make menuconfig
346 # make include/asm
347 # make include/linux/version.h
348 # make SUBDIRS=scripts
349 # make include/linux/utsrelease.h
350 # make rpm</screen>
351           <para>A successful build  returns text similar to the following:</para>
352           <screen>...
353 ...
354 Wrote: /home/build/kernel/rpmbuild/SRPMS/
355      kernel-2.6.32-358.14.1.el6_lustre.x86_64-1.src.rpm
356 Wrote: /home/build/kernel/rpmbuild/RPMS/x86_64/
357      kernel-2.6.32-358.14.1.el6_lustre.x86_64-1.x86_64.rpm
358 Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.f73m1V
359 + umask 022+ cd /home/build/kernel/rpmbuild/BUILD
360 + cd kernel-2.6.32-358.14.1.el6_lustre.x86_64
361 + rm -rf /home/build/kernel/rpmbuild/BUILDROOT/
362      kernel-2.6.32-358.14.1.el6_lustre.x86_64-1.x86_64
363 + exit 0
364 rm ../kernel-2.6.3-358.14.1.el6_lustre.x86_64.tar.gz</screen>
365           <note>
366             <para>If a request to generate more entropy appears, some disk or keyboard I/O needs to
367               be generated. You can generate entropy by entering the following on another
368               terminal:<screen># grep -Ri 'any_text' /usr</screen></para>
369           </note>
370         </listitem>
371       </orderedlist>
372       <para>A fresh kernel RPM can now be found at
373           <systemitem>~/kernel/rpmbuild/RPMS/x86_64/kernel-2.6.32-358.14.1.el6_lustre.x86_64-1.x86_64.rpm</systemitem>.</para>
374     </section>
375     <section>
376       <title>Configuring and Building Lustre RPMs</title>
377       <para>To configure and build a set of Lustre RPMs, complete these steps.<orderedlist>
378           <listitem>
379             <para>Configure the Lustre source:</para>
380             <para>
381               <screen># cd ~/lustre-release/
382 # ./configure --with-linux=/home/build/kernel/rpmbuild/BUILD/
383      kernel-2.6.32-358.14.1.el6_lustre.x86_64/</screen>
384             </para>
385             <para>Text similar to the following is displayed:</para>
386             <para>
387               <screen>...
388 ...
389 LLCPPFLAGS:    -D__arch_lib__ -D_LARGEFILE64_SOURCE=1
390 CFLAGS:        -g -O2 -Werror
391 EXTRA_KCFLAGS:  -include /home/build/lustre-release/config.h  -g 
392      -I/home/build/lustre-release
393 /libcfs/include  -I/home/build/lustre-release/lnet/include 
394      -I/home/build/lustre-release/
395 lustre/include
396 LLCFLAGS:      -g -Wall -fPIC -D_GNU_SOURCE 
397 Type 'make' to build Lustre.</screen>
398             </para>
399           </listitem>
400           <listitem>
401             <para>Create the RPMs:</para>
402             <para>
403               <screen># make rpms</screen>
404             </para>
405             <para>Text similar to the following is displayed:</para>
406             <para>
407               <screen>...
408 ...
409 Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.TsLWpD
410 + umask 022
411 + cd /home/build/kernel/rpmbuild/BUILD
412 + cd lustre-2.0.61
413 + rm -rf /home/build/kernel/rpmbuild/BUILDROOT/
414      lustre-2.0.61-2.6.32-358.14.1.el6_lustre.x86_64_g0533e7b.x86_64
415 + exit 0
416 make[1]: Leaving directory `/home/build/lustre-release'</screen>
417             </para>
418           </listitem>
419         </orderedlist></para>
420       <para>The resulting RPMs are in
421         <systemitem>~build/kernel/rpmbuild/RPMS/x86_64/</systemitem>.<screen>kernel-2.6.3-358.14.1.el6_lustre.x86_64-1.x86_64.rpm
422 lustre-2.0.61-2.6.32-358.14.1.el6_lustre.x86_64_g0533e7b.x86_64.rpm
423 lustre-debuginfo-2.0.61-2.6.32-358.14.1.el6_lustre.x86_64_g0533e7b.x86_64.rpm
424 lustre-ldiskfs-3.3.0-2.6.32-358.14.1.el6_lustre.x86_64_g0533e7b.x86_64.rpm
425 lustre-ldiskfs-debuginfo-3.3.0-2.6.32-358.14.1.el6_lustre.x86_64_g0533e7b.x86_64.rpm
426 lustre-modules-2.0.61-2.6.32-358.14.1.el6_lustre.x86_64_g0533e7b.x86_64.rpm
427 lustre-source-2.0.61-2.6.32-358.14.1.el6_lustre.x86_64_g0533e7b.x86_64.rpm
428 lustre-tests-2.0.61-2.6.32-358.14.1.el6_lustre.x86_64_g0533e7b.x86_64.rpm</screen></para>
429     </section>
430     <section xml:id="InstallingLustreKernel">
431       <title><indexterm>
432           <primary>installing</primary>
433           <secondary>from source</secondary>
434           <tertiary>installing the Lustre kernel</tertiary>
435         </indexterm>Installing the Lustre Kernel</title>
436       <para>To install the Lustre kernel, complete these steps.<orderedlist>
437           <listitem>
438             <para>As <systemitem>root</systemitem>, install the kernel:</para>
439             <para>
440               <screen># rpm -ivh ~build/kernel/rpmbuild/RPMS/x86_64/
441      kernel-2.6.32-358.14.1.el6_lustre.x86_64-1.x86_64.rpm</screen>
442             </para>
443           </listitem>
444           <listitem>
445             <para>Create <literal>initrd</literal> using <literal>dracut</literal>:</para>
446             <para>
447               <screen># /sbin/new-kernel-pkg --package kernel --mkinitrd --dracut 
448      --depmod --install 2.6.32-358.14.1.el6_lustre.x86_64</screen>
449             </para>
450           </listitem>
451           <listitem>
452             <para>Reboot the system:</para>
453             <para>
454               <screen>reboot</screen>
455             </para>
456             <para>A login prompt such as that shown below indicates
457               success:<screen>Red Hat Enterprise Linux Server release 6.0(Santiago)
458 Kernel 2.6.3-358.14.1.el6_lustre.x86_64 on an x86_64 
459
460 client-10login:
461 </screen></para>
462           </listitem>
463         </orderedlist></para>
464     </section>
465     <section>
466       <title><indexterm>
467           <primary>installing</primary>
468           <secondary>from source</secondary>
469           <tertiary>building Lustre with OFED</tertiary>
470         </indexterm>Building a Lustre File System with a Third-party Network Stack on OFED
471         (Optional)</title>
472       <para>When using third-party network hardware, you must follow a specific process to install
473         and recompile the Lustre software. This section provides an installation example that shows
474         how to build Lustre software release 2.4.x when using the OpenFabrics Enterprise
475         Distribution (OFED*) version 3.5-1 open-source software. The same process can be used for
476         other third-party network stacks by replacing the OFED installation procedure and using the
477         appropriate <literal>--with</literal> option when configuring the Lustre source code.<orderedlist>
478           <listitem>
479             <para>Install the Lustre kernel (see <xref xmlns:xlink="http://www.w3.org/1999/xlink"
480                 linkend="InstallingLustreKernel"/>).</para>
481           </listitem>
482           <listitem>
483             <para>Compile and install the OFED stack. As root, enter:</para>
484             <screen># cd /usr/src
485 # tar –zxvf OFED-3.5-1.tgz
486 # cd OFED-3.5-1
487 # ./install.pl</screen>
488             <para>A directory <literal>/usr/src/compat-rdma</literal> is created.</para>
489           </listitem>
490           <listitem>
491             <para>Configure and build Lustre source code:</para>
492             <orderedlist numeration="loweralpha">
493               <listitem>
494                 <para>Install the Lustre source. This can be done via RPM or git (see <xref
495                     xmlns:xlink="http://www.w3.org/1999/xlink" linkend="PreparingLustreSource"
496                   />).</para>
497               </listitem>
498               <listitem>
499                 <para>Configure and build the Lustre source code</para>
500                 <screen>$ cd ~/lustre-release
501 $ sh ./autogen.sh</screen>
502               </listitem>
503             </orderedlist>
504           </listitem>
505         </orderedlist></para>
506       <para>The <literal>./configure --help</literal> command shows a list of all the
507           <literal>--with</literal> options. All third-party network stacks are built in this
508         manner.<screen>$ ./configure --with-linux=/usr/src/kernels/$(uname –r) --with-o2ib=/usr/src/compat-rdma
509 $ make
510 $ make rpms</screen></para>
511       <para>The <literal>make rpms</literal> command output shows the location of the generated
512         RPMs.</para>
513     </section>
514   </section>
515   <section xml:id="section_g4d_yby_lk">
516     <title><indexterm>
517         <primary>installing</primary>
518         <secondary>from source</secondary>
519         <tertiary>testing a Lustre file system</tertiary>
520       </indexterm>Installing and Testing a Lustre File System</title>
521     <para>This section describes how to install the Lustre RPMs and run the Lustre test
522       suite.</para>
523     <section>
524       <title>Installing <package>e2fsprogs</package></title>
525       <para>The <package>e2fsprogs</package> package is required on all Lustre file system server nodes. To download
526         and install <literal>e2fsprogs</literal>, complete these steps.<orderedlist>
527           <listitem>
528             <para>Download <literal>e2fsprogs</literal> from the <link
529                 xmlns:xlink="http://www.w3.org/1999/xlink"
530                 xlink:href="https://wiki.hpdd.intel.com/display/PUB/Lustre+Releases">Lustre
531                 Releases</link> repository.</para>
532           </listitem>
533           <listitem>
534             <para>Install the <literal>e2fsprogs</literal> package:</para>
535             <para>
536               <screen># rpm -Uvh
537      ./e2fsprogs-1.42.7.wc2-7.el6.x86_64.rpm 
538      ./e2fsprogs-libs-1.42.7.wc2-7.el6.x86_64.rpm
539
540 </screen>
541             </para>
542           </listitem>
543         </orderedlist></para>
544     </section>
545     <section>
546       <title>Installing the Lustre RPMs</title>
547       <para>To install the Lustre RPMs, complete these steps as <systemitem>root</systemitem>:<orderedlist>
548           <listitem>
549             <para>Make the directory containing the Lustre RPMs your current directory:</para>
550             <para>
551               <screen># cd /home/build/kernel/rpmbuild/RPMS/x86_64/
552 </screen>
553             </para>
554           </listitem>
555           <listitem>
556             <para>Install the RPMs:</para>
557             <para>
558               <screen># rpm -ivh lustre-ldiskfs-3.3.0-2.6.32-358.14.1.el6_lustre.x86_64*
559 # rpm -ivh lustre-modules-2.0.61-2.6.32-358.14.1.el6_lustre.x86_64*
560 # rpm -ivh lustre-2.0.61-2.6.32-358.14.1.el6_lustre.x86_64_*
561 # rpm -ivh lustre-tests-*</screen>
562             </para>
563           </listitem>
564         </orderedlist></para>
565     </section>
566     <section>
567       <title>Running the Test Suite</title>
568       <para>To test a single node Lustre file system installation, complete these steps.<orderedlist>
569           <listitem>
570             <para>Mount the Lustre file system.</para>
571             <para>
572               <screen># /usr/lib64/lustre/tests/llmount.sh</screen>
573             </para>
574             <para>Text similar to the following will be
575               displayed:<screen>Loading modules from /usr/lib64/lustre/tests/..
576 debug=0x33f0404
577 subsystem_debug=0xffb7e3ff
578 gss/krb5 is not supported
579 Formatting mgs, mds, osts
580 Format mds1: /tmp/lustre-mdt1
581 Format ost1: /tmp/lustre-ost1
582 Format ost2: /tmp/lustre-ost2
583 Checking servers environments
584 Checking clients rhel6-master environments
585 Loading modules from /usr/lib64/lustre/tests/..
586 debug=0x33f0404
587 subsystem_debug=0xffb7e3ff
588 gss/krb5 is not supported
589 Setup mgs, mdt, osts
590 Starting mds1: -o loop,user_xattr,acl  
591 /tmp/lustre-mdt1 /mnt/mds1
592 debug=0x33f0404
593 subsystem_debug=0xffb7e3ff
594 debug_mb=10
595 Started lustre-MDT0000
596 Starting ost1: -o loop /tmp/lustre-ost1 /mnt/ost1
597 debug=0x33f0404
598 subsystem_debug=0xffb7e3ff
599 debug_mb=10
600 Started lustre-OST0000
601 Starting ost2: -o loop /tmp/lustre-ost2 /mnt/ost2
602 debug=0x33f0404
603 subsystem_debug=0xffb7e3ff
604 debug_mb=10
605 Started lustre-OST0001
606 Starting client: rhel5-build: -o user_xattr,acl,flock 
607 rhel6-master@tcp:/lustre /mnt/lustre
608 debug=0x33f0404
609 subsystem_debug=0xffb7e3ff
610 debug_mb=10
611 Using TIMEOUT=20
612 disable quota as required</screen></para>
613             <para>The Lustre file system is now available at
614               <systemitem>/mnt/lustre</systemitem>.</para>
615                         <warning><para>The Lustre file system available at <literal>/mnt/lustre</literal> is a test file system built from small loopback devices in <literal>/tmp</literal> and not for production use.</para></warning>
616             <note>
617               <para>If you see the error below, associate the IP address of a non-loopback interface
618                 with the name of your machine in the file
619                 <filename>/etc/hosts</filename>.<screen>mkfs.lustre: Can't parse NID 'rhel6-master@tcp'</screen></para>
620             </note>
621           </listitem>
622         </orderedlist></para>
623     </section>
624   </section>
625 </chapter>