Whamcloud - gitweb
FIX: proofed against origional
[doc/manual.git] / UnderstandingLustre.xml
index ec2fc39..8ea7e01 100644 (file)
@@ -3,7 +3,7 @@
   <info>
     <title xml:id="understandinglustre.title">Understanding Lustre</title>
   </info>
-  <para><anchor xml:id="dbdoclet.50438250_pgfId-1294042" xreflabel=""/>This chapter describes the Lustre architecture and features of Lustre. It includes the following sections:</para>
+  <para>This chapter describes the Lustre architecture and features of Lustre. It includes the following sections:</para>
   <itemizedlist>
     <listitem>
       <para>
   </itemizedlist>
   <section xml:id="understandinglustre.whatislustre">
     <title>1.1 <anchor xml:id="dbdoclet.50438250_92658" xreflabel=""/>What Lustre Is (and What It Isn&apos;t)</title>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1294027" xreflabel=""/>Lustre is a storage architecture for clusters. The central component of the Lustre architecture is the Lustre file system, which is supported on the Linux operating system and provides a POSIX-compliant UNIX file system interface.</para>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1294028" xreflabel=""/>The Lustre storage architecture is used for many different kinds of clusters. It is best known for powering seven of the ten largest high-performance computing (HPC) clusters worldwide, with tens of thousands of client systems, petabytes (PB) of storage and hundreds of gigabytes per second (GB/sec) of I/O throughput. Many HPC sites use Lustre as a site-wide global file system, serving dozens of clusters.</para>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1297491" xreflabel=""/>The ability of a Lustre file system to scale capacity and performance for any need reduces the need to deploy many separate file systems, such as one for each compute cluster. Storage management is simplified by avoiding the need to copy data between compute clusters. In addition to aggregating storage capacity of many servers, the I/O throughput is also aggregated and scales with additional servers. Moreover, throughput and/or capacity can be easily increased by adding servers dynamically.</para>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1297493" xreflabel=""/>While Lustre can function in many work environments, it is not necessarily the best choice for all applications. It is best suited for uses that exceed the capacity that a single server can provide, though in some use cases Lustre can perform better with a single server than other filesystems due to its strong locking and data coherency.</para>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1297495" xreflabel=""/>Lustre is currently not particularly well suited for &quot;peer-to-peer&quot; usage models where there are clients and servers running on the same node, each sharing a small amount of storage, due to the lack of Lustre-level data replication. In such uses, if one client/server fails, then the data stored on that node will not be accessible until the node is restarted.</para>
+    <para>Lustre is a storage architecture for clusters. The central component of the Lustre architecture is the Lustre file system, which is supported on the Linux operating system and provides a POSIX-compliant UNIX file system interface.</para>
+    <para>The Lustre storage architecture is used for many different kinds of clusters. It is best known for powering seven of the ten largest high-performance computing (HPC) clusters worldwide, with tens of thousands of client systems, petabytes (PB) of storage and hundreds of gigabytes per second (GB/sec) of I/O throughput. Many HPC sites use Lustre as a site-wide global file system, serving dozens of clusters.</para>
+    <para>The ability of a Lustre file system to scale capacity and performance for any need reduces the need to deploy many separate file systems, such as one for each compute cluster. Storage management is simplified by avoiding the need to copy data between compute clusters. In addition to aggregating storage capacity of many servers, the I/O throughput is also aggregated and scales with additional servers. Moreover, throughput and/or capacity can be easily increased by adding servers dynamically.</para>
+    <para>While Lustre can function in many work environments, it is not necessarily the best choice for all applications. It is best suited for uses that exceed the capacity that a single server can provide, though in some use cases Lustre can perform better with a single server than other filesystems due to its strong locking and data coherency.</para>
+    <para>Lustre is currently not particularly well suited for &quot;peer-to-peer&quot; usage models where there are clients and servers running on the same node, each sharing a small amount of storage, due to the lack of Lustre-level data replication. In such uses, if one client/server fails, then the data stored on that node will not be accessible until the node is restarted.</para>
     <section remap="h3">
-      <title><anchor xml:id="dbdoclet.50438250_pgfId-1293793" xreflabel=""/>1.1.1 Lustre <anchor xml:id="dbdoclet.50438250_marker-1293792" xreflabel=""/>Features</title>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1294716" xreflabel=""/>Lustre runs on a variety of vendor&apos;s kernels. For more details, see <link xl:href="http://wiki.whamcloud.com/">Lustre Release Information</link> on the Whamcloud wiki.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1294223" xreflabel=""/>A Lustre installation can be scaled up or down with respect to the number of client nodes, disk storage and bandwidth. Scalability and performance are dependent on available disk and network bandwith and the processing power of the servers in the system. Lustre can be deployed in a wide variety of configurations that can be scaled well beyond the size and performance observed in production systems to date.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1294224" xreflabel=""/><xref linkend="understandinglustre.tab1"/> shows the practical range of scalability and performance characteristics of the Lustre file system and some test results in production systems.</para>
+      <title>1.1.1 Lustre <anchor xml:id="dbdoclet.50438250_marker-1293792" xreflabel=""/>Features</title>
+      <para>Lustre runs on a variety of vendor&apos;s kernels. For more details, see <link xl:href="http://wiki.whamcloud.com/">Lustre Release Information</link> on the Whamcloud wiki.</para>
+      <para>A Lustre installation can be scaled up or down with respect to the number of client nodes, disk storage and bandwidth. Scalability and performance are dependent on available disk and network bandwith and the processing power of the servers in the system. Lustre can be deployed in a wide variety of configurations that can be scaled well beyond the size and performance observed in production systems to date.</para>
+      <para><xref linkend="understandinglustre.tab1"/> shows the practical range of scalability and performance characteristics of the Lustre file system and some test results in production systems.</para>
       <table frame="all">
         <title xml:id="understandinglustre.tab1">Lustre Scalability and Performance</title>
         <tgroup cols="4">
             <row>
               <entry>
                 <para><emphasis role="bold">
-                    <anchor xml:id="dbdoclet.50438250_pgfId-1294236" xreflabel=""/>
+                    
                   </emphasis></para>
               </entry>
               <entry>
-                <para><emphasis role="bold"><anchor xml:id="dbdoclet.50438250_pgfId-1294238" xreflabel=""/>Feature</emphasis></para>
+                <para><emphasis role="bold">Feature</emphasis></para>
               </entry>
               <entry>
-                <para><emphasis role="bold"><anchor xml:id="dbdoclet.50438250_pgfId-1294240" xreflabel=""/>Practical Range</emphasis></para>
+                <para><emphasis role="bold">Practical Range</emphasis></para>
               </entry>
               <entry>
-                <para><emphasis role="bold"><anchor xml:id="dbdoclet.50438250_pgfId-1294242" xreflabel=""/>Tested in Production</emphasis></para>
+                <para><emphasis role="bold">Tested in Production</emphasis></para>
               </entry>
             </row>
           </thead>
           <tbody>
             <row>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294244" xreflabel=""/><emphasis role="bold">Clients</emphasis></para>
+                <para> <emphasis role="bold">Clients</emphasis></para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294246" xreflabel=""/>Scalabity</para>
+                <para> Scalabity</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294248" xreflabel=""/>100-100,000</para>
+                <para> 100-100,000</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294250" xreflabel=""/>50,000+ clients</para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294251" xreflabel=""/>Many installations in 10,000 to 20,000 range</para>
+                <para> 50,000+ clients</para>
+                <para>Many installations in 10,000 to 20,000 range</para>
               </entry>
             </row>
             <row>
               <entry/>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294255" xreflabel=""/>Performance</para>
+                <para> Performance</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294257" xreflabel=""/><emphasis>Single client: </emphasis> 2 GB/sec I/O,</para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294258" xreflabel=""/>1,000 metadata ops/sec</para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294259" xreflabel=""/><emphasis>File system:</emphasis></para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294260" xreflabel=""/>2.5 TB/sec</para>
+                <para> <emphasis>Single client: </emphasis> 2 GB/sec I/O,</para>
+                <para>1,000 metadata ops/sec</para>
+                <para><emphasis>File system:</emphasis></para>
+                <para>2.5 TB/sec</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294262" xreflabel=""/><emphasis>Single client: </emphasis> 2 GB/sec</para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294263" xreflabel=""/>&#160;</para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294264" xreflabel=""/><emphasis>File system:</emphasis></para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294265" xreflabel=""/>240 GB/sec I/O</para>
+                <para> <emphasis>Single client: </emphasis> 2 GB/sec</para>
+                <para>&#160;</para>
+                <para><emphasis>File system:</emphasis></para>
+                <para>240 GB/sec I/O</para>
               </entry>
             </row>
             <row>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294267" xreflabel=""/><emphasis role="bold">OSSs</emphasis></para>
+                <para> <emphasis role="bold">OSSs</emphasis></para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294269" xreflabel=""/>Scalabity</para>
+                <para> Scalabity</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294271" xreflabel=""/><emphasis>OSSs:</emphasis></para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294272" xreflabel=""/>4-500 with up to 4000 OSTs</para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294273" xreflabel=""/>&#160;</para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294274" xreflabel=""/><emphasis>File system:</emphasis></para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294275" xreflabel=""/>64 PB, file size 320 TB</para>
+                <para> <emphasis>OSSs:</emphasis></para>
+                <para>4-500 with up to 4000 OSTs</para>
+                <para>&#160;</para>
+                <para><emphasis>File system:</emphasis></para>
+                <para>64 PB, file size 320 TB</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294277" xreflabel=""/><emphasis>OSSs:</emphasis></para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294278" xreflabel=""/>450 OSSs with 1,000 OSTs</para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294279" xreflabel=""/>192 OSSs with 1344 OSTs</para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294280" xreflabel=""/><emphasis>File system:</emphasis></para>
-                <para><anchor xml:id="dbdoclet.50438250_pgfId-1294281" xreflabel=""/>10 PB, file size multi-TB</para>
+                <para> <emphasis>OSSs:</emphasis></para>
+                <para>450 OSSs with 1,000 OSTs</para>
+                <para>192 OSSs with 1344 OSTs</para>
+                <para><emphasis>File system:</emphasis></para>
+                <para>10 PB, file size multi-TB</para>
               </entry>
             </row>
             <row>
               <entry/>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294285" xreflabel=""/>Performance</para>
