  _           _
 | |         | |
 | |_   _ ___| |_ _ __ ___
 | | | | / __| __| '__/ _ \
 | | |_| \__ | |_| | |  __/
 |_|\__,_|___/\__|_|  \___|

Lustre is an open-source, distributed parallel file system designed for
scalability, high-performance, and high-availability.

Lustre is purpose-built to provide a coherent, global POSIX-compliant
namespace for very large scale computer clusters, including the world's
largest supercomputer platforms.

It can support hundreds of petabytes of data storage and terabytes per
second in simultaneous, aggregate throughput.

+---------------+
| Documentation |
+---------------+

More information about Lustre:
    http://www.lustre.org/
Many resources for using, configuring, and troubleshooting Lustre are at:
    http://wiki.lustre.org/

For in-tree documentation, see the following directories:
    Documentation/
    lustre/doc/
    lnet/doc/

+-----------+
| Community |
+-----------+

The low-volume list for announcements of new releases is at:
    http://lists.lustre.org/listinfo.cgi/lustre-announce-lustre.org
The generic Lustre discussion mailing list is available at:
    http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org
The Lustre developer mailing list is at:
    http://lists.lustre.org/pipermail/lustre-devel-lustre.org

To report bugs, please visit:
    https://jira.whamcloud.com/

The official repository is hosted at:
    https://git.whamcloud.com/fs/lustre-release.git
Mirror is available at:
    https://github.com/lustre/lustre-release

+----------+
| Building |
+----------+

Detailed instructions for building, configuring and running Lustre:
    http://wiki.lustre.org/Compiling_Lustre
and
    https://wiki.whamcloud.com/display/PUB/Getting+started+with+Lustre.


To build Lustre:

    bash autogen.sh
    ./configure
    make

To see all available make targets:

    make help

+---------+
| Testing |
+---------+

Explanation of Lustre test suites:
    https://wiki.lustre.org/Test_Descriptions
and Lustre test environment variables:
    https://wiki.whamcloud.com/display/PUB/Lustre+Test+Tools+Environment+Variables


To play with a test Lustre filesystem:

    ./lustre/tests/llmount.sh

To run a test on the filesystem:

    ./lustre/tests/auster -v sanity --only 1

To clean up:

    ./lustre/tests/llmountcleanup.sh

To run LUTF (LNet Unit Test Framework) in a Python virtual environment:

    python3 -m venv venv
    source venv/bin/activate
    pip3 install -r requirements.txt
    ./lustre/tests/lutf.sh

+--------------+
| Contributing |
+--------------+

Instructions for contributing patches for Lustre:
    http://wiki.lustre.org/Submitting_Changes
and
    http://wiki.lustre.org/Using_Gerrit


The Lustre Coding Style Guidelines can be found at:
    http://wiki.lustre.org/Lustre_Coding_Style_Guidelines

The Lustre Test Script Style Guidelines can be found at:
    http://wiki.lustre.org/Lustre_Script_Coding_Style


In order to improve the quality of patches submitted to the Lustre tree,
it is possible to automatically check every patch and commit against the
Lustre Coding Guidelines.  To do this, run in the top-level lustre/ tree:

    cd .git/hooks
    ln -s ../../contrib/git-hooks/{prepare-,}commit-msg ./
    cd ../..
