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="upgradinglustre">
5 <title xml:id="upgradinglustre.title">Upgrading a Lustre File System</title>
6 <para>This chapter describes interoperability between Lustre software
7 releases. It also provides procedures for upgrading from Lustre software
8 release 1.8 to Lustre software release 2.x , from a Lustre software release
9 2.x to a more recent Lustre software release 2.x (major release upgrade), and
10 from a a Lustre software release 2.x.y to a more recent Lustre software
11 release 2.x.y (minor release upgrade). It includes the following
16 <xref linkend="dbdoclet.50438205_82079" />
21 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
22 linkend="Upgrading_2.x" />
27 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
28 linkend="Upgrading_2.x.x" />
32 <section xml:id="dbdoclet.50438205_82079">
35 <primary>Lustre</primary>
36 <secondary>upgrading</secondary>
40 <primary>upgrading</primary>
41 </indexterm>Release Interoperability and Upgrade Requirements</title>
43 <emphasis role="italic">
44 <emphasis role="bold">Lustre software release 2.x (major)
49 <para>All servers must be upgraded at the same time, while some or
50 all clients may be upgraded independently of the servers.</para>
53 <para>All servers must be be upgraded to a Linux kernel supported by
54 the Lustre software. See the Lustre Release Notes for your Lustre
55 version for a list of tested Linux distributions.</para>
58 <para>Clients to be upgraded must be running a compatible Linux
59 distribution as described in the Release Notes.</para>
64 <emphasis role="italic">
65 <emphasis role="bold">Lustre software release 2.x.y release (minor)
71 <para>All servers must be upgraded at the same time, while some or all
72 clients may be upgraded.</para>
75 <para>Rolling upgrades are supported for minor releases allowing
76 individual servers and clients to be upgraded without stopping the
77 Lustre file system.</para>
81 <section xml:id="Upgrading_2.x">
84 <primary>upgrading</primary>
85 <secondary>major release (2.x to 2.x)</secondary>
88 <primary>wide striping</primary>
91 <primary>MDT</primary>
92 <secondary>multiple MDSs</secondary>
95 <primary>large_xattr</primary>
96 <secondary>ea_inode</secondary>
99 <primary>wide striping</primary>
100 <secondary>large_xattr</secondary>
101 <tertiary>ea_inode</tertiary>
102 </indexterm>Upgrading to Lustre Software Release 2.x (Major
104 <para>The procedure for upgrading from a Lustre software release 2.x to a
105 more recent 2.x release of the Lustre software is described in this
108 <para>This procedure can also be used to upgrade Lustre software release
109 1.8.6-wc1 or later to any Lustre software release 2.x. To upgrade other
110 versions of Lustre software release 1.8.x, contact your support
114 <para>In Lustre software release 2.2, a feature has been added for
115 ldiskfs-based MDTs that allows striping a single file across up to 2000
116 OSTs. By default, this "wide striping" feature is disabled. It is
117 activated by setting the <literal>ea_inode</literal> option on the MDT
118 using either <literal>mkfs.lustre</literal> or <literal>tune2fs</literal>.
119 For example after upgrading an existing file system to Lustre software
120 release 2.2 or later, wide striping can be enabled by running the
121 following command on the MDT device before mounting it:
122 <screen>tune2fs -O large_xattr</screen>
123 Once the wide striping feature is enabled and in use on the MDT, it is
124 not possible to directly downgrade the MDT file system to an earlier
125 version of the Lustre software that does not support wide striping. To
126 disable wide striping:
129 <para>Delete all wide-striped files, <emphasis>OR</emphasis>
130 use <literal>lfs_migrate -c 160</literal> (or fewer stripes)
131 to migrate the files to use fewer OSTs. This does not affect the
132 total number of OSTs that the whole filesystem can access.</para>
135 <para>Unmount the MDT.</para>
138 <para>Run the following command to turn off the
139 <literal>large_xattr</literal> option:
140 <screen>tune2fs -O ^large_xattr</screen></para>
142 </orderedlist>Using either
143 <literal>mkfs.lustre</literal> or
144 <literal>tune2fs</literal> with
145 <literal>large_xattr</literal> or
146 <literal>ea_inode</literal> option reseults in
147 <literal>ea_inode</literal> in the file system feature list.</para>
149 <note condition="l23">
150 <para>To generate a list of all files with more than 160 stripes use
151 <literal>lfs find</literal> with the
152 <literal>--stripe-count</literal> option:
153 <screen>lfs find ${mountpoint} --stripe-count=+160</screen></para>
155 <note condition="l24">
156 <para>In Lustre software release 2.4, a new feature allows using multiple
157 MDTs, which can each serve one or more remote sub-directories in the file
159 <literal>root</literal> directory is always located on MDT0.</para>
160 <para>Note that clients running a release prior to the Lustre software
161 release 2.4 can only see the namespace hosted by MDT0 and will return an
162 IO error if an attempt is made to access a directory on another
165 <para>To upgrade a Lustre software release 2.x to a more recent major
166 release, complete these steps:</para>
169 <para>Create a complete, restorable file system backup.</para>
171 <para>Before installing the Lustre software, back up ALL data. The
172 Lustre software contains kernel modifications that interact with
173 storage devices and may introduce security issues and data loss if
174 not installed, configured, or administered properly. If a full backup
175 of the file system is not practical, a device-level backup of the MDT
176 file system is recommended. See
177 <xref linkend="backupandrestore" /> for a procedure.</para>
181 <para>Shut down the file system by unmounting all clients and servers
182 in the order shown below (unmounting a block device causes the Lustre
183 software to be shut down on that node):</para>
184 <orderedlist numeration="loweralpha">
186 <para>Unmount the clients. On each client node, run:</para>
187 <screen>umount -a -t lustre</screen>
190 <para>Unmount the MDT. On the MDS node, run:</para>
191 <screen>umount -a -t lustre</screen>
194 <para>Unmount all the OSTs. On each OSS node, run:</para>
195 <screen>umount -a -t lustre</screen>
200 <para>Upgrade the Linux operating system on all servers to a compatible
201 (tested) Linux distribution and reboot.</para>
204 <para>Upgrade the Linux operating system on all clients to Red Hat
205 Enterprise Linux 6 or other compatible (tested) distribution and
209 <para>Download the Lustre server RPMs for your platform from the
210 <link xl:href="https://wiki.hpdd.intel.com/display/PUB/Lustre+Releases">
211 Lustre Releases</link>repository. See
212 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
213 linkend="table_cnh_5m3_gk" />for a list of required packages.</para>
216 <para>Install the Lustre server packages on all Lustre servers (MGS,
217 MDSs, and OSSs).</para>
218 <orderedlist numeration="loweralpha">
220 <para>Log onto a Lustre server as the
221 <literal>root</literal> user</para>
225 <literal>yum</literal> command to install the packages:</para>
227 <screen># yum --nogpgcheck install pkg1.rpm pkg2.rpm ... </screen>
231 <para>Verify the packages are installed correctly:</para>
233 <screen>rpm -qa|egrep "lustre|wc"</screen>
237 <para>Repeat these steps on each Lustre server.</para>
242 <para>Download the Lustre client RPMs for your platform from the
243 <link xl:href="https://wiki.hpdd.intel.com/display/PUB/Lustre+Releases">
244 Lustre Releases</link>repository. See
245 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
246 linkend="table_j3r_ym3_gk" />for a list of required packages.</para>
248 <para>The version of the kernel running on a Lustre client must be
249 the same as the version of the
250 <literal>lustre-client-modules-</literal>
251 <replaceable>ver</replaceable>package being installed. If not, a
252 compatible kernel must be installed on the client before the Lustre
253 client packages are installed.</para>
257 <para>Install the Lustre client packages on each of the Lustre clients
258 to be upgraded.</para>
259 <orderedlist numeration="loweralpha">
261 <para>Log onto a Lustre client as the
262 <literal>root</literal> user.</para>
266 <literal>yum</literal> command to install the packages:</para>
268 <screen># yum --nogpgcheck install pkg1.rpm pkg2.rpm ... </screen>
272 <para>Verify the packages were installed correctly:</para>
274 <screen># rpm -qa|egrep "lustre|kernel"</screen>
278 <para>Repeat these steps on each Lustre client.</para>
283 <para>(Optional) For upgrades to Lustre software release 2.2 or higher,
284 to enable wide striping on an existing MDT, run the following command
286 <screen>tune2fs -O ea_inode /dev/<replaceable>mdtdev</replaceable></screen>
288 <para>For more information about wide striping, see
289 <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="wide_striping" />.</para>
292 <para>(Optional) For upgrades to Lustre software release 2.4 or higher,
293 to format an additional MDT, complete these steps:
294 <orderedlist numeration="loweralpha">
296 <para>Determine the index used for the first MDT (each MDT must
297 have unique index). Enter:
298 <screen>client$ lctl dl | grep mdc
299 36 UP mdc lustre-MDT0000-mdc-ffff88004edf3c00
300 4c8be054-144f-9359-b063-8477566eb84e 5</screen></para>
301 <para>In this example, the next available index is 1.</para>
304 <para>Add the new block device as a new MDT at the next available
305 index by entering (on one line):
306 <screen>mds# mkfs.lustre --reformat --fsname=<replaceable>filesystem_name</replaceable> --mdt \
307 --mgsnode=<replaceable>mgsnode</replaceable> --index <replaceable>1</replaceable>
308 <replaceable>/dev/mdt1_device</replaceable></screen></para>
310 </orderedlist></para>
313 <para>(Optional) If you are upgrading to Lustre software release 2.3 or
314 higher from Lustre software release 2.2 or earlier and want to enable
315 the quota feature, complete these steps:
316 <orderedlist numeration="loweralpha">
318 <para>Before setting up the file system, enter on both the MDS and
320 <screen>tunefs.lustre --quota</screen></para>
323 <para>When setting up the file system, enter:
324 <screen>conf_param $FSNAME.quota.mdt=$QUOTA_TYPE
325 conf_param $FSNAME.quota.ost=$QUOTA_TYPE</screen></para>
327 </orderedlist></para>
330 <para>(Optional) If you are upgrading from Lustre software release 1.8,
331 you must manually enable the FID-in-dirent feature. On the MDS, enter:
332 <screen>tune2fs –O dirdata /dev/<replaceable>mdtdev</replaceable></screen></para>
334 <para>This step is not reversible. Do not complete this step until
335 you are sure you will not be downgrading the Lustre software.</para>
337 <para condition='l24'>This step only enables FID-in-dirent for newly
338 created files. If you are upgrading to Lustre software release 2.4,
339 you can use namespace LFSCK to enable FID-in-dirent for the existing
340 files. For the case of upgrading from Lustre software release 1.8, it is
341 important to note that if you do NOT enable <literal>dirdata</literal> via
342 the <literal>tune2fs</literal> command above, the namespace LFSCK will NOT
343 generate FID-in-dirent for the existing files. For more information about
344 FID-in-dirent and related functionalities in LFSCK, see
345 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
346 linkend="understandinglustre.storageio" />.</para>
349 <para>Start the Lustre file system by starting the components in the
350 order shown in the following steps:</para>
351 <orderedlist numeration="loweralpha">
353 <para>Mount the MGT. On the MGS, run
354 <screen>mgs# mount -a -t lustre</screen></para>
357 <para>Mount the MDT(s). On each MDT, run:
358 <screen>mds# mount -a -t lustre</screen></para>
361 <para>Mount all the OSTs. On each OSS node, run:</para>
362 <screen>oss# mount -a -t lustre</screen>
364 <para>This command assumes that all the OSTs are listed in the
365 <literal>/etc/fstab</literal> file. OSTs that are not listed in
367 <literal>/etc/fstab</literal> file, must be mounted individually
368 by running the mount command:</para>
369 <screen>mount -t lustre <replaceable>/dev/block_device</replaceable><replaceable>/mount_point</replaceable></screen>
373 <para>Mount the file system on the clients. On each client node,
375 <screen>client# mount -a -t lustre</screen>
381 <para>The mounting order described in the steps above must be followed
382 for the initial mount and registration of a Lustre file system after an
383 upgrade. For a normal start of a Lustre file system, the mounting order
384 is MGT, OSTs, MDT(s), clients.</para>
386 <para>If you have a problem upgrading a Lustre file system, see
387 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
388 linkend="dbdoclet.50438198_30989" />for some ways to get help.</para>
390 <section xml:id="Upgrading_2.x.x">
393 <primary>upgrading</primary>
394 <secondary>2.X.y to 2.X.y (minor release)</secondary>
395 </indexterm>Upgrading to Lustre Software Release 2.x.y (Minor
397 <para>Rolling upgrades are supported for upgrading from any Lustre software
398 release 2.x.y to a more recent Lustre software release 2.X.y. This allows
399 the Lustre file system to continue to run while individual servers (or
400 their failover partners) and clients are upgraded one at a time. The
401 procedure for upgrading a Lustre software release 2.x.y to a more recent
402 minor release is described in this section.</para>
403 <para>To upgrade Lustre software release 2.x.y to a more recent minor
404 release, complete these steps:</para>
407 <para>Create a complete, restorable file system backup.</para>
409 <para>Before installing the Lustre software, back up ALL data. The
410 Lustre software contains kernel modifications that interact with
411 storage devices and may introduce security issues and data loss if
412 not installed, configured, or administered properly. If a full backup
413 of the file system is not practical, a device-level backup of the MDT
414 file system is recommended. See
415 <xref linkend="backupandrestore" /> for a procedure.</para>
419 <para>Download the Lustre server RPMs for your platform from the
420 <link xl:href="https://wiki.hpdd.intel.com/display/PUB/Lustre+Releases">
421 Lustre Releases</link>repository. See
422 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
423 linkend="table_cnh_5m3_gk" />for a list of required packages.</para>
426 <para>For a rolling upgrade, complete any procedures required to keep
427 the Lustre file system running while the server to be upgraded is
428 offline, such as failing over a primary server to its secondary
432 <para>Unmount the Lustre server to be upgraded (MGS, MDS, or
436 <para>Install the Lustre server packages on the Lustre server.</para>
437 <orderedlist numeration="loweralpha">
439 <para>Log onto the Lustre server as the
440 <literal>root</literal> user</para>
444 <literal>yum</literal> command to install the packages:</para>
446 <screen># yum --nogpgcheck install pkg1.rpm pkg2.rpm ... </screen>
450 <para>Verify the packages are installed correctly:</para>
452 <screen>rpm -qa|egrep "lustre|wc"</screen>
456 <para>Mount the Lustre server to restart the Lustre software on the
458 <screen>server# mount -a -t lustre</screen></para>
461 <para>Repeat these steps on each Lustre server.</para>
466 <para>Download the Lustre client RPMs for your platform from the
467 <link xl:href="https://wiki.hpdd.intel.com/display/PUB/Lustre+Releases">
468 Lustre Releases</link>repository. See
469 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
470 linkend="table_j3r_ym3_gk" />for a list of required packages.</para>
473 <para>Install the Lustre client packages on each of the Lustre clients
474 to be upgraded.</para>
475 <orderedlist numeration="loweralpha">
477 <para>Log onto a Lustre client as the
478 <literal>root</literal> user.</para>
482 <literal>yum</literal> command to install the packages:</para>
484 <screen># yum --nogpgcheck install pkg1.rpm pkg2.rpm ... </screen>
488 <para>Verify the packages were installed correctly:</para>
490 <screen># rpm -qa|egrep "lustre|kernel"</screen>
494 <para>Mount the Lustre client to restart the Lustre software on the
496 <screen>client# mount -a -t lustre</screen></para>
499 <para>Repeat these steps on each Lustre client.</para>
504 <para>If you have a problem upgrading a Lustre file system, see
505 <xref xmlns:xlink="http://www.w3.org/1999/xlink"
506 linkend="dbdoclet.50438198_30989" />for some suggestions for how to get