+                <para> Performance</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294287" xreflabel=""/>Up to 5 GB/sec</para>
+                <para> Up to 5 GB/sec</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294289" xreflabel=""/>OSS throughput at 2.0+ GB/sec</para>
+                <para> OSS throughput at 2.0+ GB/sec</para>
               </entry>
             </row>
             <row>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294291" xreflabel=""/><emphasis role="bold">MDSs</emphasis></para>
+                <para> <emphasis role="bold">MDSs</emphasis></para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294293" xreflabel=""/>Scalabity</para>
+                <para> Scalabity</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294295" xreflabel=""/>1 + 1 (failover with one backup)</para>
+                <para> 1 + 1 (failover with one backup)</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294297" xreflabel=""/>&#160;</para>
+                <para> &#160;</para>
               </entry>
             </row>
             <row>
               <entry/>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294301" xreflabel=""/>Performance</para>
+                <para> Performance</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294303" xreflabel=""/>Up to 35,000/s create, 100,000/s stat metadata operations</para>
+                <para> Up to 35,000/s create, 100,000/s stat metadata operations</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1294305" xreflabel=""/>15,000/s create, 25,000/s stat metadata operations</para>
+                <para> 15,000/s create, 25,000/s stat metadata operations</para>
               </entry>
             </row>
           </tbody>
         </tgroup>
       </table>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293868" xreflabel=""/>Other Lustre features are:</para>
+      <para>Other Lustre features are:</para>
       <itemizedlist>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1295598" xreflabel=""/><emphasis role="bold">Performance-enhanced ext4 file system:</emphasis>  Lustre uses a modified version of the ext4 journaling file system to store data and metadata. This version, called <emphasis role="italic">ldiskfs</emphasis>, has been enhanced to improve performance and provide additional functionality needed by Lustre.</para>
+          <para><emphasis role="bold">Performance-enhanced ext4 file system:</emphasis>  Lustre uses a modified version of the ext4 journaling file system to store data and metadata. This version, called <emphasis role="italic">ldiskfs</emphasis>, has been enhanced to improve performance and provide additional functionality needed by Lustre.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1295599" xreflabel=""/><emphasis role="bold">POSIX compliance</emphasis> : The full POSIX test suite passes with limited exceptions on Lustre clients. In a cluster, most operations are atomic so that clients never see stale data or metadata. Lustre supports mmap() file I/O.</para>
+          <para><emphasis role="bold">POSIX compliance</emphasis> : The full POSIX test suite passes with limited exceptions on Lustre clients. In a cluster, most operations are atomic so that clients never see stale data or metadata. Lustre supports mmap() file I/O.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293870" xreflabel=""/><emphasis role="bold">High-performance heterogeneous networking:</emphasis>  Lustre supports a variety of high performance, low latency networks and permits Remote Direct Memory Access (RDMA) for Infiniband (OFED). This enables multiple, bridging RDMA networks to useLustre routing for maximum performance. Lustre also provides integrated network diagnostics.</para>
+          <para><emphasis role="bold">High-performance heterogeneous networking:</emphasis>  Lustre supports a variety of high performance, low latency networks and permits Remote Direct Memory Access (RDMA) for Infiniband (OFED). This enables multiple, bridging RDMA networks to useLustre routing for maximum performance. Lustre also provides integrated network diagnostics.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293871" xreflabel=""/><emphasis role="bold">High-availability:</emphasis>  Lustre offers active/active failover using shared storage partitions for OSS targets (OSTs) and active/passive failover using a shared storage partition for the MDS target (MDT). This allows application transparent recovery. Lustre can work with a variety of high availability (HA) managers to allow automated failover and has no single point of failure (NSPF). Multiple mount protection (MMP) provides integrated protection from errors in highly-available systems that would otherwise cause file system corruption.</para>
+          <para><emphasis role="bold">High-availability:</emphasis>  Lustre offers active/active failover using shared storage partitions for OSS targets (OSTs) and active/passive failover using a shared storage partition for the MDS target (MDT). This allows application transparent recovery. Lustre can work with a variety of high availability (HA) managers to allow automated failover and has no single point of failure (NSPF). Multiple mount protection (MMP) provides integrated protection from errors in highly-available systems that would otherwise cause file system corruption.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293872" xreflabel=""/><emphasis role="bold">Security:</emphasis>  In Lustre, an option is available to have TCP connections only from privileged ports. Group membership handling is server-based.</para>
+          <para><emphasis role="bold">Security:</emphasis>  In Lustre, an option is available to have TCP connections only from privileged ports. Group membership handling is server-based.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293873" xreflabel=""/><emphasis role="bold">Access control list (ACL), exended attributes</emphasis> : Currently, the Lustre security model follows that of a UNIX file system, enhanced with POSIX ACLs. Noteworthy additional features include root squash and connecting only from privileged ports.</para>
+          <para><emphasis role="bold">Access control list (ACL), exended attributes</emphasis> : Currently, the Lustre security model follows that of a UNIX file system, enhanced with POSIX ACLs. Noteworthy additional features include root squash and connecting only from privileged ports.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293874" xreflabel=""/><emphasis role="bold">Interoperability:</emphasis>  Lustre runs on a variety of CPU architectures and mixed-endian clusters and is interoperable between adjacent Lustre software releases.</para>
+          <para><emphasis role="bold">Interoperability:</emphasis>  Lustre runs on a variety of CPU architectures and mixed-endian clusters and is interoperable between adjacent Lustre software releases.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293875" xreflabel=""/><emphasis role="bold">Object-based architecture:</emphasis>  Clients are isolated from the on-disk file structure enabling upgrading of the storage architecture without affecting the client.</para>
+          <para><emphasis role="bold">Object-based architecture:</emphasis>  Clients are isolated from the on-disk file structure enabling upgrading of the storage architecture without affecting the client.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293876" xreflabel=""/><emphasis role="bold">Byte-granular file and fine-grained metadata locking:</emphasis>  Any clients can operate on the same file and directory concurrently. A Lustre distributed lock manager (DLM) ensures that files are coherent between all the clients in a file system and the servers. Multiple clients can access the same files concurrently, and the DLM ensures that all the clients see consistent data at all times. The DLM on each MDT and each OST manages the locking for objects stored in that file system. The MDT manages locks on inodes permissions and path names. OST manages locks for each stripe of a file and the data within each object</para>
+          <para><emphasis role="bold">Byte-granular file and fine-grained metadata locking:</emphasis>  Any clients can operate on the same file and directory concurrently. A Lustre distributed lock manager (DLM) ensures that files are coherent between all the clients in a file system and the servers. Multiple clients can access the same files concurrently, and the DLM ensures that all the clients see consistent data at all times. The DLM on each MDT and each OST manages the locking for objects stored in that file system. The MDT manages locks on inodes permissions and path names. OST manages locks for each stripe of a file and the data within each object</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293877" xreflabel=""/><emphasis role="bold">Quotas</emphasis> : User and group quotas are available for Lustre.</para>
+          <para><emphasis role="bold">Quotas</emphasis> : User and group quotas are available for Lustre.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293878" xreflabel=""/><emphasis role="bold">OSS addition</emphasis> : The capacity of a Lustre file system and aggregate cluster bandwidth can be increased without interrupting any operations by adding a new OSS with OSTs to the cluster.</para>
+          <para><emphasis role="bold">OSS addition</emphasis> : The capacity of a Lustre file system and aggregate cluster bandwidth can be increased without interrupting any operations by adding a new OSS with OSTs to the cluster.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293879" xreflabel=""/><emphasis role="bold">Controlled striping</emphasis> : The distribution of files across OSTs can be configured on a per file, per directory, or per file system basis. This allows file I/O to be tuned to specific application requirements. Lustre uses RAID-0 striping and balances space usage across OSTs.</para>
+          <para><emphasis role="bold">Controlled striping</emphasis> : The distribution of files across OSTs can be configured on a per file, per directory, or per file system basis. This allows file I/O to be tuned to specific application requirements. Lustre uses RAID-0 striping and balances space usage across OSTs.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293880" xreflabel=""/><emphasis role="bold">Network data integrity protection:</emphasis>  A checksum of all data sent from the client to the OSS protects against corruption during data transfer.</para>
+          <para><emphasis role="bold">Network data integrity protection:</emphasis>  A checksum of all data sent from the client to the OSS protects against corruption during data transfer.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293881" xreflabel=""/><emphasis role="bold">MPI I/O:</emphasis>  Lustre has a dedicated MPI ADIO layer that optimizes parallel I/O to match the underlying file system architecture.</para>
+          <para><emphasis role="bold">MPI I/O:</emphasis>  Lustre has a dedicated MPI ADIO layer that optimizes parallel I/O to match the underlying file system architecture.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293882" xreflabel=""/><emphasis role="bold">NFS and CIFS export:</emphasis>  Lustre files can be re-exported using NFS or CIFS (via Samba) enabling them to be shared with a non-Linux client.</para>
+          <para><emphasis role="bold">NFS and CIFS export:</emphasis>  Lustre files can be re-exported using NFS or CIFS (via Samba) enabling them to be shared with a non-Linux client.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293883" xreflabel=""/><emphasis role="bold">Disaster recovery tool:</emphasis>  Lustre provides a distributed file system check (lfsck) that can restore consistency between storage components in case of a major file system error. Lustre can operate even in the presence of file system inconsistencies, so lfsck is not required before returning the file system to production.</para>
+          <para><emphasis role="bold">Disaster recovery tool:</emphasis>  Lustre provides a distributed file system check (lfsck) that can restore consistency between storage components in case of a major file system error. Lustre can operate even in the presence of file system inconsistencies, so lfsck is not required before returning the file system to production.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293884" xreflabel=""/><emphasis role="bold">Internal monitoring and instrumentation interfaces:</emphasis>  Lustre offers a variety of mechanisms to examine performance and tuning.</para>
+          <para><emphasis role="bold">Internal monitoring and instrumentation interfaces:</emphasis>  Lustre offers a variety of mechanisms to examine performance and tuning.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293885" xreflabel=""/><emphasis role="bold">Open source</emphasis> : Lustre is licensed under the GPL 2.0 license for use with Linux.</para>
+          <para><emphasis role="bold">Open source</emphasis> : Lustre is licensed under the GPL 2.0 license for use with Linux.</para>
         </listitem>
       </itemizedlist>
     </section>
   </section>
   <section xml:id="understandinglustre.components">
     <title>1.2 <anchor xml:id="dbdoclet.50438250_17402" xreflabel=""/>Lustre Components</title>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1293889" xreflabel=""/>An installation of the Lustre software includes a management server (MGS) and one or more Lustre file systems interconnected with Lustre networking (LNET).</para>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1296520" xreflabel=""/>A basic configuration of Lustre components is shown in <xref linkend="understandinglustre.fig.cluster"/>.</para>
+    <para>An installation of the Lustre software includes a management server (MGS) and one or more Lustre file systems interconnected with Lustre networking (LNET).</para>
+    <para>A basic configuration of Lustre components is shown in <xref linkend="understandinglustre.fig.cluster"/>.</para>
     <figure>
       <title xml:id="understandinglustre.fig.cluster">Lustre components in a basic cluster </title>
       <mediaobject>
       </mediaobject>
     </figure>
     <section remap="h3">
-      <title><anchor xml:id="dbdoclet.50438250_pgfId-1296512" xreflabel=""/>1.2.1 Management Server (MGS)</title>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1296493" xreflabel=""/>The MGS stores configuration information for all the Lustre file systems in a cluster and provides this information to other Lustre components. Each Lustre target contacts the MGS to provide information, and Lustre clients contact the MGS to retrieve information.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293901" xreflabel=""/>It is preferable that the MGS have its own storage space so that it can be managed independently. However, the MGS can be co-located and share storage space with an MDS as shown in <xref linkend="understandinglustre.fig.cluster"/>.</para>
+      <title>1.2.1 Management Server (MGS)</title>
+      <para>The MGS stores configuration information for all the Lustre file systems in a cluster and provides this information to other Lustre components. Each Lustre target contacts the MGS to provide information, and Lustre clients contact the MGS to retrieve information.</para>
+      <para>It is preferable that the MGS have its own storage space so that it can be managed independently. However, the MGS can be co-located and share storage space with an MDS as shown in <xref linkend="understandinglustre.fig.cluster"/>.</para>
     </section>
     <section remap="h3">
-      <title><anchor xml:id="dbdoclet.50438250_pgfId-1293902" xreflabel=""/>1.2.2 Lustre File System Components</title>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293903" xreflabel=""/>Each Lustre file system consists of the following components:</para>
+      <title>1.2.2 Lustre File System Components</title>
+      <para>Each Lustre file system consists of the following components:</para>
       <itemizedlist>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293904" xreflabel=""/><emphasis role="bold">Metadata Server (MDS)</emphasis>  - The MDS makes metadata stored in one or more MDTs available to Lustre clients. Each MDS manages the names and directories in the Lustre file system(s) and provides network request handling for one or more local MDTs.</para>
+          <para><emphasis role="bold">Metadata Server (MDS)</emphasis>  - The MDS makes metadata stored in one or more MDTs available to Lustre clients. Each MDS manages the names and directories in the Lustre file system(s) and provides network request handling for one or more local MDTs.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293905" xreflabel=""/><emphasis role="bold">Metadata Target (MDT</emphasis> ) - The MDT stores metadata (such as filenames, directories, permissions and file layout) on storage attached to an MDS. Each file system has one MDT. An MDT on a shared storage target can be available to multiple MDSs, although only one can access it at a time. If an active MDS fails, a standby MDS can serve the MDT and make it available to clients. This is referred to as MDS failover.</para>
+          <para><emphasis role="bold">Metadata Target (MDT</emphasis> ) - The MDT stores metadata (such as filenames, directories, permissions and file layout) on storage attached to an MDS. Each file system has one MDT. An MDT on a shared storage target can be available to multiple MDSs, although only one can access it at a time. If an active MDS fails, a standby MDS can serve the MDT and make it available to clients. This is referred to as MDS failover.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293906" xreflabel=""/><emphasis role="bold">Object Storage Servers (OSS)</emphasis> : The OSS provides file I/O service, and network request handling for one or more local OSTs. Typically, an OSS serves between 2 and 8 OSTs, up to 16 TB each. A typical configuration is an MDT on a dedicated node, two or more OSTs on each OSS node, and a client on each of a large number of compute nodes.</para>
+          <para><emphasis role="bold">Object Storage Servers (OSS)</emphasis> : The OSS provides file I/O service, and network request handling for one or more local OSTs. Typically, an OSS serves between 2 and 8 OSTs, up to 16 TB each. A typical configuration is an MDT on a dedicated node, two or more OSTs on each OSS node, and a client on each of a large number of compute nodes.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293907" xreflabel=""/><emphasis role="bold">Object Storage Target (OST)</emphasis> : User file data is stored in one or more objects, each object on a separate OST in a Lustre file system. The number of objects per file is configurable by the user and can be tuned to optimize performance for a given workload.</para>
+          <para><emphasis role="bold">Object Storage Target (OST)</emphasis> : User file data is stored in one or more objects, each object on a separate OST in a Lustre file system. The number of objects per file is configurable by the user and can be tuned to optimize performance for a given workload.</para>
         </listitem>
         <listitem>
