1 <?xml version='1.0' encoding='utf-8'?>
2 <chapter xmlns="http://docbook.org/ns/docbook"
3 xmlns:xl="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en-US"
4 xml:id="installinglustre">
5 <title xml:id="installinglustre.title">Installing the Lustre Software</title>
6 <para>This chapter describes how to install the Lustre software from RPM
7 packages. It includes:</para>
11 <xref linkend="preparing_installation" />
16 <xref linkend="lustre_installation" />
20 <para>For hardware and system requirements and hardware configuration
22 <xref linkend="settinguplustresystem" />.</para>
23 <section xml:id="preparing_installation">
26 <primary>installing</primary>
27 <secondary>preparation</secondary>
28 </indexterm>Preparing to Install the Lustre Software</title>
29 <para>You can install the Lustre software from downloaded packages (RPMs)
30 or directly from the source code. This chapter describes how to install the
31 Lustre RPM packages. Instructions to install from source code are beyond
32 the scope of this document, and can be found elsewhere online.</para>
33 <para>The Lustre RPM packages are tested on current versions of Linux
34 enterprise distributions at the time they are created. See the release
35 notes for each version for specific details.</para>
36 <section xml:id="section_rqs_tjw_3k">
37 <title>Software Requirements</title>
38 <para>To install the Lustre software from RPMs, the following are
43 <emphasis role="bold">
44 <emphasis role="italic">Lustre server packages</emphasis>
45 </emphasis>. The required packages for Lustre 2.9 EL7 servers are
46 listed in the table below, where
47 <replaceable>ver</replaceable> refers to the Lustre release and
48 kernel version (e.g., 2.9.0-1.el7) and
49 <replaceable>arch</replaceable> refers to the processor architecture
50 (e.g., x86_64). These packages are available in the
51 <link xl:href="https://wiki.whamcloud.com/display/PUB/Lustre+Releases">
52 Lustre Releases</link> repository, and may differ depending on
53 your distro and version.</para>
55 <table frame="all" xml:id="table.installed_server_pkg">
56 <title>Packages Installed on Lustre Servers</title>
58 <colspec colname="c1" colnum="1" colwidth="1.18*" />
59 <colspec colname="c2" colnum="2" colwidth="1*" />
62 <entry>Package Name</entry>
63 <entry>Description</entry>
69 <code>kernel-<replaceable>ver</replaceable>_lustre.<replaceable>arch</replaceable></code>
71 <entry>Linux kernel with Lustre software patches (often
72 referred to as "patched kernel")</entry>
76 <code>lustre-<replaceable>ver</replaceable>.<replaceable>arch</replaceable></code>
78 <entry>Lustre software command line tools</entry>
82 <code>kmod-lustre-<replaceable>ver</replaceable>.<replaceable>arch</replaceable></code>
84 <entry>Lustre-patched kernel modules</entry>
88 <code>kmod-lustre-osd-ldiskfs-<replaceable>ver</replaceable>.<replaceable>arch</replaceable></code>
90 <entry>Lustre back-end file system tools for ldiskfs-based
96 <code>lustre-osd-ldiskfs-mount-<replaceable>ver</replaceable>.<replaceable>arch</replaceable></code>
98 <entry>Helper library for <literal>mount.lustre</literal>
99 and <literal>mkfs.lustre</literal> for ldiskfs-based servers.
104 <code>kmod-lustre-osd-zfs-<replaceable>ver</replaceable>.<replaceable>arch</replaceable></code>
106 <entry>Lustre back-end file system tools for ZFS. This is
108 <literal>lustre-osd-ldiskfs</literal> (kmod-spl and
109 kmod-zfs available separately).</entry>
113 <code>lustre-osd-zfs-mount-<replaceable>ver</replaceable>.<replaceable>arch</replaceable></code>
115 <entry>Helper library for <literal>mount.lustre</literal>
116 and <literal>mkfs.lustre</literal> for ZFS-based servers
117 (zfs utilities available separately).
122 <code>e2fsprogs</code>
124 <entry>Utilities to maintain Lustre ldiskfs back-end file
130 <code>lustre-tests-<replaceable>ver</replaceable>_lustre.<replaceable>arch</replaceable></code>
132 <entry>Scripts and programs used for running regression
133 tests for Lustre, but likely only of interest to
134 Lustre developers or testers.
144 <emphasis role="bold">
145 <emphasis role="italic">Lustre client packages</emphasis>
146 </emphasis>. The required packages for Lustre 2.9 EL7 clients are
147 listed in the table below, where
148 <replaceable>ver</replaceable> refers to the Linux distribution (e.g.,
149 3.6.18-348.1.1.el5). These packages are available in the
150 <link xl:href="https://wiki.whamcloud.com/display/PUB/Lustre+Releases">
151 Lustre Releases</link> repository.</para>
153 <table frame="all" xml:id="table.installed_client_pkg">
154 <title>Packages Installed on Lustre Clients</title>
156 <colspec colname="c1" colnum="1" colwidth="1*" />
157 <colspec colname="c2" colnum="2" colwidth="1.02*" />
160 <entry>Package Name</entry>
161 <entry>Description</entry>
167 <code>kmod-lustre-client-<replaceable>ver</replaceable>.<replaceable>arch</replaceable></code>
169 <entry>Patchless kernel modules for client</entry>
173 <code>lustre-client-<replaceable>ver</replaceable>.<replaceable>arch</replaceable></code>
175 <entry>Client command line tools</entry>
179 <code>lustre-client-dkms-<replaceable>ver</replaceable>.<replaceable>arch</replaceable></code>
181 <entry>Alternate client RPM to kmod-lustre-client with
182 Dynamic Kernel Module Support (DKMS) installation. This
183 avoids the need to install a new RPM for each kernel update,
184 but requires a full build environment on the client.</entry>
191 <para>The version of the kernel running on a Lustre client must be
192 the same as the version of the
193 <code>kmod-lustre-client-<replaceable>ver</replaceable></code>
194 package being installed, unless the DKMS package is installed.
195 If the kernel running on the client is not compatible, a kernel
196 that is compatible must be installed on the client before the
197 Lustre file system software is used.</para>
202 <emphasis role="bold">
203 <emphasis role="italic">Lustre LNet network driver (LND)</emphasis>
204 </emphasis>. The Lustre LNDs provided with the Lustre software are
205 listed in the table below. For more information about Lustre LNet,
207 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
208 linkend="understandinglustrenetworking" />.</para>
209 <table frame="all" xml:id="supported_network_types">
210 <title>Network Types Supported by Lustre LNDs</title>
212 <colspec colname="c1" colnum="1" colwidth="1*" />
213 <colspec colname="newCol2" colnum="2" colwidth="1.95*" />
216 <entry>Supported Network Types</entry>
223 <entry>Any network carrying TCP traffic, including GigE,
224 10GigE, and IPoIB</entry>
227 <entry>InfiniBand network</entry>
228 <entry>OpenFabrics OFED (o2ib)</entry>
232 <entry>Gemini (Cray)</entry>
238 </itemizedlist></para>
241 <para>The InfiniBand and TCP Lustre LNDs are routinely tested during
242 release cycles. The other LNDs are maintained by their respective
248 <emphasis role="bold">
249 <emphasis role="italic">High availability software</emphasis>
250 </emphasis>. If needed, install third party high-availability
251 software. For more information, see
252 <xref linkend="failover_setup" />.</para>
256 <emphasis role="bold">
257 <emphasis role="italic">Optional packages.</emphasis>
258 </emphasis>Optional packages provided in the
259 <link xl:href="https://wiki.whamcloud.com/display/PUB/Lustre+Releases">
260 Lustre Releases</link> repository may include the following
261 (depending on the operating system and platform):
265 <code>kernel-debuginfo</code>,
266 <code>kernel-debuginfo-common</code>,
267 <code>lustre-debuginfo</code>,
268 <code>lustre-osd-ldiskfs-debuginfo</code>- Versions of required
269 packages with debugging symbols and other debugging options
270 enabled for use in troubleshooting.</para>
274 <code>kernel-devel</code>, - Portions of the kernel tree needed
275 to compile third party modules, such as network drivers.</para>
279 <code>kernel-firmware</code>- Standard Red Hat Enterprise Linux
280 distribution that has been recompiled to work with the Lustre
285 <code>kernel-headers</code>- Header files installed under
286 /user/include and used when compiling user-space,
287 kernel-related code.</para>
291 <code>lustre-source</code>- Lustre software source code.</para>
295 <emphasis role="italic">(Recommended)</emphasis>
297 <code>perf-debuginfo</code>,
298 <code>python-perf</code>,
299 <code>python-perf-debuginfo</code>- Linux performance analysis
300 tools that have been compiled to match the Lustre kernel
303 </itemizedlist></para>
308 <section xml:id="section_rh2_d4w_gk">
309 <title>Environmental Requirements</title>
310 <para>Before installing the Lustre software, make sure the following
311 environmental requirements are met.
315 <emphasis role="italic">(Required)</emphasis>
316 <emphasis role="italic">
317 <emphasis role="bold">Use the same user IDs (UID) and group IDs
318 (GID) on all clients.</emphasis>
319 </emphasis>If use of supplemental groups is required, see
320 <xref linkend="identity_upcall" /> for information about
321 supplementary user and group cache upcall (<code>identity_upcall</code>).</para>
325 <emphasis role="italic">(Recommended)</emphasis>
326 <emphasis role="italic">
327 <emphasis role="bold">Provide remote shell access to
329 </emphasis>It is recommended that all cluster nodes have remote shell
330 client access to facilitate the use of Lustre configuration and
331 monitoring scripts. Parallel Distributed SHell (pdsh) is preferable,
332 although Secure SHell (SSH) is acceptable.</para>
336 <emphasis role="italic">(Recommended)</emphasis>
337 <emphasis role="italic">
338 <emphasis role="bold">Ensure client clocks are
339 synchronized.</emphasis>
340 </emphasis>The Lustre file system uses client clocks for timestamps.
341 If clocks are out of sync between clients, files will appear with
342 different time stamps when accessed by different clients. Drifting
343 clocks can also cause problems by, for example, making it difficult
344 to debug multi-node issues or correlate logs, which depend on
345 timestamps. We recommend that you use Network Time Protocol (NTP) to
346 keep client and server clocks in sync with each other. For more
347 information about NTP, see:
348 <link xl:href="https://www.ntp.org/">https://www.ntp.org</link>.</para>
352 <emphasis role="italic">(Recommended)</emphasis>
353 <emphasis role="italic">
354 <emphasis role="bold">Make sure security extensions</emphasis>
356 (such as the Novell AppArmor <superscript>*</superscript>security
358 <emphasis role="italic">
359 <emphasis role="bold">network packet filtering tools</emphasis>
361 (such as iptables) do not interfere with the Lustre software.</para>
363 </itemizedlist></para>
366 <section xml:id="lustre_installation">
367 <title>Lustre Software Installation Procedure</title>
369 <para>Before installing the Lustre software, back up ALL data. The Lustre
370 software contains kernel modifications that interact with storage devices
371 and may introduce security issues and data loss if not installed,
372 configured, or administered properly.</para>
374 <para>To install the Lustre software from RPMs, complete the steps
378 <para>Verify that all Lustre installation requirements have been
382 <para>For hardware requirements, see
383 <xref linkend="settinguplustresystem" />.</para>
386 <para>For software and environmental requirements, see the section
387 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
388 linkend="preparing_installation" />above.</para>
394 <literal>e2fsprogs</literal> RPMs for your platform from the
395 <link xl:href="https://wiki.whamcloud.com/display/PUB/Lustre+Releases">
396 Lustre Releases</link> repository.</para>
399 <para>Download the Lustre server RPMs for your platform from the
400 <link xl:href="https://wiki.whamcloud.com/display/PUB/Lustre+Releases">
401 Lustre Releases</link> repository. See
402 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
403 linkend="table.installed_server_pkg" />for a list of required packages.
406 <listitem xml:id="lustre_server_e2fsprogs_install">
407 <para>Install the Lustre server and
408 <literal>e2fsprogs</literal> packages on all Lustre servers (MGS, MDSs,
410 <orderedlist numeration="loweralpha">
412 <para>Log onto a Lustre server as the
413 <literal>root</literal> user</para>
417 <literal>yum</literal> command to install the packages:</para>
420 # yum --nogpgcheck install pkg1.rpm pkg2.rpm ...
425 <para>Verify the packages are installed correctly:</para>
428 rpm -qa|egrep "lustre|wc"|sort
433 <para>Reboot the server.</para>
436 <para>Repeat these steps on each Lustre server.</para>
438 </orderedlist></para>
441 <para>Download the Lustre client RPMs for your platform from the
442 <link xl:href="https://wiki.whamcloud.com/display/PUB/Lustre+Releases">
443 Lustre Releases</link> repository. See
444 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
445 linkend="table.installed_client_pkg" />for a list of required packages.
449 <para>Install the Lustre client packages on all Lustre clients.
451 <para>The version of the kernel running on a Lustre client must be
452 the same as the version of the
453 <literal>lustre-client-modules-</literal>
454 <replaceable>ver</replaceable> package being installed. If not, a
455 compatible kernel must be installed on the client before the Lustre
456 client packages are installed.</para>
458 <orderedlist numeration="loweralpha">
460 <para>Log onto a Lustre client as the root user.</para>
464 <literal>yum</literal> command to install the packages:</para>
467 # yum --nogpgcheck install pkg1.rpm pkg2.rpm ...
472 <para>Verify the packages were installed correctly:</para>
475 # rpm -qa|egrep "lustre|kernel"|sort
480 <para>Reboot the client.</para>
483 <para>Repeat these steps on each Lustre client.</para>
488 <para>To configure LNet, go to
489 <xref linkend="configuringlnet" />. If default settings will be used for
491 <xref linkend="configuringlustre" />.</para>
495 vim:expandtab:shiftwidth=2:tabstop=8: