Remove the "dbdoclet." prefix from manual cross-references.
This is a remnant of auto-generated cross-references when
the manual was originally imported, but is not useful.
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: Iad17a07542423b9aa99c5d2eb3727b6ef98b14ea
Reviewed-on: https://review.whamcloud.com/43759
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Tested-by: jenkins <devops@whamcloud.com>
<itemizedlist>
<listitem>
<para>
- <xref linkend="dbdoclet.backup_file"/>
+ <xref linkend="backup_file"/>
</para>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.backup_device"/>
+ <xref linkend="backup_device"/>
</para>
</listitem>
<listitem>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.backup_lvm_snapshot"/>
+ <xref linkend="backup_lvm_snapshot"/>
</para>
</listitem>
</itemizedlist>
<para>It is <emphasis>strongly</emphasis> recommended that sites perform
periodic device-level backup of the MDT(s)
- (<xref linkend="dbdoclet.backup_device"/>),
+ (<xref linkend="backup_device"/>),
for example twice a week with alternate backups going to a separate
device, even if there is not enough capacity to do a full backup of all
of the filesystem data. Even if there are separate file-level backups of
it is needed), and only needs good linear read/write performance. While
the device-level MDT backup is not useful for restoring individual files,
it is most efficient to handle the case of MDT failure or corruption.</para>
- <section xml:id="dbdoclet.backup_file">
+ <section xml:id="backup_file">
<title>
<indexterm>
<primary>backup</primary>
<literal>lustre_rsync</literal> is run, the user must specify a set of
parameters for the program to use. These parameters are described in
the following table and in
- <xref linkend="dbdoclet.lustre_rsync" />. On subsequent runs, these
+ <xref linkend="lustre_rsync" />. On subsequent runs, these
parameters are stored in the the status file, and only the name of the
status file needs to be passed to
<literal>lustre_rsync</literal>.</para>
</section>
</section>
</section>
- <section xml:id="dbdoclet.backup_device">
+ <section xml:id="backup_device">
<title>
<indexterm>
<primary>backup</primary>
will be immediately although there may be I/O errors reading
from files that are present on the MDT but not the OSTs, and files that
were created after the MDT backup will not be accessible or visible. See
- <xref linkend="dbdoclet.lfsckadmin" />for details on using LFSCK.</para>
+ <xref linkend="lfsckadmin" />for details on using LFSCK.</para>
</section>
- <section xml:id="dbdoclet.backup_lvm_snapshot">
+ <section xml:id="backup_lvm_snapshot">
<title>
<indexterm>
<primary>backup</primary>
<para>This section describes configuration files and module parameters and includes the following sections:</para>
<itemizedlist>
<listitem>
- <para><xref linkend="dbdoclet.tuning_lnet_mod_params"/></para>
+ <para><xref linkend="tuning_lnet_mod_params"/></para>
</listitem>
<listitem>
<para><xref linkend="module_options"/></para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.tuning_lnet_mod_params">
+ <section xml:id="tuning_lnet_mod_params">
<title>
<indexterm><primary>configuring</primary></indexterm>
<indexterm><primary>LNet</primary><see>configuring</see></indexterm>
</itemizedlist></para>
<para>For examples on adding multiple interfaces via
<literal>lnetctl net add</literal> and/or YAML, please see
- <xref linkend="dbdoclet.mrconfiguring" />
+ <xref linkend="mrconfiguring" />
</para></note>
<para>Networks can be deleted with the
</indexterm>Showing routing information</title>
<para>When routing is enabled on a node, the tiny, small and large
routing buffers are allocated. See <xref
- linkend="dbdoclet.tuning_lnet_params"/> for more details on router
+ linkend="tuning_lnet_params"/> for more details on router
buffers. This information can be shown as follows:</para>
<screen>lnetctl routing show: show routing information
<itemizedlist>
<listitem>
<para>
- <xref linkend="dbdoclet.lustre_configure" />
+ <xref linkend="lustre_configure" />
</para>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.lustre_configure_additional_options" />
+ <xref linkend="lustre_configure_additional_options" />
</para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.lustre_configure">
+ <section xml:id="lustre_configure">
<title>
<indexterm>
<primary>Lustre</primary>
<replaceable>/dev/block_device</replaceable>
</screen>
<para>See
- <xref linkend="dbdoclet.lustre_configure_multiple_fs" />for more details.</para>
+ <xref linkend="lustre_configure_multiple_fs" />for more details.</para>
</note>
</listitem>
- <listitem xml:id="dbdoclet.addmdtindex">
+ <listitem xml:id="addmdtindex">
<para>Optionally add in additional MDTs.</para>
<screen>
mkfs.lustre --fsname=
devices, mount them both.</para>
</note>
</listitem>
- <listitem xml:id="dbdoclet.format_ost">
+ <listitem xml:id="format_ost">
<para>Create the OST. On the OSS node, run:</para>
<screen>
mkfs.lustre --fsname=
instead format the whole disk for the file system.</para>
</note>
</listitem>
- <listitem xml:id="dbdoclet.mount_ost">
+ <listitem xml:id="mount_ost">
<para>Mount the OST. On the OSS node where the OST was created,
run:</para>
<screen>
</screen>
<note>
<para>To create additional OSTs, repeat Step
- <xref linkend="dbdoclet.format_ost" />and Step
- <xref linkend="dbdoclet.mount_ost" />, specifying the
+ <xref linkend="format_ost" />and Step
+ <xref linkend="mount_ost" />, specifying the
next higher OST index number.</para>
</note>
</listitem>
- <listitem xml:id="dbdoclet.mount_on_client">
+ <listitem xml:id="mount_on_client">
<para>Mount the Lustre file system on the client. On the client node,
run:</para>
<screen>
</screen>
<note>
<para>To mount the filesystem on additional clients, repeat Step
- <xref linkend="dbdoclet.mount_on_client" />.</para>
+ <xref linkend="mount_on_client" />.</para>
</note>
<note>
<para>If you have a problem mounting the file system, check the
Lustre: Server temp-MDT0000 on device /dev/sdb has started
</screen>
</listitem>
- <listitem xml:id="dbdoclet.create_and_mount_ost">
+ <listitem xml:id="create_and_mount_ost">
<para>Create and mount
<literal>ost0</literal>.</para>
<para>In this example, the OSTs (
use.</para>
</section>
</section>
- <section xml:id="dbdoclet.lustre_configure_additional_options">
+ <section xml:id="lustre_configure_additional_options">
<title>
<indexterm>
<primary>Lustre</primary>
</indexterm>Scaling the Lustre File System</title>
<para>A Lustre file system can be scaled by adding OSTs or clients. For
instructions on creating additional OSTs repeat Step
- <xref linkend="dbdoclet.create_and_mount_ost" />and Step
- <xref linkend="dbdoclet.mount_ost" />above. For mounting
+ <xref linkend="create_and_mount_ost" />and Step
+ <xref linkend="mount_ost" />above. For mounting
additional clients, repeat Step
- <xref linkend="dbdoclet.mount_on_client" />for each client.</para>
+ <xref linkend="mount_on_client" />for each client.</para>
</section>
<section remap="h3">
<title>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.ldiskfs_raid_opts"/>
+ <xref linkend="ldiskfs_raid_opts"/>
</para>
</listitem>
<listitem>
data integrity is critical. You should carefully consider whether the
benefits of using writeback cache outweigh the risks.</para>
</section>
- <section xml:id="dbdoclet.ldiskfs_raid_opts">
+ <section xml:id="ldiskfs_raid_opts">
<title>
<indexterm>
<primary>storage</primary>
This is alternately referred to as the RAID stripe size. This is
applicable to both MDT and OST file systems.</para>
<para>For more information on how to override the defaults while formatting
- MDT or OST file systems, see <xref linkend="dbdoclet.ldiskfs_mkfs_opts"/>.</para>
+ MDT or OST file systems, see <xref linkend="ldiskfs_mkfs_opts"/>.</para>
<section remap="h3">
<title><indexterm><primary>storage</primary><secondary>configuring</secondary><tertiary>for mkfs</tertiary></indexterm>Computing file system parameters for mkfs</title>
<para>For best results, use RAID 5 with 5 or 9 disks or RAID 6 with 6 or 10 disks, each on a different controller. The stripe width is the optimal minimum I/O size. Ideally, the RAID configuration should allow 1 MB Lustre RPCs to fit evenly on a single RAID stripe without an expensive read-modify-write cycle. Use this formula to determine the
xml:id="dataonmdt" condition="l2B">
<title xml:id="dataonmdt.title">Data on MDT (DoM)</title>
<para>This chapter describes Data on MDT (DoM).</para>
- <section xml:id="dbdoclet.domintro">
+ <section xml:id="domintro">
<title>
<indexterm>
<primary>dom</primary>
a client writes or truncates the file beyond the size of the MDT
component.</para>
</section>
- <section xml:id="dbdoclet.usercommands">
+ <section xml:id="usercommands">
<title>
<indexterm>
<primary>dom</primary>
<literal>lfs find</literal> command can be used to search the directory
tree rooted at the given directory or file name for the files that match
the given DoM component parameters, e.g. layout type.</para>
- <section xml:id="dbdoclet.lfssetstripe">
+ <section xml:id="lfssetstripe">
<title>
<indexterm>
<primary>dom</primary>
lower value.</para></note>
</section>
</section>
- <section xml:id="dbdoclet.domstripesize">
+ <section xml:id="domstripesize">
<title>
<indexterm>
<primary>dom</primary>
It is 1MB by default and can be changed with the
<literal>lctl</literal> tool. For more information on setting
<literal>dom_stripesize</literal> please see
- <xref linkend="dbdoclet.dom_stripesize" />.</para>
+ <xref linkend="dom_stripesize" />.</para>
</section>
</section>
- <section xml:id="dbdoclet.domlfsgetstripe">
+ <section xml:id="domlfsgetstripe">
<title>
<indexterm>
<primary>dom</primary>
both can be used to get size on the MDT.</para>
</section>
</section>
- <section xml:id="dbdoclet.domlfsfind">
+ <section xml:id="domlfsfind">
<title>
<indexterm>
<primary>dom</primary>
files are found because their DoM size is 1MB.</para>
</section>
</section>
- <section xml:id="dbdoclet.dom_stripesize">
+ <section xml:id="dom_stripesize">
<title>
<indexterm>
<primary>dom</primary>
</para>
</section>
</section>
- <section xml:id="dbdoclet.disabledom">
+ <section xml:id="disabledom">
<title>
<indexterm>
<primary>dom</primary>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.lustre_installation" />
+ <xref linkend="lustre_installation" />
</para>
</listitem>
</itemizedlist>
<emphasis role="bold">Use the same user IDs (UID) and group IDs
(GID) on all clients.</emphasis>
</emphasis>If use of supplemental groups is required, see
- <xref linkend="dbdoclet.identity_upcall" /> for information about
+ <xref linkend="identity_upcall" /> for information about
supplementary user and group cache upcall (<code>identity_upcall</code>).</para>
</listitem>
<listitem>
</itemizedlist></para>
</section>
</section>
- <section xml:id="dbdoclet.lustre_installation">
+ <section xml:id="lustre_installation">
<title>Lustre Software Installation Procedure</title>
<caution>
<para>Before installing the Lustre software, back up ALL data. The Lustre
linkend="table.installed_server_pkg" />for a list of required packages.
</para>
</listitem>
- <listitem xml:id="dbdoclet.lustre_server_e2fsprogs_install">
+ <listitem xml:id="lustre_server_e2fsprogs_install">
<para>Install the Lustre server and
<literal>e2fsprogs</literal> packages on all Lustre servers (MGS, MDSs,
and OSSs).
administration.</para>
<itemizedlist>
<listitem>
- <para><xref linkend="dbdoclet.mroverview"/></para>
- <para><xref linkend="dbdoclet.mrconfiguring"/></para>
- <para><xref linkend="dbdoclet.mrrouting"/></para>
+ <para><xref linkend="mroverview"/></para>
+ <para><xref linkend="mrconfiguring"/></para>
+ <para><xref linkend="mrrouting"/></para>
<para><xref linkend="mrrouting.health"/></para>
- <para><xref linkend="dbdoclet.mrhealth"/></para>
+ <para><xref linkend="mrhealth"/></para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.mroverview">
+ <section xml:id="mroverview">
<title><indexterm><primary>MR</primary><secondary>overview</secondary>
</indexterm>Multi-Rail Overview</title>
<para>In computer networking, multi-rail is an arrangement in which two or
<link xl:href="https://wiki.lustre.org/images/b/bb/Multi-Rail_High-Level_Design_20150119.pdf">
Multi-Rail High-Level Design</link></para>
</section>
- <section xml:id="dbdoclet.mrconfiguring">
+ <section xml:id="mrconfiguring">
<title><indexterm><primary>MR</primary><secondary>configuring</secondary>
</indexterm>Configuring Multi-Rail</title>
<para>Every node using multi-rail networking needs to be properly
<para>For information on the dynamic peer discovery feature added in
Lustre Release 2.11.0, see
<xref linkend="lnet_config.dynamic_discovery" />.</para>
- <section xml:id="dbdoclet.addinterfaces">
+ <section xml:id="addinterfaces">
<title><indexterm><primary>MR</primary>
<secondary>multipleinterfaces</secondary>
</indexterm>Configure Multiple Interfaces on the Local Node</title>
dev cpt: -1
CPT: "[0]"</screen>
</section>
- <section xml:id="dbdoclet.deleteinterfaces">
+ <section xml:id="deleteinterfaces">
<title><indexterm><primary>MR</primary>
<secondary>deleteinterfaces</secondary>
</indexterm>Deleting Network Interfaces</title>
interfaces:
0: eth0</screen>
</section>
- <section xml:id="dbdoclet.addremotepeers">
+ <section xml:id="addremotepeers">
<title><indexterm><primary>MR</primary>
<secondary>addremotepeers</secondary>
</indexterm>Adding Remote Peers that are Multi-Rail Capable</title>
peer ni:
- nid: 192.168.122.31@tcp</screen>
</section>
- <section xml:id="dbdoclet.deleteremotepeers">
+ <section xml:id="deleteremotepeers">
<title><indexterm><primary>MR</primary>
<secondary>deleteremotepeers</secondary>
</indexterm>Deleting Remote Peers</title>
% lnetctl import --del < delPeer.yaml</screen>
</section>
</section>
- <section xml:id="dbdoclet.mrrouting">
+ <section xml:id="mrrouting">
<title><indexterm><primary>MR</primary>
<secondary>mrrouting</secondary>
</indexterm>Notes on routing with Multi-Rail</title>
the same gateway node but as different routes. This uses the existing route
monitoring algorithm to guard against interfaces going down. With the
<xref linkend="mrrouting.health" /> feature introduced in Lustre 2.13, the
- new algorithm uses the <xref linkend="dbdoclet.mrhealth" /> feature to
+ new algorithm uses the <xref linkend="mrhealth" /> feature to
monitor the different interfaces of the gateway and always ensures that the
healthiest interface is used. Therefore, the configuration described in this
section applies to releases prior to Lustre 2.13. It will still work in
2.13 as well, however it is not required due to the reason mentioned above.
</para>
- <section xml:id="dbdoclet.mrroutingex">
+ <section xml:id="mrroutingex">
<title><indexterm><primary>MR</primary>
<secondary>mrrouting</secondary>
<tertiary>routingex</tertiary>
under development and single interface failure will still cause the entire
router to go down.</para>
</section>
- <section xml:id="dbdoclet.mrroutingresiliency">
+ <section xml:id="mrroutingresiliency">
<title><indexterm><primary>MR</primary>
<secondary>mrrouting</secondary>
<tertiary>routingresiliency</tertiary>
</listitem>
</orderedlist>
</section>
- <section xml:id="dbdoclet.mrroutingmixed">
+ <section xml:id="mrroutingmixed">
<title><indexterm><primary>MR</primary>
<secondary>mrrouting</secondary>
<tertiary>routingmixed</tertiary>
longer needed. One route per gateway should be configured. Gateway
interfaces are used according to the Multi-Rail selection criteria.</para>
</listitem>
- <listitem><para>Routing now relies on <xref linkend="dbdoclet.mrhealth" />
+ <listitem><para>Routing now relies on <xref linkend="mrhealth" />
to keep track of the route aliveness.</para></listitem>
<listitem><para>Router interfaces are monitored via LNet Health.
If an interface fails other interfaces will be used.</para></listitem>
</orderedlist>
</section>
</section>
- <section xml:id="dbdoclet.mrhealth" condition="l2C">
+ <section xml:id="mrhealth" condition="l2C">
<title><indexterm><primary>MR</primary><secondary>health</secondary>
</indexterm>LNet Health</title>
<para>LNet Multi-Rail has implemented the ability for multiple interfaces
monitors the status of the send and receive operations and uses this
status to increment the interface's health value in case of success and
decrement it in case of failure.</para>
- <section xml:id="dbdoclet.mrhealthvalue">
+ <section xml:id="mrhealthvalue">
<title><indexterm><primary>MR</primary>
<secondary>mrhealth</secondary>
<tertiary>value</tertiary>
The granularity allows the Multi-Rail algorithm to select the interface
that has the highest likelihood of sending or receiving a message.</para>
</section>
- <section xml:id="dbdoclet.mrhealthfailuretypes">
+ <section xml:id="mrhealthfailuretypes">
<title><indexterm><primary>MR</primary>
<secondary>mrhealth</secondary>
<tertiary>failuretypes</tertiary>
</tbody></tgroup>
</informaltable>
</section>
- <section xml:id="dbdoclet.mrhealthinterface">
+ <section xml:id="mrhealthinterface">
<title><indexterm><primary>MR</primary>
<secondary>mrhealth</secondary>
<tertiary>interface</tertiary>
</tgroup>
</informaltable>
</section>
- <section xml:id="dbdoclet.mrhealthdisplay">
+ <section xml:id="mrhealthdisplay">
<title><indexterm><primary>MR</primary>
<secondary>mrhealth</secondary>
<tertiary>display</tertiary>
</indexterm>Displaying Information</title>
- <section xml:id="dbdoclet.mrhealthdisplayhealth">
+ <section xml:id="mrhealthdisplayhealth">
<title>Showing LNet Health Configuration Settings</title>
<para><literal>lnetctl</literal> can be used to show all the LNet health
configuration settings using the <literal>lnetctl global show</literal>
health_sensitivity: 100
recovery_interval: 1</screen>
</section>
- <section xml:id="dbdoclet.mrhealthdisplaystats">
+ <section xml:id="mrhealthdisplaystats">
<title>Showing LNet Health Statistics</title>
<para>LNet Health statistics are shown under a higher verbosity
settings. To show the local interface health statistics:</para>
drop_length: 0</screen>
</section>
</section>
- <section xml:id="dbdoclet.mrhealthinitialsetup">
+ <section xml:id="mrhealthinitialsetup">
<title><indexterm><primary>MR</primary>
<secondary>mrhealth</secondary>
<tertiary>initialsetup</tertiary>
xml:id="lsom" condition="l2C">
<title xml:id="lsom.title">Lazy Size on MDT (LSoM)</title>
<para>This chapter describes Lazy Size on MDT (LSoM).</para>
- <section xml:id="dbdoclet.lsomintro">
+ <section xml:id="lsomintro">
<title>
<indexterm>
<primary>lsom</primary>
Future improvements will allow the LSoM data to be accessed by tools such
as <literal>lfs find</literal>.</para>
</section>
- <section xml:id="dbdoclet.enablelsom">
+ <section xml:id="enablelsom">
<title><indexterm><primary>lsom</primary>
<secondary>enablelsom</secondary></indexterm>Enable LSoM</title>
<para> LSoM is always enabled and nothing needs to be done to enable the
extra overhead when accessing files, and is not recommended for normal
usage.</para>
</section>
- <section xml:id="dbdoclet.usercmds">
+ <section xml:id="usercmds">
<title><indexterm><primary>lsom</primary>
<secondary>usercommands</secondary></indexterm>User Commands</title>
<para>Lustre provides the <literal>lfs getsom</literal> command to list
Lustre file system mount point. <literal>llsom_sync</literal> uses Lustre
MDS changelogs and, thus, a changelog user must be registered to use this
utility.</para>
- <section xml:id="dbdoclet.lfsgetsom">
+ <section xml:id="lfsgetsom">
<title><indexterm><primary>lsom</primary>
<secondary>lfsgetsom</secondary></indexterm>lfs getsom for LSoM data
</title>
following sections:</para>
<itemizedlist>
<listitem>
- <para><xref linkend="dbdoclet.debugging_tools"/></para>
+ <para><xref linkend="debugging_tools"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.debugging_procedures"/></para>
+ <para><xref linkend="debugging_procedures"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.debugging_for_devs"/></para>
+ <para><xref linkend="debugging_for_devs"/></para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.debugging_tools">
+ <section xml:id="debugging_tools">
<title><indexterm><primary>debugging</primary></indexterm>
Diagnostic and Debugging Tools</title>
<para>A variety of diagnostic and analysis tools are available to debug
</emphasis> - This tool is used with the debug_kernel option to
manually dump the Lustre debugging log or post-process debugging
logs that are dumped automatically. For more information about the
- lctl tool, see <xref linkend="dbdoclet.using_lctl_tool"/> and <xref
- linkend="dbdoclet.lctl"/>.</para>
+ lctl tool, see <xref linkend="using_lctl_tool"/> and <xref
+ linkend="lctl"/>.</para>
</listitem>
<listitem>
<para>Lustre subsystem asserts - A panic-style assertion (LBUG) in the kernel causes the
Lustre file system to dump the debug log to the file
<literal>/tmp/lustre-log.<replaceable>timestamp</replaceable></literal> where it can
be retrieved after a reboot. For more information, see <xref
- linkend="dbdoclet.troubleshooting"/>.</para>
+ linkend="troubleshooting"/>.</para>
</listitem>
<listitem>
<para>
<para>The tools described in this section are provided in the Linux
kernel or are available at an external website. For information about
using some of these tools for Lustre debugging, see
- <xref linkend="dbdoclet.debugging_procedures"/> and
- <xref linkend="dbdoclet.debugging_for_devs"/>.
+ <xref linkend="debugging_procedures"/> and
+ <xref linkend="debugging_for_devs"/>.
</para>
<section remap="h4">
<title><indexterm><primary>debugging</primary><secondary>admin tools</secondary></indexterm>Tools for Administrators and Developers</title>
</section>
</section>
</section>
- <section xml:id="dbdoclet.debugging_procedures">
+ <section xml:id="debugging_procedures">
<title><indexterm><primary>debugging</primary><secondary>procedure</secondary></indexterm>Lustre Debugging Procedures</title>
<para>The procedures below may be useful to administrators or developers
debugging a Lustre files system.</para>
<title><indexterm><primary>debugging</primary><secondary>message format</secondary></indexterm>Understanding the Lustre Debug Messaging Format</title>
<para>Lustre debug messages are categorized by originating subsystem,
message type, and location in the source code. For a list of subsystems
- and message types, see <xref linkend="dbdoclet.lctl"/>.
+ and message types, see <xref linkend="lctl"/>.
</para>
<note>
<para>For a current list of subsystems and debug message types, see
<literal>libcfs/include/libcfs/libcfs_debug.h</literal> in the Lustre software
tree</para>
</note>
- <para>The elements of a Lustre debug message are described in <xref linkend="dbdoclet.lustre_msg_format"/> Format of Lustre Debug Messages.</para>
- <section xml:id="dbdoclet.lustre_debug_msg">
+ <para>The elements of a Lustre debug message are described in <xref linkend="lustre_msg_format"/> Format of Lustre Debug Messages.</para>
+ <section xml:id="lustre_debug_msg">
<title>Lustre Debug Messages</title>
<para>Each Lustre debug message has the tag of the subsystem it originated in, the message
type, and the location in the source code. The subsystems and debug types used are as
</listitem>
</itemizedlist>
</section>
- <section xml:id="dbdoclet.lustre_msg_format">
+ <section xml:id="lustre_msg_format">
<title>Format of Lustre Debug Messages</title>
<para>The Lustre software uses the <literal>CDEBUG()</literal> and
<literal>CERROR()</literal> macros to print the debug or error messages. To print the
<para>Lustre debug messages are maintained in a buffer, with the maximum buffer size specified (in MBs) by the <literal>debug_mb</literal> parameter (<literal>lctl get_param debug_mb</literal>). The buffer is circular, so debug messages are kept until the allocated buffer limit is reached, and then the first messages are overwritten.</para>
</section>
</section>
- <section xml:id="dbdoclet.using_lctl_tool">
+ <section xml:id="using_lctl_tool">
<title><indexterm><primary>debugging</primary><secondary>using lctl</secondary></indexterm>Using the lctl Tool to View Debug Messages</title>
<para>The <literal>lctl</literal> tool allows debug messages to be
filtered based on subsystems and message types to extract information
useful for troubleshooting from a kernel debug log. For a command
- reference, see <xref linkend="dbdoclet.lctl"/>.</para>
+ reference, see <xref linkend="lctl"/>.</para>
<para>You can use <literal>lctl</literal> to:</para>
<itemizedlist>
<listitem>
<screen>modinfo libcfs</screen>
</section>
</section>
- <section xml:id="dbdoclet.debugging_for_devs">
+ <section xml:id="debugging_for_devs">
<title><indexterm><primary>debugging</primary><secondary>developers tools</secondary></indexterm>Lustre Debugging for Developers</title>
<para>The procedures in this section may be useful to developers debugging Lustre source
code.</para>
<orderedlist>
<listitem>
<para>Dump the log into a user-specified log file using lctl
- (see <xref linkend="dbdoclet.using_lctl_tool"/>).
+ (see <xref linkend="using_lctl_tool"/>).
</para>
</listitem>
<listitem>
<listitem>
<para> Add a new OST by using <literal>mkfs.lustre</literal> as when
the filesystem was first formatted, see
- <xref linkend="dbdoclet.format_ost" /> for details. Each new OST
+ <xref linkend="format_ost" /> for details. Each new OST
must have a unique index number, use <literal>lctl dl</literal> to
see a list of all OSTs. For example, to add a new OST at index 12
to the <literal>testfs</literal> filesystem run following commands
system on <literal>OST0004</literal> that are larger than 4GB in
size to other OSTs, enter:</para>
<screen>client# lfs find /test --ost test-OST0004 -size +4G | lfs_migrate -y</screen>
- <para>See <xref linkend="dbdoclet.lfs_migrate"/> for details.</para>
+ <para>See <xref linkend="lfs_migrate"/> for details.</para>
</listitem>
</orderedlist>
</section>
<para>A hard drive has failed and a RAID resync/rebuild is underway,
though the OST can also be marked <emphasis>degraded</emphasis> by
the RAID system to avoid allocating new files on the slow OST which
- can reduce performance, see <xref linkend='dbdoclet.degraded_ost' />
+ can reduce performance, see <xref linkend='degraded_ost' />
for more details.
</para>
</listitem>
<listitem>
<para>OST is nearing its space capacity, though the MDS will already
try to avoid allocating new files on overly-full OSTs if possible,
- see <xref linkend='dbdoclet.balancing_free_space' /> for details.
+ see <xref linkend='balancing_free_space' /> for details.
</para>
</listitem>
<listitem>
</indexterm> Restoring OST Configuration Files</title>
<para>If the original OST is still available, it is best to follow the
OST backup and restore procedure given in either
- <xref linkend="dbdoclet.backup_device"/>, or
+ <xref linkend="backup_device"/>, or
<xref linkend="backup_fs_level"/> and
<xref linkend="backup_fs_level.restore"/>.</para>
<para>To replace an OST that was removed from service due to corruption
<listitem>
<para>Recreate the OST configuration files, if unavailable. </para>
<para>Follow the procedure in
- <xref linkend="dbdoclet.repair_ost_lastid"/> to recreate the LAST_ID
+ <xref linkend="repair_ost_lastid"/> to recreate the LAST_ID
file for this OST index. The <literal>last_rcvd</literal> file
will be recreated when the OST is first mounted using the default
parameters, which are normally correct for all file systems. The
<para><xref linkend="lustre_changelogs"/>Lustre Changelogs</para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.jobstats"/>Lustre Jobstats</para>
+ <para><xref linkend="jobstats"/>Lustre Jobstats</para>
</listitem>
<listitem>
<para><xref linkend="lmt"/>Lustre Monitoring Tool</para>
</tgroup>
</informaltable>
<note><para>Event types marked with * are not recorded by default. Refer to
- <xref linkend="dbdoclet.modifyChangelogMask" /> for instructions on
+ <xref linkend="modifyChangelogMask" /> for instructions on
modifying the Changelogs mask.</para></note>
<para>FID-to-full-pathname and pathname-to-FID functions are also included
to map target and parent FIDs into the file system namespace.</para>
TRUNC SATTR XATTR HSM MTIME CTIME MIGRT
</screen>
</section>
- <section xml:id="dbdoclet.modifyChangelogMask" remap="h5">
+ <section xml:id="modifyChangelogMask" remap="h5">
<title>Setting the Changelog Mask</title>
<para>To set the current changelog mask on a specific device
(<literal>lustre-MDT0000</literal>):</para>
</section>
</section>
</section>
- <section xml:id="dbdoclet.jobstats">
+ <section xml:id="jobstats">
<title><indexterm><primary>jobstats</primary><see>monitoring</see></indexterm>
<indexterm><primary>monitoring</primary></indexterm>
<indexterm><primary>monitoring</primary><secondary>jobstats</secondary></indexterm>
<para>If UID 11002 or GID 11001 do not exist on the Lustre MDS or MGS,
create them in LDAP or other data sources, or trust clients by setting
<literal>identity_upcall</literal> to <literal>NONE</literal>. For more
- information, see <xref linkend="dbdoclet.identity_upcall"/>.</para>
+ information, see <xref linkend="identity_upcall"/>.</para>
<para>Building a larger and more complex configuration is possible by
iterating through the <literal>lctl</literal> commands above. In
<para>Once you have the Lustre file system up and running, you can use the
procedures in this section to perform these basic Lustre administration
tasks.</para>
- <section xml:id="dbdoclet.mount_by_label">
+ <section xml:id="mount_by_label">
<title>
<indexterm>
<primary>operations</primary>
<replaceable>/dev/long_mountpoint_name</replaceable>
</screen>
</section>
- <section xml:id="dbdoclet.starting_lustre">
+ <section xml:id="starting_lustre">
<title>
<indexterm>
<primary>operations</primary>
</listitem>
</orderedlist>
</section>
- <section xml:id="dbdoclet.mounting_server">
+ <section xml:id="mounting_server">
<title>
<indexterm>
<primary>operations</primary>
environment.</para>
</caution>
</section>
- <section xml:id="dbdoclet.shutdownLustre">
+ <section xml:id="shutdownLustre">
<title>
<indexterm>
<primary>operations</primary>
</listitem>
</orderedlist>
<para>For unmount command syntax for a single OST, MDT, or MGT target
- please refer to <xref linkend="dbdoclet.umountTarget"/></para>
+ please refer to <xref linkend="umountTarget"/></para>
</section>
- <section xml:id="dbdoclet.umountTarget">
+ <section xml:id="umountTarget">
<title>
<indexterm>
<primary>operations</primary>
</para>
</note>
</section>
- <section xml:id="dbdoclet.degraded_ost">
+ <section xml:id="degraded_ost">
<title>
<indexterm>
<primary>operations</primary>
<literal>mdadm(8)</literal> command with the <literal>--monitor</literal>
option to mark an affected device degraded or restored.</para>
</section>
- <section xml:id="dbdoclet.lustre_configure_multiple_fs">
+ <section xml:id="lustre_configure_multiple_fs">
<title>
<indexterm>
<primary>operations</primary>
client# mount -t lustre mgsnode@tcp0:/bar /mnt/bar
</screen>
</section>
- <section xml:id="dbdoclet.lfsmkdir">
+ <section xml:id="lfsmkdir">
<title>
<indexterm>
<primary>operations</primary>
<literal>mdt_index</literal>. For more information on adding additional MDTs
and
<literal>mdt_index</literal> see
- <xref linkend='dbdoclet.addmdtindex' />.</para>
+ <xref linkend='addmdtindex' />.</para>
<warning>
<para>An administrator can allocate remote sub-directories to separate
MDTs. Creating remote sub-directories in parent directories not hosted on
<screen>mds# lctl get_param mdt.<replaceable>*</replaceable>.enable_remote_dir_gid</screen>
</para>
</section>
- <section xml:id="dbdoclet.lfsmkdirdne2" condition='l28'>
+ <section xml:id="lfsmkdirdne2" condition='l28'>
<title>
<indexterm>
<primary>operations</primary>
<para>The striped directory feature is most useful for distributing
single large directories (50k entries or more) across multiple MDTs,
since it incurs more overhead than non-striped directories.</para>
- <section xml:id="dbdoclet.lfsmkdirbyspace" condition='l2D'>
+ <section xml:id="lfsmkdirbyspace" condition='l2D'>
<title>Directory creation by space/inode usage</title>
<para>If the starting MDT is not specified when creating a new directory,
this directory and its stripes will be distributed on MDTs by space usage.
</itemizedlist>
</section>
</section>
- <section xml:id="dbdoclet.set_get_lustre_params">
+ <section xml:id="set_get_lustre_params">
<title>
<indexterm>
<primary>operations</primary>
<itemizedlist>
<listitem>
<para>When creating a file system, use mkfs.lustre. See
- <xref linkend="dbdoclet.tuning_params_mkfs_lustre" />below.</para>
+ <xref linkend="tuning_params_mkfs_lustre" />below.</para>
</listitem>
<listitem>
<para>When a server is stopped, use tunefs.lustre. See
- <xref linkend="dbdoclet.setting_param_tunefs" />below.</para>
+ <xref linkend="setting_param_tunefs" />below.</para>
</listitem>
<listitem>
<para>When the file system is running, use lctl to set or retrieve
Lustre parameters. See
- <xref linkend="dbdoclet.setting_param_with_lctl" />and
- <xref linkend="dbdoclet.reporting_current_param" />below.</para>
+ <xref linkend="setting_param_with_lctl" />and
+ <xref linkend="reporting_current_param" />below.</para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.tuning_params_mkfs_lustre">
+ <section xml:id="tuning_params_mkfs_lustre">
<title>Setting Tunable Parameters with
<literal>mkfs.lustre</literal></title>
<para>When the file system is first formatted, parameters can simply be
<literal>mkfs.lustre</literal>, see
<xref linkend="systemconfigurationutilities" />.</para>
</section>
- <section xml:id="dbdoclet.setting_param_tunefs">
+ <section xml:id="setting_param_tunefs">
<title>Setting Parameters with
<literal>tunefs.lustre</literal></title>
<para>If a server (OSS or MDS) is stopped, parameters can be added to an
<literal>tunefs.lustre</literal>, see
<xref linkend="systemconfigurationutilities" />.</para>
</section>
- <section xml:id="dbdoclet.setting_param_with_lctl">
+ <section xml:id="setting_param_with_lctl">
<title>Setting Parameters with
<literal>lctl</literal></title>
<para>When the file system is running, the
<note>
<para>The <literal>lctl list_param</literal> command enables users to
list all parameters that can be set. See
- <xref linkend="dbdoclet.list_params" />.</para>
+ <xref linkend="list_params" />.</para>
</note>
<para>For more details about the
<literal>lctl</literal> command, see the examples in the sections below
osc.myth-OST0004-osc.max_dirty_mb=32
</screen>
</section>
- <section xml:id="dbdoclet.setting_permanent_params">
+ <section xml:id="setting_permanent_params">
<title>Setting Permanent Parameters</title>
<para>Use <literal>lctl set_param -P</literal> or
<literal>lctl conf_param</literal> command to set permanent parameters.
file system's configuration file on the MGS.</para>
</caution>
</section>
- <section xml:id="dbdoclet.setparamp" condition='l25'>
+ <section xml:id="setparamp" condition='l25'>
<title>Setting Permanent Parameters with lctl set_param -P</title>
<para>The <literal>lctl set_param -P</literal> command can also
set parameters permanently using the same syntax as
provides an interactive list of available parameters.
</para></note>
</section>
- <section xml:id="dbdoclet.list_params">
+ <section xml:id="list_params">
<title>Listing Parameters</title>
<para>To list Lustre or LNet parameters that are available to set, use
the
oss# lctl list_param obdfilter.lustre-OST0000
</screen>
</section>
- <section xml:id="dbdoclet.reporting_current_param">
+ <section xml:id="reporting_current_param">
<title>Reporting Current Parameter Values</title>
<para>To report current Lustre parameter values, use the
<literal>lctl get_param</literal> command with this syntax:</para>
<xref xmlns:xlink="http://www.w3.org/1999/xlink"
linkend="configuringfailover" />.</para>
</section>
- <section xml:id="dbdoclet.erasing_filesystem">
+ <section xml:id="erasing_filesystem">
<title>
<indexterm>
<primary>operations</primary>
them.</para>
</note>
</section>
- <section xml:id="dbdoclet.reclaiming_reserved_disk_space">
+ <section xml:id="reclaiming_reserved_disk_space">
<title>
<indexterm>
<primary>operations</primary>
5%.</para>
</warning>
</section>
- <section xml:id="dbdoclet.replacing_existing_ost_mdt">
+ <section xml:id="replacing_existing_ost_mdt">
<title>
<indexterm>
<primary>operations</primary>
</indexterm>Replacing an Existing OST or MDT</title>
<para>To copy the contents of an existing OST to a new OST (or an old MDT
to a new MDT), follow the process for either OST/MDT backups in
- <xref linkend='dbdoclet.backup_device' />or
+ <xref linkend='backup_device' />or
<xref linkend='backup_fs_level' />.
For more information on removing a MDT, see
<xref linkend='lustremaint.rmremotedir' />.</para>
</section>
- <section xml:id="dbdoclet.identifying_file_objects">
+ <section xml:id="identifying_file_objects">
<title>
<indexterm>
<primary>operations</primary>
</listitem>
</itemizedlist>
<para>For more information about using <literal>lctl</literal>, see <xref
- xmlns:xlink="http://www.w3.org/1999/xlink" linkend="dbdoclet.setting_param_with_lctl"/>.</para>
+ xmlns:xlink="http://www.w3.org/1999/xlink" linkend="setting_param_with_lctl"/>.</para>
<para>Data can also be viewed using the <literal>cat</literal> command
with the full path to the file. The form of the <literal>cat</literal>
command is similar to that of the <literal>lctl get_param</literal>
<para>The <literal>llstat</literal> utility can be used to monitor some
Lustre file system I/O activity over a specified time period. For more
details, see
- <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="dbdoclet.config_llstat"/></para>
+ <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="config_llstat"/></para>
<para>Some data is imported from attached clients and is available in a
directory called <literal>exports</literal> located in the corresponding
per-service directory on a Lustre server. For example:
<screen>$ lctl get_param obdfilter.*.sync_on_lock_cancel
obdfilter.lol-OST0001.sync_on_lock_cancel=never</screen>
</section>
- <section xml:id="dbdoclet.TuningModRPCs" condition='l28'>
+ <section xml:id="TuningModRPCs" condition='l28'>
<title>
<indexterm>
<primary>proc</primary>
</listitem>
</itemizedlist></para>
</section>
- <section remap="h3" xml:id="dbdoclet.balancing_free_space">
+ <section remap="h3" xml:id="balancing_free_space">
<title><indexterm>
<primary>proc</primary>
<secondary>free space</secondary>
ldlm.namespaces.myth-MDT0000-mdc-ffff8804296c2800.lru_max_age=900000
</screen>
</section>
- <section xml:id="dbdoclet.tuning_setting_thread_count">
+ <section xml:id="tuning_setting_thread_count">
<title><indexterm>
<primary>proc</primary>
<secondary>thread counts</secondary>
This chapter includes the following sections:</para>
<itemizedlist>
<listitem>
- <para><xref linkend="dbdoclet.identity_upcall"/></para>
+ <para><xref linkend="identity_upcall"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.perm_downcall_data"/></para>
+ <para><xref linkend="perm_downcall_data"/></para>
</listitem>
</itemizedlist>
<note>
<para>Lustre programming interface man pages are found in the <literal>lustre/doc</literal> folder.</para>
</note>
- <section xml:id="dbdoclet.identity_upcall">
+ <section xml:id="identity_upcall">
<title><indexterm>
<primary>programming</primary>
<secondary>upcall</secondary>
list. This upcall executable opens the
<literal>mdt.${FSNAME}-MDT{xxxx}.identity_info</literal> parameter file
and writes the related <literal>identity_downcall_data</literal> data
- structure (see <xref linkend="dbdoclet.perm_downcall_data"/>). The
+ structure (see <xref linkend="perm_downcall_data"/>). The
upcall is configured with
<literal>lctl set_param mdt.${FSNAME}-MDT{xxxx}.identity_upcall</literal>.</para>
<para>The default identity upcall program installed is
</itemizedlist>
</section>
</section>
- <section xml:id="dbdoclet.perm_downcall_data">
+ <section xml:id="perm_downcall_data">
<title>Data Structures</title>
<screen>struct perm_downcall_data {
__u64 pdd_nid;
<para>If multiple MDTs are in use, active-active failover
is possible (e.g. two MDS nodes, each actively serving one or more
different MDTs for the same filesystem). See
- <xref linkend="dbdoclet.mdtactiveactive"/> for more information.</para>
+ <xref linkend="mdtactiveactive"/> for more information.</para>
</section>
<section remap="h3">
<title><indexterm><primary>recovery</primary><secondary>OST failure</secondary></indexterm>OST Failure (Failover)</title>
<para><xref linkend="lustre_error_messages"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.reporting_lustre_problem"/></para>
+ <para><xref linkend="reporting_lustre_problem"/></para>
</listitem>
<listitem>
<para><xref linkend="common_lustre_problems"/></para>
</tgroup>
</informaltable>
</section>
- <section xml:id="dbdoclet.troubleshooting">
+ <section xml:id="troubleshooting">
<title><indexterm><primary>troubleshooting</primary><secondary>error messages</secondary></indexterm>Viewing Error Messages</title>
<para>As Lustre software code runs on the kernel, single-digit error codes display to the
application; these error codes are an indication of the problem. Refer to the kernel console
</note>
</section>
</section>
- <section xml:id="dbdoclet.reporting_lustre_problem">
+ <section xml:id="reporting_lustre_problem">
<title><indexterm>
<primary>troubleshooting</primary>
<secondary>reporting bugs</secondary>
tickets for your issue.
<emphasis role="italic">For search tips, see
<xref xmlns:xlink="http://www.w3.org/1999/xlink"
- linkend="dbdoclet.searching_jira"/>.</emphasis></para>
+ linkend="searching_jira"/>.</emphasis></para>
</listitem>
<listitem>
<para>To create a ticket, click <emphasis role="bold">+Create Issue</emphasis> in the
<listitem>
<para><emphasis role="italic">Attachments</emphasis> - Attach log sources such as
Lustre debug log dumps (see <xref xmlns:xlink="http://www.w3.org/1999/xlink"
- linkend="dbdoclet.debugging_tools"/>), syslogs, or console logs. <emphasis
+ linkend="debugging_tools"/>), syslogs, or console logs. <emphasis
role="italic"><emphasis role="bold">Note:</emphasis></emphasis> Lustre debug
logs must be processed using <code>lctl df</code> prior to attaching to a Jira
ticket. For more information, see <xref xmlns:xlink="http://www.w3.org/1999/xlink"
- linkend="dbdoclet.using_lctl_tool"/>. </para>
+ linkend="using_lctl_tool"/>. </para>
</listitem>
</itemizedlist>Other fields in the form are used for project tracking and are irrelevant
to reporting an issue. You can leave these in their default state.</para>
</listitem>
</orderedlist></para>
- <section xml:id="dbdoclet.searching_jira">
+ <section xml:id="searching_jira">
<title>Searching Jira<superscript>*</superscript>for Duplicate Tickets</title>
<para>Before submitting a ticket, always search the Jira bug tracker for
an existing ticket for your issue. This avoids duplicating effort and
then it is possible that you have discovered a programming error that
allowed the servers to get out of sync.
Please submit a Jira ticket (see <xref xmlns:xlink="http://www.w3.org/1999/xlink"
- linkend="dbdoclet.reporting_lustre_problem"/>).</para>
+ linkend="reporting_lustre_problem"/>).</para>
<para>If the reported error is anything else (such as -5,
"<literal>I/O error</literal>"), it likely indicates a storage
device failure. The low-level file system returns this error if it is
OST in its place or replace it with a newly-formatted OST. In that case,
the missing objects are created and are read as zero-filled.</para>
</section>
- <section xml:id="dbdoclet.repair_ost_lastid">
+ <section xml:id="repair_ost_lastid">
<title>Fixing a Bad LAST_ID on an OST</title>
<para>Each OST contains a <literal>LAST_ID</literal> file, which holds
the last object (pre-)created by the MDS
</listitem>
</itemizedlist>
<para>For information on determining the MDS memory and OSS memory
- requirements, see <xref linkend="dbdoclet.mds_oss_memory"/>.</para>
+ requirements, see <xref linkend="mds_oss_memory"/>.</para>
</section>
<section remap="h3">
<title>Setting SCSI I/O Sizes</title>
parameters. These parameters are contained in the
<literal>/etc/modprobe.d/lustre.conf</literal> file.</para>
</note>
- <section xml:id="dbdoclet.tuning_optimizing_service_threads">
+ <section xml:id="tuning_optimizing_service_threads">
<title>
<indexterm>
<primary>tuning</primary>
<para>
This works in a similar fashion to
binding of threads on MDS. MDS thread tuning is covered in
- <xref linkend="dbdoclet.mdsbinding" />.</para>
+ <xref linkend="mdsbinding" />.</para>
<itemizedlist>
<listitem>
<para>
</listitem>
</itemizedlist>
<para>For further details, see
- <xref linkend="dbdoclet.tuning_setting_thread_count" />.</para>
+ <xref linkend="tuning_setting_thread_count" />.</para>
</section>
- <section xml:id="dbdoclet.mdstuning">
+ <section xml:id="mdstuning">
<title>
<indexterm>
<primary>tuning</primary>
</screen>
</para>
<para>For details, see
- <xref linkend="dbdoclet.tuning_setting_thread_count" />.</para>
+ <xref linkend="tuning_setting_thread_count" />.</para>
<para>The number of MDS service threads started depends on system size
and the load on the server, and has a default maximum of 64. The
maximum potential number of threads (<literal>MDS_MAX_THREADS</literal>)
</itemizedlist>
</section>
</section>
- <section xml:id="dbdoclet.mdsbinding">
+ <section xml:id="mdsbinding">
<title>
<indexterm>
<primary>tuning</primary>
bindings are selected automatically to provide good overall performance for
a given CPU count. However, an administrator can deviate from these setting
if they choose. For details on specifying the mapping of CPU cores to
- CPTs see <xref linkend="dbdoclet.libcfstuning"/>.
+ CPTs see <xref linkend="libcfstuning"/>.
</para>
<itemizedlist>
<listitem>
</example>
</para>
</section>
- <section xml:id="dbdoclet.tuning_lnet_params">
+ <section xml:id="tuning_lnet_params">
<title>
<indexterm>
<primary>LNet</primary>
an administrator can bind an interface to one or more CPU partitions.
Bindings are specified as options to the LNet modules. For more
information on specifying module options, see
- <xref linkend="dbdoclet.tuning_lnet_mod_params" /></para>
+ <xref linkend="tuning_lnet_mod_params" /></para>
<para>For example,
<literal>o2ib0(ib0)[0,1]</literal> will ensure that all messages for
<literal>o2ib0</literal> will be handled by LND threads executing on
be MAX.</para>
</section>
</section>
- <section xml:id="dbdoclet.libcfstuning">
+ <section xml:id="libcfstuning">
<title>
<indexterm>
<primary>tuning</primary>
</para>
</section>
</section>
- <section xml:id="dbdoclet.lndtuning">
+ <section xml:id="lndtuning">
<title>
<indexterm>
<primary>tuning</primary>
</informaltable>
</section>
</section>
- <section xml:id="dbdoclet.nrstuning">
+ <section xml:id="nrstuning">
<title>
<indexterm>
<primary>tuning</primary>
</listitem>
</itemizedlist>
</section>
- <section xml:id="dbdoclet.tbftuning" condition='l26'>
+ <section xml:id="tbftuning" condition='l26'>
<title>
<indexterm>
<primary>tuning</primary>
<para><emphasis role="bold">JobID based TBF policy</emphasis></para>
<para>For the JobID, please see
<xref xmlns:xlink="http://www.w3.org/1999/xlink"
- linkend="dbdoclet.jobstats" /> for more details.</para>
+ linkend="jobstats" /> for more details.</para>
<para>Command:</para>
<screen>lctl set_param x.x.x.nrs_tbf_rule=
"[reg|hp] start <replaceable>rule_name</replaceable> jobid={<replaceable>jobid_list</replaceable>} rate=<replaceable>rate</replaceable>"
</itemizedlist>
</section>
</section>
- <section xml:id="dbdoclet.delaytuning" condition='l2A'>
+ <section xml:id="delaytuning" condition='l2A'>
<title>
<indexterm>
<primary>tuning</primary>
</itemizedlist>
</section>
</section>
- <section xml:id="dbdoclet.tuning_lockless_IO">
+ <section xml:id="tuning_lockless_IO">
<title>
<indexterm>
<primary>tuning</primary>
renegotiate the new maximum RPC size.</para></caution>
</section>
</section>
- <section xml:id="dbdoclet.tuning_IO_small_files">
+ <section xml:id="tuning_IO_small_files">
<title>
<indexterm>
<primary>tuning</primary>
</listitem>
</itemizedlist>
</section>
- <section xml:id="dbdoclet.write_vs_read_performance">
+ <section xml:id="write_vs_read_performance">
<title>
<indexterm>
<primary>tuning</primary>
sections:</para>
<itemizedlist>
<listitem>
- <para><xref linkend="dbdoclet.overview_mmp"/></para>
+ <para><xref linkend="overview_mmp"/></para>
</listitem>
<listitem>
<para><xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="section_etn_4zf_tl"/></para>
<para>For information about configuring a Lustre file system for failover, see <xref
xmlns:xlink="http://www.w3.org/1999/xlink" linkend="configuringfailover"/></para>
</note>
- <section xml:id="dbdoclet.overview_mmp">
+ <section xml:id="overview_mmp">
<title>
<indexterm>
<primary>multiple-mount protection</primary>
identified. To ensure that a router is identified correctly, make sure to
add its local NID in the routes parameter in the modprobe lustre
configuration file.
- See <xref linkend='dbdoclet.tuning_lnet_mod_params'/>.</para>
+ See <xref linkend='tuning_lnet_mod_params'/>.</para>
</section>
<section remap="h3">
<title><indexterm><primary>LNet</primary></indexterm><literal>lustre_routes_conversion</literal></title>
<itemizedlist>
<listitem>
<para>
- <xref linkend="dbdoclet.storage_hardware_considerations"/>
+ <xref linkend="storage_hardware_considerations"/>
</para>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.space_requirements"/>
+ <xref linkend="space_requirements"/>
</para>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.ldiskfs_mkfs_opts"/>
+ <xref linkend="ldiskfs_mkfs_opts"/>
</para>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.mds_oss_memory"/>
+ <xref linkend="mds_oss_memory"/>
</para>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.network_considerations"/>
+ <xref linkend="network_considerations"/>
</para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.storage_hardware_considerations">
+ <section xml:id="storage_hardware_considerations">
<title><indexterm><primary>setup</primary></indexterm>
<indexterm><primary>setup</primary><secondary>hardware</secondary></indexterm>
<indexterm><primary>design</primary><see>setup</see></indexterm>
results.)</para>
</section>
</section>
- <section xml:id="dbdoclet.space_requirements">
+ <section xml:id="space_requirements">
<title><indexterm><primary>setup</primary><secondary>space</secondary></indexterm>
<indexterm><primary>space</primary><secondary>determining requirements</secondary></indexterm>
Determining Space Requirements</title>
The size is determined by the total number of servers in the Lustre
file system cluster(s) that are managed by the MGS.</para>
</section>
- <section xml:id="dbdoclet.mdt_space_requirements">
+ <section xml:id="mdt_space_requirements">
<title><indexterm>
<primary>setup</primary>
<secondary>MDT</secondary>
<para>2 KiB/inode x 100 million inodes x 2 = 400 GiB ldiskfs MDT</para>
</informalexample>
<para>For details about formatting options for ldiskfs MDT and OST file
- systems, see <xref linkend="dbdoclet.ldiskfs_mdt_mkfs"/>.</para>
+ systems, see <xref linkend="ldiskfs_mdt_mkfs"/>.</para>
<note>
<para>If the median file size is very small, 4 KB for example, the
MDT would use as much space for each file as the space used on the OST,
specify a different average file size (number of total inodes for a given
OST size) to reduce file system overhead and minimize file system check
time.
- See <xref linkend="dbdoclet.ldiskfs_ost_mkfs"/> for more details.</para>
+ See <xref linkend="ldiskfs_ost_mkfs"/> for more details.</para>
</section>
</section>
- <section xml:id="dbdoclet.ldiskfs_mkfs_opts">
+ <section xml:id="ldiskfs_mkfs_opts">
<title>
<indexterm>
<primary>ldiskfs</primary>
<screen>--mkfsoptions='backing fs options'</screen>
<para>For other <literal>mkfs.lustre</literal> options, see the Linux man page for
<literal>mke2fs(8)</literal>.</para>
- <section xml:id="dbdoclet.ldiskfs_mdt_mkfs">
+ <section xml:id="ldiskfs_mdt_mkfs">
<title><indexterm>
<primary>inodes</primary>
<secondary>MDS</secondary>
read or written for each MDT inode access.
</para>
</section>
- <section xml:id="dbdoclet.ldiskfs_ost_mkfs">
+ <section xml:id="ldiskfs_ost_mkfs">
<title><indexterm>
<primary>inodes</primary>
<secondary>OST</secondary>
if substantial errors are detected and need to be repaired.</para>
</note>
<para>For further details about optimizing MDT and OST file systems,
- see <xref linkend="dbdoclet.ldiskfs_raid_opts"/>.</para>
+ see <xref linkend="ldiskfs_raid_opts"/>.</para>
</section>
</section>
<section remap="h3">
<tbody>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_mdt_count" xreflabel=""/>Maximum number of MDTs</para>
+ <para><anchor xml:id="max_mdt_count" xreflabel=""/>Maximum number of MDTs</para>
</entry>
<entry>
<para>256</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_ost_count" xreflabel=""/>Maximum number of OSTs</para>
+ <para><anchor xml:id="max_ost_count" xreflabel=""/>Maximum number of OSTs</para>
</entry>
<entry>
<para>8150</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_ost_size" xreflabel=""/>Maximum OST size</para>
+ <para><anchor xml:id="max_ost_size" xreflabel=""/>Maximum OST size</para>
</entry>
<entry>
<para>1024TiB (ldiskfs), 1024TiB (ZFS)</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_client_count" xreflabel=""/>Maximum number of clients</para>
+ <para><anchor xml:id="max_client_count" xreflabel=""/>Maximum number of clients</para>
</entry>
<entry>
<para>131072</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_filesysem_size" xreflabel=""/>Maximum size of a single file system</para>
+ <para><anchor xml:id="max_filesysem_size" xreflabel=""/>Maximum size of a single file system</para>
</entry>
<entry>
<para>2EiB or larger</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_stripe_count" xreflabel=""/>Maximum stripe count</para>
+ <para><anchor xml:id="max_stripe_count" xreflabel=""/>Maximum stripe count</para>
</entry>
<entry>
<para>2000</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_stripe_size" xreflabel=""/>Maximum stripe size</para>
+ <para><anchor xml:id="max_stripe_size" xreflabel=""/>Maximum stripe size</para>
</entry>
<entry>
<para>< 4 GiB</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.min_stripe_size" xreflabel=""/>Minimum stripe size</para>
+ <para><anchor xml:id="min_stripe_size" xreflabel=""/>Minimum stripe size</para>
</entry>
<entry>
<para>64 KiB</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_object_size" xreflabel=""/>Maximum single object size</para>
+ <para><anchor xml:id="max_object_size" xreflabel=""/>Maximum single object size</para>
</entry>
<entry>
<para>16TiB (ldiskfs), 256TiB (ZFS)</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_file_size" xreflabel=""/>Maximum file size</para>
+ <para><anchor xml:id="max_file_size" xreflabel=""/>Maximum file size</para>
</entry>
<entry>
<para>16 TiB on 32-bit systems</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_directory_size" xreflabel=""/>Maximum number of files or subdirectories in a single directory</para>
+ <para><anchor xml:id="max_directory_size" xreflabel=""/>Maximum number of files or subdirectories in a single directory</para>
</entry>
<entry>
<para>600M-3.8B files (ldiskfs), 16T (ZFS)</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_file_count" xreflabel=""/>Maximum number of files in the file system</para>
+ <para><anchor xml:id="max_file_count" xreflabel=""/>Maximum number of files in the file system</para>
</entry>
<entry>
<para>4 billion (ldiskfs), 256 trillion (ZFS) <emphasis>per MDT</emphasis></para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_filename_size" xreflabel=""/>Maximum length of a filename</para>
+ <para><anchor xml:id="max_filename_size" xreflabel=""/>Maximum length of a filename</para>
</entry>
<entry>
<para>255 bytes (filename)</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_pathname_size" xreflabel=""/>Maximum length of a pathname</para>
+ <para><anchor xml:id="max_pathname_size" xreflabel=""/>Maximum length of a pathname</para>
</entry>
<entry>
<para>4096 bytes (pathname)</para>
</row>
<row>
<entry>
- <para><anchor xml:id="dbdoclet.max_open_files" xreflabel=""/>Maximum number of open files for a Lustre file system</para>
+ <para><anchor xml:id="max_open_files" xreflabel=""/>Maximum number of open files for a Lustre file system</para>
</entry>
<entry>
<para>No limit</para>
</table>
<para> </para>
</section>
- <section xml:id="dbdoclet.mds_oss_memory">
+ <section xml:id="mds_oss_memory">
<title><indexterm><primary>setup</primary><secondary>memory</secondary></indexterm>Determining Memory Requirements</title>
<para>This section describes the memory requirements for each Lustre file system component.</para>
<section remap="h3">
</section>
</section>
</section>
- <section xml:id="dbdoclet.network_considerations">
+ <section xml:id="network_considerations">
<title><indexterm>
<primary>setup</primary>
<secondary>network</secondary>
<para>This chapter includes system configuration utilities and includes the following sections:</para>
<itemizedlist>
<listitem>
- <para><xref linkend="dbdoclet.config_e2scan"/></para>
+ <para><xref linkend="config_e2scan"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.l_getidentity"/></para>
+ <para><xref linkend="l_getidentity"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.lctl"/></para>
+ <para><xref linkend="lctl"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.config_ll_decode_filter_fid"/></para>
+ <para><xref linkend="config_ll_decode_filter_fid"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.config_recover_lostfound_objs"/></para>
+ <para><xref linkend="config_recover_lostfound_objs"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.config_llog_reader"/></para>
+ <para><xref linkend="config_llog_reader"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.config_llstat"/></para>
+ <para><xref linkend="config_llstat"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.config_llverdev"/></para>
+ <para><xref linkend="config_llverdev"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.config_llshowmount"/></para>
+ <para><xref linkend="config_llshowmount"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.config_lst"/></para>
+ <para><xref linkend="config_lst"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.config_lustre_rmmod_sh"/></para>
+ <para><xref linkend="config_lustre_rmmod_sh"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.lustre_rsync"/></para>
+ <para><xref linkend="lustre_rsync"/></para>
</listitem>
<listitem>
<para><xref linkend="mkfs.lustre"/></para>
<para><xref linkend="mount.lustre"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.plot_llstat"/></para>
+ <para><xref linkend="plot_llstat"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.config_routerstat"/></para>
+ <para><xref linkend="config_routerstat"/></para>
</listitem>
<listitem>
<para><xref linkend="tunefs.lustre"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.config_additional_utility"/></para>
+ <para><xref linkend="config_additional_utility"/></para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.config_e2scan">
+ <section xml:id="config_e2scan">
<title><indexterm><primary>e2scan</primary></indexterm>e2scan</title>
<para>The e2scan utility is an ext2 file system-modified inode scan program. The e2scan program uses libext2fs to find inodes with ctime or mtime newer than a given time and prints out their pathname. Use e2scan to efficiently generate lists of files that have been modified. The e2scan tool is included in the e2fsprogs package, located at:</para>
<para>
</informaltable>
</section>
</section>
- <section xml:id="dbdoclet.l_getidentity">
+ <section xml:id="l_getidentity">
<title><indexterm><primary>l_getidentity</primary></indexterm>
l_getidentity</title>
<para>The l_getidentity tool normally handles Lustre user/group mapping
values for that UID, and writes this into the
<literal>mdt.*.identity_info</literal> parameter file. The list of
supplementary groups is cached in the kernel to avoid repeated
- upcalls. See <xref linkend="dbdoclet.identity_upcall"/> for more
+ upcalls. See <xref linkend="identity_upcall"/> for more
details.</para>
<para>The <literal>l_getidentity</literal> utility can also be run
directly for debugging purposes to ensure that the UID mapping for a
</screen>
</section>
</section>
- <section xml:id="dbdoclet.lctl">
+ <section xml:id="lctl">
<title><indexterm><primary>lctl</primary></indexterm>
lctl</title>
<para>The lctl utility is used for root control and configuration. With lctl you can directly control Lustre via an ioctl interface, allowing various configuration, maintenance and debugging features to be accessed.</para>
<screen>lctl list_param [-R] [-F] <replaceable>obdtype.obdname.*</replaceable></screen>
<para>For example, to list all of the parameters on the MDT:</para>
<screen>oss# lctl list_param -RF mdt</screen>
- <para>For more information on using lctl to set temporary and permanent parameters, see <xref linkend="dbdoclet.setting_param_with_lctl"/>.</para>
+ <para>For more information on using lctl to set temporary and permanent parameters, see <xref linkend="setting_param_with_lctl"/>.</para>
<para><emphasis role="bold">Network Configuration</emphasis></para>
<informaltable frame="all">
<tgroup cols="2">
<entry>
<para> Sets a permanent configuration parameter for any device via the MGS. This command must be run on the MGS node.</para>
<para>All writeable parameters under <literal>lctl list_param</literal> (e.g. <literal>lctl list_param -F osc.*.* | grep</literal> =) can be permanently set using <literal>lctl conf_param</literal>, but the format is slightly different. For <literal>conf_param</literal>, the device is specified first, then the obdtype. Wildcards are not supported. Additionally, failover nodes may be added (or removed), and some system-wide parameters may be set as well (sys.at_max, sys.at_min, sys.at_extra, sys.at_early_margin, sys.at_history, sys.timeout, sys.ldlm_timeout). For system-wide parameters, <replaceable>device</replaceable> is ignored.</para>
- <para>For more information on setting permanent parameters and <literal>lctl conf_param</literal> command examples, see <xref linkend="dbdoclet.setting_permanent_params"/> (Setting Permanent Parameters).</para>
+ <para>For more information on setting permanent parameters and <literal>lctl conf_param</literal> command examples, see <xref linkend="setting_permanent_params"/> (Setting Permanent Parameters).</para>
</entry>
</row>
<row>
</para>
</listitem>
<listitem>
- <para> <xref linkend="dbdoclet.lctl"/> </para>
+ <para> <xref linkend="lctl"/> </para>
</listitem>
<listitem>
<para> <xref linkend="userutilities.lfs"/> </para>
</itemizedlist>
</section>
</section>
- <section xml:id="dbdoclet.config_ll_decode_filter_fid">
+ <section xml:id="config_ll_decode_filter_fid">
<title><indexterm><primary>ll_decode_filter_fid</primary></indexterm>
ll_decode_filter_fid</title>
<para>The <literal>ll_decode_filter_fid</literal> utility displays the
and is not accessed or modified by Lustre after that time.</para>
<para>The OST object ID (objid) may be useful in case of OST directory
corruption, though LFSCK can normally reconstruct the entire OST object
- directory tree, see <xref linkend="dbdoclet.lfsckadmin" /> for details.
+ directory tree, see <xref linkend="lfsckadmin" /> for details.
The MDS FID can be useful to determine which MDS inode an OST object
is (or was) used by. The stripe index can be used in conjunction with
other OST objects to reconstruct the layout of a file even if the MDT
</section>
<section remap="h5">
<title>See Also</title>
- <para><xref linkend="dbdoclet.config_recover_lostfound_objs"/></para>
+ <para><xref linkend="config_recover_lostfound_objs"/></para>
</section>
</section>
- <section xml:id="dbdoclet.config_recover_lostfound_objs" condition='l28'>
+ <section xml:id="config_recover_lostfound_objs" condition='l28'>
<title><indexterm><primary>ll_recover_lost_found_objs</primary></indexterm>
ll_recover_lost_found_objs</title>
<para>The <literal>ll_recover_lost_found_objs</literal> utility was
<screen>/proc/fs/lustre/obdfilter/<replaceable>ostname</replaceable>/stats</screen>
</section>
</section>
- <section xml:id="dbdoclet.config_llog_reader">
+ <section xml:id="config_llog_reader">
<title><indexterm><primary>llog_reader</primary></indexterm>
llog_reader</title>
<para>The llog_reader utility translates a Lustre configuration log into human-readable form.</para>
<para><xref linkend="tunefs.lustre"/></para>
</section>
</section>
- <section xml:id="dbdoclet.config_llstat">
+ <section xml:id="config_llstat">
<title><indexterm><primary>llstat</primary></indexterm>
llstat</title>
<para>The llstat utility displays Lustre statistics.</para>
</screen>
</section>
</section>
- <section xml:id="dbdoclet.config_llverdev">
+ <section xml:id="config_llverdev">
<title><indexterm><primary>llverdev</primary></indexterm>
llverdev</title>
<para>The llverdev verifies a block device is functioning properly over its full size.</para>
read complete </screen>
</section>
</section>
- <section xml:id="dbdoclet.config_llshowmount">
+ <section xml:id="config_llshowmount">
<title><indexterm><primary>lshowmount</primary></indexterm>
lshowmount</title>
<para>The lshowmount utility shows Lustre exports.</para>
/proc/fs/lustre/obdfilter/<replaceable>server</replaceable>/exports/<replaceable>uuid</replaceable>/nid</screen>
</section>
</section>
- <section xml:id="dbdoclet.config_lst">
+ <section xml:id="config_lst">
<title><indexterm><primary>lst</primary></indexterm>
lst</title>
<para>The lst utility starts LNet self-test.</para>
lst end_session </screen>
</section>
</section>
- <section xml:id="dbdoclet.config_lustre_rmmod_sh">
+ <section xml:id="config_lustre_rmmod_sh">
<title><indexterm><primary>lustre_rmmod.sh</primary></indexterm>
lustre_rmmod.sh</title>
<para>The lustre_rmmod.sh utility removes all Lustre and LNet modules (assuming no Lustre services are running). It is located in /usr/bin.</para>
<para>The lustre_rmmod.sh utility does not work if Lustre modules are being used or if you have manually run the lctl network up command.</para>
</note>
</section>
- <section xml:id="dbdoclet.lustre_rsync">
+ <section xml:id="lustre_rsync">
<title><indexterm><primary>lustre_rsync</primary></indexterm>
lustre_rsync</title>
<para>The lustre_rsync utility synchronizes (replicates) a Lustre file system to a target file system.</para>
defined by this command.</para>
<para>When the file system is created, parameters can simply be added as a
<literal>--param</literal> option to the <literal>mkfs.lustre</literal> command. See <xref
- linkend="dbdoclet.tuning_params_mkfs_lustre"/>.</para>
+ linkend="tuning_params_mkfs_lustre"/>.</para>
<informaltable frame="all">
<tgroup cols="3">
<colspec colname="c1" colwidth="1*"/>
control over the starting conditions. This mount option also
prevents OI scrub from occurring automatically when OI
inconsistency is detected (see
- <xref linkend="dbdoclet.lfsck_auto_scrub"/>).
+ <xref linkend="lfsck_auto_scrub"/>).
</para>
</entry>
</row>
<para> <xref linkend="tunefs.lustre"/></para>
</listitem>
<listitem>
- <para> <xref linkend="dbdoclet.lctl"/></para>
+ <para> <xref linkend="lctl"/></para>
</listitem>
<listitem>
<para> <xref linkend="userutilities.lfs"/></para>
</itemizedlist>
</section>
</section>
- <section xml:id="dbdoclet.plot_llstat">
+ <section xml:id="plot_llstat">
<title><indexterm><primary>plot-llstat</primary></indexterm>
plot-llstat</title>
<para>The plot-llstat utility plots Lustre statistics.</para>
plot-llstat log 3</screen>
</section>
</section>
- <section xml:id="dbdoclet.config_routerstat">
+ <section xml:id="config_routerstat">
<title><indexterm><primary>routerstat</primary></indexterm>
routerstat</title>
<para>The routerstat utility prints Lustre router statistics.</para>
</para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.lctl"/></para>
+ <para><xref linkend="lctl"/></para>
</listitem>
<listitem>
<para><xref linkend="userutilities.lfs"/></para>
</itemizedlist>
</section>
</section>
- <section xml:id="dbdoclet.config_additional_utility">
+ <section xml:id="config_additional_utility">
<title><indexterm><primary>utilities</primary><secondary>system config</secondary></indexterm>
Additional System Configuration Utilities</title>
<para>This section describes additional system configuration utilities for Lustre.</para>
<itemizedlist>
<listitem>
<para>
- <xref linkend="dbdoclet.recover_ldiskfs_errors" />
+ <xref linkend="recover_ldiskfs_errors" />
</para>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.recover_lustreFS_corruption" />
+ <xref linkend="recover_lustreFS_corruption" />
</para>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.recover_unavailable_ost" />
+ <xref linkend="recover_unavailable_ost" />
</para>
</listitem>
<listitem>
<para>
- <xref linkend="dbdoclet.lfsckadmin" />
+ <xref linkend="lfsckadmin" />
</para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.recover_ldiskfs_errors">
+ <section xml:id="recover_ldiskfs_errors">
<title>
<indexterm>
<primary>recovery</primary>
:
root# e2fsck -fp /dev/sda # fix errors with prudent answers (usually <literal>yes</literal>)</screen>
</section>
- <section xml:id="dbdoclet.recover_lustreFS_corruption">
+ <section xml:id="recover_lustreFS_corruption">
<title>
<indexterm>
<primary>recovery</primary>
identify and process orphan objects found on MDTs as well.</para>
</section>
</section>
- <section xml:id="dbdoclet.recover_unavailable_ost">
+ <section xml:id="recover_unavailable_ost">
<title>
<indexterm>
<primary>recovery</primary>
<xref linkend="lustrerecovery" />(Version-based Recovery).</para>
</note>
</section>
- <section xml:id="dbdoclet.lfsckadmin">
+ <section xml:id="lfsckadmin">
<title>
<indexterm>
<primary>recovery</primary>
an internal table called the OI Table. An OI Scrub traverses the OI table
and makes corrections where necessary. An OI Scrub is required after
restoring from a file-level MDT backup (
- <xref linkend="dbdoclet.backup_device" />), or in case the OI Table is
+ <xref linkend="backup_device" />), or in case the OI Table is
otherwise corrupted. Later phases of LFSCK will add further checks to the
Lustre distributed file system state. LFSCK namespace scanning can verify
and repair the directory FID-in-dirent and LinkEA consistency.</para>
<title>Description</title>
<para>The
<literal>namespace</literal> component is responsible for checks
- described in <xref linkend="dbdoclet.lfsckadmin" />. The
+ described in <xref linkend="lfsckadmin" />. The
<literal>procfs</literal> interface for this component is in the
MDD layer, named
<literal>lfsck_namespace</literal>. To show the status of this
</informaltable>
</section>
</section>
- <section xml:id="dbdoclet.lfsck_auto_scrub">
+ <section xml:id="lfsck_auto_scrub">
<title>Auto scrub</title>
<section>
<title>Description</title>
</mediaobject>
</figure>
</section>
- <section xml:id='dbdoclet.mdtactiveactive'>
+ <section xml:id='mdtactiveactive'>
<title>
<indexterm>
<primary>failover</primary>
<emphasis role="italic">striped</emphasis> across the objects using RAID 0,
and each object is stored on a different OST. (For more information about
how striping is implemented in a Lustre file system, see
- <xref linkend="dbdoclet.lustre_striping" />.</para>
+ <xref linkend="lustre_striping" />.</para>
<figure xml:id="Fig1.3_LayoutEAonMDT">
<title>Layout EA on MDT pointing to file data on OSTs</title>
<mediaobject>
available space of all the OSTs.</para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.lustre_striping">
+ <section xml:id="lustre_striping">
<title>
<indexterm>
<primary>Lustre</primary>
<itemizedlist>
<listitem>
<para>
- <xref linkend="dbdoclet.interop_upgrade_requirement" />
+ <xref linkend="interop_upgrade_requirement" />
</para>
</listitem>
<listitem>
</para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.interop_upgrade_requirement">
+ <section xml:id="interop_upgrade_requirement">
<title>
<indexterm>
<primary>Lustre</primary>
</listitem>
<listitem>
<para>Shut down the entire filesystem by following
- <xref linkend="dbdoclet.shutdownLustre"/></para>
+ <xref linkend="shutdownLustre"/></para>
</listitem>
<listitem>
<para>Upgrade the Linux operating system on all servers to a compatible
</note>
<para>If you have a problem upgrading a Lustre file system, see
<xref xmlns:xlink="http://www.w3.org/1999/xlink"
- linkend="dbdoclet.reporting_lustre_problem"/>for ways to get help.</para>
+ linkend="reporting_lustre_problem"/>for ways to get help.</para>
</section>
<section xml:id="Upgrading_2.x.x">
<title>
</orderedlist>
<para>If you have a problem upgrading a Lustre file system, see
<xref xmlns:xlink="http://www.w3.org/1999/xlink"
- linkend="dbdoclet.reporting_lustre_problem" />for some suggestions for
+ linkend="reporting_lustre_problem" />for some suggestions for
how to get help.</para>
</section>
</chapter>
</entry>
<entry>
<para>Name of the pre-defined pool of OSTs (see
- <xref linkend="dbdoclet.lctl" />) that will be used
+ <xref linkend="lctl" />) that will be used
for striping. The
<literal>stripe_cnt</literal>,
<literal>stripe_size</literal> and
<section remap="h5">
<title>See Also</title>
<para>
- <xref linkend="dbdoclet.lctl" />
+ <xref linkend="lctl" />
</para>
</section>
</section>
- <section xml:id="dbdoclet.lfs_migrate">
+ <section xml:id="lfs_migrate">
<title>
<indexterm>
<primary>lfs_migrate</primary>
contains following sections:</para>
<itemizedlist>
<listitem>
- <para><xref linkend="dbdoclet.zfssnapshotIntro"/></para>
+ <para><xref linkend="zfssnapshotIntro"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.zfssnapshotConfig"/></para>
+ <para><xref linkend="zfssnapshotConfig"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.zfssnapshotOps"/></para>
+ <para><xref linkend="zfssnapshotOps"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.zfssnapshotBarrier"/></para>
+ <para><xref linkend="zfssnapshotBarrier"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.zfssnapshotLogs"/></para>
+ <para><xref linkend="zfssnapshotLogs"/></para>
</listitem>
<listitem>
- <para><xref linkend="dbdoclet.zfssnapshotLustreLogs"/></para>
+ <para><xref linkend="zfssnapshotLustreLogs"/></para>
</listitem>
</itemizedlist>
- <section xml:id="dbdoclet.zfssnapshotIntro">
+ <section xml:id="zfssnapshotIntro">
<title><indexterm><primary>Introduction</primary>
</indexterm>Introduction</title>
<para>Snapshots provide fast recovery of files from a previously created
faster than from any offline backup or remote replica. However, note that
snapshots do not improve storage reliability and are just as exposed to
hardware failure as any other storage volume.</para>
- <section xml:id="dbdoclet.zfssnapshotsReq">
+ <section xml:id="zfssnapshotsReq">
<title><indexterm><primary>Introduction</primary>
<secondary>Requirements</secondary></indexterm>Requirements
</title>
their system’s actual size and usage.</para>
</section>
</section>
- <section xml:id="dbdoclet.zfssnapshotConfig">
+ <section xml:id="zfssnapshotConfig">
<title><indexterm><primary>feature overview</primary>
<secondary>configuration</secondary></indexterm>Configuration
</title>
file system setup, you are ready to create a file system snapshot.
</para>
</section>
- <section xml:id="dbdoclet.zfssnapshotOps">
+ <section xml:id="zfssnapshotOps">
<title><indexterm><primary>operations</primary>
</indexterm>Snapshot Operations</title>
- <section xml:id="dbdoclet.zfssnapshotCreate">
+ <section xml:id="zfssnapshotCreate">
<title><indexterm><primary>operations</primary>
<secondary>create</secondary></indexterm>Creating a Snapshot
</title>
</tgroup>
</informaltable>
</section>
- <section xml:id="dbdoclet.zfssnapshotDelete">
+ <section xml:id="zfssnapshotDelete">
<title><indexterm><primary>operations</primary>
<secondary>delete</secondary></indexterm>Delete a Snapshot
</title>
</tgroup>
</informaltable>
</section>
- <section xml:id="dbdoclet.zfssnapshotMount">
+ <section xml:id="zfssnapshotMount">
<title><indexterm><primary>operations</primary>
<secondary>mount</secondary></indexterm>Mounting a Snapshot
</title>
<para>Finally, mount the snapshot on the client:</para>
<screen>mount -t lustre -o ro $MGS_nid:/$ss_fsname $local_mount_point</screen>
</section>
- <section xml:id="dbdoclet.zfssnapshotUnmount">
+ <section xml:id="zfssnapshotUnmount">
<title><indexterm><primary>operations</primary>
<secondary>unmount</secondary></indexterm>Unmounting a Snapshot
</title>
<para>For example:</para>
<screen>lctl snapshot_umount -F myfs -n snapshot_20170602</screen>
</section>
- <section xml:id="dbdoclet.zfssnapshotList">
+ <section xml:id="zfssnapshotList">
<title><indexterm><primary>operations</primary>
<secondary>list</secondary></indexterm>List Snapshots
</title>
</tgroup>
</informaltable>
</section>
- <section xml:id="dbdoclet.zfssnapshotModify">
+ <section xml:id="zfssnapshotModify">
<title><indexterm><primary>operations</primary>
<secondary>modify</secondary></indexterm>Modify Snapshot Attributes
</title>
</informaltable>
</section>
</section>
- <section xml:id="dbdoclet.zfssnapshotBarrier">
+ <section xml:id="zfssnapshotBarrier">
<title><indexterm><primary>barrier</primary>
</indexterm>Global Write Barriers</title>
<para>Snapshots are non-atomic across multiple MDTs and OSTs, which means
<literal>lctl snapshot_create</literal>. So, explicit use of the barrier
is not required when using snapshots but included here as an option to
quiet the file system before a snapshot is created.</para>
- <section xml:id="dbdoclet.zfssnapshotBarrierImpose">
+ <section xml:id="zfssnapshotBarrierImpose">
<title><indexterm><primary>barrier</primary>
<secondary>impose</secondary></indexterm>Impose Barrier
</title>
<para>If the command is successful, there will be no output from
the command. Otherwise, an error message will be printed.</para>
</section>
- <section xml:id="dbdoclet.zfssnapshotBarrierRemove">
+ <section xml:id="zfssnapshotBarrierRemove">
<title><indexterm><primary>barrier</primary>
<secondary>remove</secondary></indexterm>Remove Barrier
</title>
<para>If the command is successful, there will be no output from
the command. Otherwise, an error message will be printed.</para>
</section>
- <section xml:id="dbdoclet.zfssnapshotBarrierQuery">
+ <section xml:id="zfssnapshotBarrierQuery">
<title><indexterm><primary>barrier</primary>
<secondary>query</secondary></indexterm>Query Barrier
</title>
<para>If the barrier is in ’freezing_p1’, ’freezing_p2’ or ’frozen’
status, then the remaining lifetime will be returned also.</para>
</section>
- <section xml:id="dbdoclet.zfssnapshotBarrierRescan">
+ <section xml:id="zfssnapshotBarrierRescan">
<title><indexterm><primary>barrier</primary>
<secondary>rescan</secondary></indexterm>Rescan Barrier
</title>
error message will be printed.</para>
</section>
</section>
- <section xml:id="dbdoclet.zfssnapshotLogs">
+ <section xml:id="zfssnapshotLogs">
<title><indexterm><primary>logs</primary>
</indexterm>Snapshot Logs</title>
<para>A log of all snapshot activity can be found in the following file:
(20897:jt_snapshot_destroy:1312:scratch:ssh): Destroy snapshot
lss_2_0 successfully with force <disable></screen>
</section>
- <section xml:id="dbdoclet.zfssnapshotLustreLogs">
+ <section xml:id="zfssnapshotLustreLogs">
<title><indexterm><primary>configlogs</primary>
</indexterm>Lustre Configuration Logs</title>
<para>A snapshot is independent from the original file system that it is