-          <para><anchor xml:id="dbdoclet.50438250_pgfId-1293908" xreflabel=""/><emphasis role="bold">Lustre clients</emphasis> : Lustre clients are computational, visualization or desktop nodes that are running Lustre client software, allowing them to mount the Lustre file system.</para>
+          <para><emphasis role="bold">Lustre clients</emphasis> : Lustre clients are computational, visualization or desktop nodes that are running Lustre client software, allowing them to mount the Lustre file system.</para>
         </listitem>
       </itemizedlist>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293909" xreflabel=""/>The Lustre client software provides an interface between the Linux virtual file system and the Lustre servers. The client software includes a Management Client (MGC), a Metadata Client (MDC), and multiple Object Storage Clients (OSCs), one corresponding to each OST in the file system.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293910" xreflabel=""/>A logical object volume (LOV) aggregates the OSCs to provide transparent access across all the OSTs. Thus, a client with the Lustre file system mounted sees a single, coherent, synchronized namespace. Several clients can write to different parts of the same file simultaneously, while, at the same time, other clients can read from the file.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293911" xreflabel=""/><xref linkend="understandinglustre.tab.storagerequire"/> provides the requirements for attached storage for each Lustre file system component and describes desirable characterics of the hardware used.</para>
+      <para>The Lustre client software provides an interface between the Linux virtual file system and the Lustre servers. The client software includes a Management Client (MGC), a Metadata Client (MDC), and multiple Object Storage Clients (OSCs), one corresponding to each OST in the file system.</para>
+      <para>A logical object volume (LOV) aggregates the OSCs to provide transparent access across all the OSTs. Thus, a client with the Lustre file system mounted sees a single, coherent, synchronized namespace. Several clients can write to different parts of the same file simultaneously, while, at the same time, other clients can read from the file.</para>
+      <para><xref linkend="understandinglustre.tab.storagerequire"/> provides the requirements for attached storage for each Lustre file system component and describes desirable characterics of the hardware used.</para>
       <table frame="all">
         <title xml:id="understandinglustre.tab.storagerequire">Storage and hardware requirements for Lustre components</title>
         <tgroup cols="3">
             <row>
               <entry>
                 <para><emphasis role="bold">
-                    <anchor xml:id="dbdoclet.50438250_pgfId-1293914" xreflabel=""/>
+                    
                   </emphasis></para>
               </entry>
               <entry>
-                <para><emphasis role="bold"><anchor xml:id="dbdoclet.50438250_pgfId-1293916" xreflabel=""/>Required attached storage</emphasis></para>
+                <para><emphasis role="bold">Required attached storage</emphasis></para>
               </entry>
               <entry>
-                <para><emphasis role="bold"><anchor xml:id="dbdoclet.50438250_pgfId-1293918" xreflabel=""/>Desirable hardware characteristics</emphasis></para>
+                <para><emphasis role="bold">Desirable hardware characteristics</emphasis></para>
               </entry>
             </row>
           </thead>
           <tbody>
             <row>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1293920" xreflabel=""/><emphasis role="bold">MDSs</emphasis></para>
+                <para> <emphasis role="bold">MDSs</emphasis></para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1293922" xreflabel=""/>1-2% of file system capacity</para>
+                <para> 1-2% of file system capacity</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1293924" xreflabel=""/>Adequate CPU power, plenty of memory, fast disk storage.</para>
+                <para> Adequate CPU power, plenty of memory, fast disk storage.</para>
               </entry>
             </row>
             <row>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1293926" xreflabel=""/><emphasis role="bold">OSSs</emphasis></para>
+                <para> <emphasis role="bold">OSSs</emphasis></para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1293928" xreflabel=""/>1-16 TB per OST, 1-8 OSTs per OSS</para>
+                <para> 1-16 TB per OST, 1-8 OSTs per OSS</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1293930" xreflabel=""/>Good bus bandwidth. Recommended that storage be balanced evenly across OSSs.</para>
+                <para> Good bus bandwidth. Recommended that storage be balanced evenly across OSSs.</para>
               </entry>
             </row>
             <row>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1293932" xreflabel=""/><emphasis role="bold">Clients</emphasis></para>
+                <para> <emphasis role="bold">Clients</emphasis></para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1293934" xreflabel=""/>None</para>
+                <para> None</para>
               </entry>
               <entry>
-                <para> <anchor xml:id="dbdoclet.50438250_pgfId-1293936" xreflabel=""/>Low latency, high bandwith network.</para>
+                <para> Low latency, high bandwith network.</para>
               </entry>
             </row>
           </tbody>
         </tgroup>
       </table>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293938" xreflabel=""/>For additional hardware requirements and considerations, see <xref linkend="settinguplustresystem"/>.</para>
+      <para>For additional hardware requirements and considerations, see <xref linkend="settinguplustresystem"/>.</para>
     </section>
     <section remap="h3">
-      <title><anchor xml:id="dbdoclet.50438250_pgfId-1295546" xreflabel=""/>1.2.3 Lustre Networking (LNET)</title>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293939" xreflabel=""/>Lustre Networking (LNET) is a custom networking API that provides the communication infrastructure that handles metadata and file I/O data for the Lustre file system servers and clients. For more information about LNET, see something <xref linkend="understandinglustrenetworking"/>.</para>
+      <title>1.2.3 Lustre Networking (LNET)</title>
+      <para>Lustre Networking (LNET) is a custom networking API that provides the communication infrastructure that handles metadata and file I/O data for the Lustre file system servers and clients. For more information about LNET, see something <xref linkend="understandinglustrenetworking"/>.</para>
     </section>
     <section remap="h3">
-      <title><anchor xml:id="dbdoclet.50438250_pgfId-1293940" xreflabel=""/>1.2.4 Lustre Cluster</title>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293941" xreflabel=""/>At scale, the Lustre cluster can include hundreds of OSSs and thousands of clients (see <xref linkend="understandinglustre.fig.lustrescale"/>). More than one type of network can be used in a Lustre cluster. Shared storage between OSSs enables failover capability. For more details about OSS failover, see <xref linkend="understandingfailover"/>.</para>
+      <title>1.2.4 Lustre Cluster</title>
+      <para>At scale, the Lustre cluster can include hundreds of OSSs and thousands of clients (see <xref linkend="understandinglustre.fig.lustrescale"/>). More than one type of network can be used in a Lustre cluster. Shared storage between OSSs enables failover capability. For more details about OSS failover, see <xref linkend="understandingfailover"/>.</para>
       <figure>
         <title xml:id="understandinglustre.fig.lustrescale">Lustre cluster at scale</title>
         <mediaobject>
   </section>
   <section xml:id="understandinglustre.storageio">
     <title>1.3 <anchor xml:id="dbdoclet.50438250_38077" xreflabel=""/>Lustre Storage and I/O</title>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1296581" xreflabel=""/>In a Lustre file system, a file stored on the MDT points to one or more objects associated with a data file, as shown in <xref linkend="understandinglustre.fig.mdtost"/>. Each object contains data and is stored on an OST. If the MDT file points to one object, all the file data is stored in that object. If the file points to more than one object, the file data is &apos;striped&apos; across the objects (using RAID 0) and each object is stored on a different OST. (For more information about how striping is implemented in Lustre, see <xref linkend="dbdoclet.50438250_89922"/>)</para>
+    <para>In a Lustre file system, a file stored on the MDT points to one or more objects associated with a data file, as shown in <xref linkend="understandinglustre.fig.mdtost"/>. Each object contains data and is stored on an OST. If the MDT file points to one object, all the file data is stored in that object. If the file points to more than one object, the file data is &apos;striped&apos; across the objects (using RAID 0) and each object is stored on a different OST. (For more information about how striping is implemented in Lustre, see <xref linkend="dbdoclet.50438250_89922"/>)</para>
     <para>In <xref linkend="understandinglustre.fig.mdtost"/>, each filename points to an inode. The inode contains all of the file attributes, such as owner, access permissions, Lustre striping layout, access time, and access control. Multiple filenames may point to the same inode.</para>
     <figure>
       <title xml:id="understandinglustre.fig.mdtost">MDT file points to objects on OSTs containing file data</title>
         </textobject>
       </mediaobject>
     </figure>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1296662" xreflabel=""/>When a client opens a file, the <literal>fileopen</literal> operation transfers the file layout from the MDS to the client. The client then uses this information to perform I/O on the file, directly interacting with the OSS nodes where the objects are stored. This process is illustrated in <xref linkend="understandinglustre.fig.fileio"/>.</para>
+    <para>When a client opens a file, the <literal>fileopen</literal> operation transfers the file layout from the MDS to the client. The client then uses this information to perform I/O on the file, directly interacting with the OSS nodes where the objects are stored. This process is illustrated in <xref linkend="understandinglustre.fig.fileio"/>.</para>
     <figure>
       <title xml:id="understandinglustre.fig.fileio">File open and file I/O in Lustre</title>
       <mediaobject>
         </textobject>
       </mediaobject>
     </figure>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1296842" xreflabel=""/>Each file on the MDT contains the layout of the associated data file, including the OST number and object identifier. Clients request the file layout from the MDS and then perform file I/O operations by communicating directly with the OSSs that manage that file data.</para>
-    <para><anchor xml:id="dbdoclet.50438250_pgfId-1297084" xreflabel=""/>The available bandwidth of a Lustre file system is determined as follows:</para>
+    <para>Each file on the MDT contains the layout of the associated data file, including the OST number and object identifier. Clients request the file layout from the MDS and then perform file I/O operations by communicating directly with the OSSs that manage that file data.</para>
+    <para>The available bandwidth of a Lustre file system is determined as follows:</para>
     <itemizedlist>
       <listitem>
-        <para><anchor xml:id="dbdoclet.50438250_pgfId-1293969" xreflabel=""/> The <emphasis>network bandwidth</emphasis> equals the aggregated bandwidth of the OSSs to the targets.</para>
+        <para> The <emphasis>network bandwidth</emphasis> equals the aggregated bandwidth of the OSSs to the targets.</para>
       </listitem>
       <listitem>
-        <para><anchor xml:id="dbdoclet.50438250_pgfId-1293970" xreflabel=""/> The <emphasis>disk bandwidth</emphasis> equals the sum of the disk bandwidths of the storage targets (OSTs) up to the limit of the network bandwidth.</para>
+        <para> The <emphasis>disk bandwidth</emphasis> equals the sum of the disk bandwidths of the storage targets (OSTs) up to the limit of the network bandwidth.</para>
       </listitem>
       <listitem>
-        <para><anchor xml:id="dbdoclet.50438250_pgfId-1293971" xreflabel=""/> The <emphasis>aggregate bandwidth</emphasis> equals the minimium of the disk bandwidth and the network bandwidth.</para>
+        <para> The <emphasis>aggregate bandwidth</emphasis> equals the minimium of the disk bandwidth and the network bandwidth.</para>
       </listitem>
       <listitem>
-        <para><anchor xml:id="dbdoclet.50438250_pgfId-1293972" xreflabel=""/> The <emphasis>available file system space</emphasis> equals the sum of the available space of all the OSTs.</para>
+        <para> The <emphasis>available file system space</emphasis> equals the sum of the available space of all the OSTs.</para>
       </listitem>
     </itemizedlist>
     <section xml:id="dbdoclet.50438250_89922">
       <title>1.3.1 Lustre File System and Striping</title>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1297909" xreflabel=""/>One of the main factors leading to the high performance of Lustre file systems is the ability to stripe data across multiple OSTs in a round-robin fashion. Users can optionally configure for each file the number of stripes, stripe size, and OSTs that are used.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1297885" xreflabel=""/>Striping can be used to improve performance when the aggregate bandwidth to a single file exeeds the bandwidth of a single OST. The ability to stripe is also useful when a single OST does not have anough free space to hold an entire file. For more information about benefits and drawbacks of file striping, see <xref linkend="dbdoclet.50438209_48033"/>.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1295480" xreflabel=""/>Striping allows segments or &apos;chunks&apos; of data in a file to be stored on different OSTs, as shown in <xref linkend="understandinglustre.fig.filestripe"/>. In the Lustre file system, a RAID 0 pattern is used in which data is &quot;striped&quot; across a certain number of objects. The number of objects in a single file is called the <literal>stripe_count</literal>.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293978" xreflabel=""/>Each object contains a chunk of data from the file. When the chunk of data being written to a particular object exceeds the <literal>stripe_size</literal>, the next chunk of data in the file is stored on the next object.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293979" xreflabel=""/>Default values for <literal>stripe_count</literal> and <literal>stripe_size</literal> are set for the file system. The default value for <literal>stripe_count</literal> is 1 stripe for file and the default value for <literal>stripe_size</literal> is 1MB. The user may change these values on a per directory or per file basis. For more details, see <xref linkend="dbdoclet.50438209_78664"/>.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1293983" xreflabel=""/><xref linkend="understandinglustre.fig.filestripe"/>, the <literal>stripe_size</literal> for File C is larger than the <literal>stripe_size</literal> for File A, allowing more data to be stored in a single stripe for File C. The <literal>stripe_count</literal> for File A is 3, resulting in data striped across three objects, while the <literal>stripe_count</literal> for File B and File C is 1.</para>
-      <para><anchor xml:id="dbdoclet.50438250_pgfId-1297121" xreflabel=""/>No space is reserved on the OST for unwritten data. File A in <xref linkend="understandinglustre.fig.filestripe"/>.</para>
+      <para>One of the main factors leading to the high performance of Lustre file systems is the ability to stripe data across multiple OSTs in a round-robin fashion. Users can optionally configure for each file the number of stripes, stripe size, and OSTs that are used.</para>
+      <para>Striping can be used to improve performance when the aggregate bandwidth to a single file exeeds the bandwidth of a single OST. The ability to stripe is also useful when a single OST does not have anough free space to hold an entire file. For more information about benefits and drawbacks of file striping, see <xref linkend="dbdoclet.50438209_48033"/>.</para>
+      <para>Striping allows segments or &apos;chunks&apos; of data in a file to be stored on different OSTs, as shown in <xref linkend="understandinglustre.fig.filestripe"/>. In the Lustre file system, a RAID 0 pattern is used in which data is &quot;striped&quot; across a certain number of objects. The number of objects in a single file is called the <literal>stripe_count</literal>.</para>
+      <para>Each object contains a chunk of data from the file. When the chunk of data being written to a particular object exceeds the <literal>stripe_size</literal>, the next chunk of data in the file is stored on the next object.</para>
+      <para>Default values for <literal>stripe_count</literal> and <literal>stripe_size</literal> are set for the file system. The default value for <literal>stripe_count</literal> is 1 stripe for file and the default value for <literal>stripe_size</literal> is 1MB. The user may change these values on a per directory or per file basis. For more details, see <xref linkend="dbdoclet.50438209_78664"/>.</para>
+      <para><xref linkend="understandinglustre.fig.filestripe"/>, the <literal>stripe_size</literal> for File C is larger than the <literal>stripe_size</literal> for File A, allowing more data to be stored in a single stripe for File C. The <literal>stripe_count</literal> for File A is 3, resulting in data striped across three objects, while the <literal>stripe_count</literal> for File B and File C is 1.</para>
+      <para>No space is reserved on the OST for unwritten data. File A in <xref linkend="understandinglustre.fig.filestripe"/>.</para>
       <figure>
         <title xml:id="understandinglustre.fig.filestripe">File striping on Lustre</title>
         <mediaobject>