Close Menu
DPC Virtual Tips
    Read More

    Lustre Filesystem Commands: A Practical Admin Guide

    August 5, 2026

    Linux ss, lsof, and fuser Commands: A Practical Guide

    August 4, 2026

    Linux Commands to Investigate High Disk Partition Usage

    July 20, 2026
    • Home
    • About Us
    • Contact
    • Cookie Policy
    • Comment Policy
    • Privacy Policy
    • Terms of Use
    • Disclaimer
    Wednesday, August 5
    DPC Virtual Tips
    • Home
    • Operating Systems
    • PowerFlex
    • HPC
    • Virtualization
    • About Us
    • Contact
    DPC Virtual Tips
    Home » Lustre Filesystem Commands: A Practical Admin Guide
    HPC

    Lustre Filesystem Commands: A Practical Admin Guide

    DaniloBy DaniloAugust 5, 2026Updated:August 5, 2026No Comments12 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    lustre filesystem commands
    Share
    Facebook Twitter LinkedIn Pinterest Email

    Lustre filesystem commands can seem intimidating when an administrator first starts managing an HPC cluster. A single filesystem may involve metadata servers, object storage servers, multiple targets, specialized networking, and hundreds of clients accessing data at the same time.

    Fortunately, daily Lustre administration does not always require advanced knowledge of its internal architecture. A relatively small set of commands can reveal whether the filesystem is mounted, how much storage remains, where files are located, and which components may be experiencing problems.

    This practical guide covers the basic Lustre filesystem commands administrators can use for routine checks and first-level troubleshooting. The examples assume that the Lustre client utilities are installed and that the filesystem is mounted at /lustre, for example.

    Fisrt and foremost: What Is Lustre and Why Is It Used in HPC?

    Lustre is an open-source parallel filesystem designed for environments that need to store and process large volumes of data across many servers and compute nodes. It provides a shared filesystem namespace while distributing storage responsibilities among several specialized components.

    In a basic Lustre architecture, Metadata Servers (MDS) manage filenames, directories, permissions, and file layouts through Metadata Targets (MDT). Object Storage Servers (OSS) provide access to Object Storage Targets (OST), where the actual file data is stored, while Lustre clients communicate with these services through LNet (network used by Lustre).

    This architecture is widely used in HPC clusters because many compute processes can read and write data in parallel. Understanding the roles of the MDTs, OSTs, servers, clients, and LNet also helps administrators determine whether a problem is related to metadata, storage capacity, file placement, network connectivity, or the client itself.

    We have written an article about Lustre. Click here to access it!

    Confirm That the Lustre Filesystem Is Mounted

    Before investigating targets, striping, or network connectivity, confirm that the client has mounted the filesystem:

    mount -t lustre

    A cleaner alternative is:

    findmnt -t lustre

    findmnt displays the mount point, source, filesystem type, and mount options. The source normally includes one or more Management Server NIDs followed by the Lustre filesystem name.

    You can also check whether a persistent mount is configured locally:

    grep -i lustre /etc/fstab

    This is common in smaller environments where Lustre filesystems are mounted directly during system startup. In larger HPC clusters, however, mounts may be managed through autofs, centralized LDAP or SSSD maps, configuration-management systems, or native systemd automount units.

    Check whether autofs is active:

    systemctl status autofs

    Inspect the autofs master map:

    grep -vE '^[[:space:]]*(#|$)' /etc/auto.master

    Some systems also load additional maps from:

    ls -l /etc/auto.master.d/

    Search the local automount configuration for Lustre entries:

    grep -Rni lustre /etc/auto.master /etc/auto.master.d /etc/auto.* 2>/dev/null

    If systemd automount units are used instead, list them with:

    systemctl list-units --type=automount

    Also inspect generated or installed mount units – In this example, we have a daemon named “lustre.mount” to mount the Lustre filesystem:

    systemctl list-units --type=mount | grep -i lustre

    Keep in mind that centralized autofs maps may come from LDAP, NIS, or SSSD and therefore may not appear in a local auto.* file. Use the following command to see the maps currently recognized by autofs:

    automount -m

    These checks help determine whether the missing mount is caused by an invalid Lustre configuration, an automount map problem, or an automounter service that is not running.

    If the mount is missing, inspect recent kernel messages:

    dmesg -T | tail -100

    On systems using systemd:

    journalctl -k --since "30 minutes ago" | grep -i lustre

    These checks help distinguish a filesystem problem from a simple client mount failure.

    Check Storage and Metadata Capacity with lfs df

    The regular Linux df command shows the total capacity of a mounted filesystem, but it does not provide the complete Lustre target view.

    Use the following command instead:

    lfs df -h /lustre

    The output usually includes:

    • Metadata Targets, identified as MDTs;
    • Object Storage Targets, identified as OSTs;
    • Total, used, and available capacity;
    • Utilization percentage for each target.

    Look for OSTs that are significantly fuller than the others. A Lustre filesystem may have plenty of total free space while one OST is almost full. Files striped across that specific target can still receive No space left on device errors.

    Check inode and metadata usage separately:

    lfs df -ih /lustre

    This check is particularly important in environments that create millions of small files. The OSTs may still have terabytes available while metadata resources or inodes are approaching their limits.

    For a quick filtered view of OST utilization:

    lfs df -h /lustre | grep OST

    Important: Do not rely only on the summary line. Individual target utilization usually provides more useful troubleshooting information.

    Discover the Filesystem Name

    Several Lustre commands require the filesystem name. Retrieve it from the mounted path instead of guessing:

    lfs getname /lustre

    The result may include the filesystem name and an instance identifier.

    You can also display Lustre mount points known to the client:

    lctl list_param 'llite.*'

    Note: This is helpful only when the same node mounts multiple Lustre filesystems. Matching the mount point to the correct llite instance prevents you from inspecting parameters from the wrong filesystem.

    Understand File Placement with lfs getstripe

    Lustre stores file data (the data itselt, not medatada) on one or more OSTs. The layout of a file can be examined with the lfs getstripe:

    lfs getstripe /lustre/file.dat

    The output may contain:

    • Stripe count;
    • Stripe size;
    • Starting OST;
    • OST indexes;
    • Object identifiers;
    • Layout information.

    For basic troubleshooting, focus on the stripe count and the OST indexes holding the file.

    Display only the stripe count:

    lfs getstripe -c /lustre/file.dat

    Display the stripe size:

    lfs getstripe -S /lustre/file.dat

    Display the starting OST index:

    lfs getstripe -i /lustre/file.dat

    Directories can define default layouts for newly created files. Inspect a directory with:

    lfs getstripe -d /lustre/project

    Suppose users report that large files are writing slowly and every file is placed on only one OST. The parent directory may have a stripe count of one configured as its default.

    Checking the directory layout can reveal that configuration without requiring advanced performance tools.

    Create a Simple Test Layout with lfs setstripe

    The lfs setstripe command controls how new files are distributed across OSTs.

    Create a test directory:

    mkdir /lustre/stripe-test

    Set a four-OST (-c 4) layout with a 1 MiB stripe size:

    lfs setstripe -c 4 -S 1M /lustre/stripe-test

    Verify the directory default:

    lfs getstripe -d /lustre/stripe-test

    Create a small test file using dd:

    dd if=/dev/zero \
       of=/lustre/stripe-test/testfile \
       bs=1M count=128 status=progress

    Inspect its final layout:

    lfs getstripe /lustre/stripe-test/testfile

    So, as we can see, a directory layout normally applies to files created after the layout is configured. It does not automatically redistribute existing files.

    Caution: Do not increase stripe counts across production directories without understanding the workload. More stripes are not automatically better. Small files generally do not benefit from being spread across many OSTs, and unnecessary striping can create additional overhead.

    For a beginning administrator, lfs setstripe is most useful for controlled testing and for understanding existing project policies.

    List Available OSTs

    To display the OSTs visible through a mounted Lustre filesystem, run:

    lfs osts /lustre

    This provides a quick inventory of Object Storage Targets (OSTs). In the example above, our Lustre filesystem uses four OSTs.

    Compare the result with your site documentation or a known healthy client. If an expected OST is missing, inspect:

    lctl dl

    Also review the kernel log for messages involving the missing target – Suppose the missing OST is OST0007, the command would be:

    journalctl -k | grep -i OST0007

    Again, replace OST0007 with the target name reported in your environment.

    Note: A target missing from one client may indicate a local connection problem. The same target missing across many clients is more likely to indicate a server, network, or recovery issue.

    Inspect OST Pools

    Some Lustre environments organize OSTs into pools. Pools may represent different storage hardware, performance levels, projects, or operational policies.

    List the pools associated with a filesystem:

    lfs pool_list filesystem_name

    List the OSTs belonging to one pool:

    lfs pool_list filesystem_name.pool_name

    Check whether a directory uses a pool:

    lfs getstripe -p /lustre/project

    A project directory associated with a small or nearly full pool may experience file creation failures even when the entire filesystem has plenty of free space.

    Pools are therefore worth checking when one directory behaves differently from other locations on the same Lustre mount.

    Find Files Located on a Specific OST

    When an OST is almost full or reporting errors, use lfs find to identify files associated with it:

    lfs find /lustre --ost 3

    The number represents the OST index.

    To locate only large files on that target, we can use the following command (In this case, for instance, we’re searching for files higher than 10GB):

    lfs find /lustre --ost 3 --size +10G

    You can also search a more specific project directory:

    lfs find /lustre/projects/weather-model --ost 3

    Caution: Avoid immediately scanning the entire filesystem root. Large namespace searches can generate considerable metadata activity.

    Begin with the most likely user, project, or application directory. Perform broader searches during a maintenance window or after coordinating with the storage team.

    This command is useful for investigation, but moving data away from an OST should follow the procedures and policies defined for the cluster.

    Inspect Local Lustre Devices with lctl dl

    The lctl command provides access to Lustre configuration and runtime information.

    A useful, read-only starting point is:

    lctl dl

    On a client, the output can include:

    • Metadata clients;
    • Object storage clients;
    • Logical Lustre devices;
    • Filesystem instances;
    • Device states.

    Healthy connected devices commonly appear in an UP state.

    Look for devices that are inactive, disconnected, or unexpectedly missing. If users report input/output errors and one object storage client is not healthy, the corresponding OST becomes an obvious investigation target.

    Run the same command on another compute node:

    ssh lclient2 lctl dl

    If only one node shows a problem, restart or remount decisions can focus on that client. If several nodes show the same device state, avoid treating it as an isolated client problem.

    Read Runtime Information with lctl get_param

    Lustre exposes many runtime values through parameters. The standard command for reading them is:

    lctl get_param

    Because parameter names vary according to filesystem and target names, discover them first:

    lctl list_param -R '*' | less

    Search for a specific subject, for example, “health”, “import”, or “connect”:

    lctl list_param | grep -E 'health|import|connect'

    Retrieve a parameter with:

    lctl get_param parameter.path

    Change the “parameter.path” to the desired parameter. For example:

    lctl get_param osc.lustrefs-OST0002-osc-ffff9856d60d2000.connect_flags

    On Lustre servers, a useful basic check is:

    lctl get_param health_check

    On clients, inspect available OSC and MDC import parameters:

    lctl list_param 'osc.*.import'
    lctl list_param 'mdc.*.import'

    Then retrieve them:

    lctl get_param 'osc.*.import'
    lctl get_param 'mdc.*.import'

    The output can be verbose, but connection states, recovery activity, disconnections, and repeated attempts to reconnect are valuable during an incident.

    Note: Use lctl get_param freely for observation, but treat lctl set_param differently. Changing runtime parameters without understanding their scope can affect client behavior or filesystem operations.

    Test LNet Connectivity with lctl ping

    Lustre communication uses LNet. To test basic reachability to a Lustre Network Identifier (NID), run:

    lctl ping 10.20.30.40@tcp

    An InfiniBand environment may use a NID such as:

    lctl ping 10.20.30.40@o2ib

    Always use the exact NID configured in your cluster.

    A successful lctl ping confirms basic LNet communication to that NID. It does not prove that every Lustre service on the remote host is healthy, but it confirms that the LNet path is responding.

    A failed test directs the investigation toward:

    • Network interface state;
    • LNet configuration;
    • Incorrect NIDs;
    • Routing problems;
    • Firewall rules;
    • Remote node availability;
    • InfiniBand or Ethernet connectivity.

    Where available, display local LNet configuration with:

    lnetctl net show

    Inspect known peers with:

    lnetctl peer show | less

    These read-only commands help confirm which networks and peers are visible from the node.

    Monitor Kernel Messages During an Incident

    Lustre reports many connection, recovery, timeout, and target errors through the kernel log.

    Follow new messages in real time:

    journalctl -kf

    Filter for common Lustre components:

    journalctl -kf | grep -Ei 'lustre|lnet|osc|mdc'

    Another option is:

    dmesg -Tw

    Watch for:

    • Connection timeouts;
    • Client evictions;
    • Recovery messages;
    • Unavailable MDTs or OSTs;
    • Repeated reconnect attempts;
    • LNet errors;
    • Input/output failures.

    Record the timestamp, hostname, target name, and affected operation. A report stating that OST0003 repeatedly disconnected at a specific time is far more useful than saying that the filesystem was slow.

    A Practical First-Level Checklist

    When a user reports that Lustre is unavailable or behaving incorrectly, start with:

    findmnt -t lustre
    lfs df -h /lustre
    lfs df -i /lustre
    lfs getname /lustre
    lctl dl
    journalctl -k --since "15 minutes ago" | grep -Ei 'lustre|lnet'

    For a problem affecting one file:

    lfs getstripe /lustre/path/to/file

    For a suspected OST issue:

    lfs osts /lustre
    lfs find /lustre/relevant-directory --ost TARGET_INDEX

    For a suspected network path:

    lctl ping TARGET_NID

    To Wrap This Up

    Lustre becomes easier to manage when it is viewed as a collection of observable layers:

    • mount state;
    • metadata capacity;
    • OST capacity;
    • file layout;
    • local client devices, and;
    • LNet communication.

    These Lustre filesystem commands provide enough visibility to identify common problems, collect meaningful evidence, and avoid making an incident worse while searching for the proper fix.

    With regular use, commands such as lfs, lctl, lnetctl, findmnt, and journalctl become part of a predictable troubleshooting routine. They may not resolve every Lustre failure, but they help an administrator understand what is happening before more advanced intervention is required.

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Previous ArticleLinux ss, lsof, and fuser Commands: A Practical Guide
    Danilo

    Infrastructure Engineer with experience in Virtualization, Linux, Windows Server and learning automation using Python. DPC Virtual Tips was created to share practical tutorials, lab experiences and troubleshooting guides focused on enterprise infrastructure technologies.

    Related Posts

    Essential Slurm Administration Commands Every HPC Administrator Should Know

    July 15, 2026

    Getting Started with Lustre File System

    July 13, 2026

    View Information About Slurm Nodes and Partitions

    February 3, 2026
    Leave A Reply Cancel Reply

    Search
    Categories
    • HPC (8)
    • Operating Systems (81)
    • PowerFlex (22)
    • Virtualization (129)
    Read More
    HPC

    Lustre Filesystem Commands: A Practical Admin Guide

    By DaniloAugust 5, 20260
    Operating Systems

    Linux ss, lsof, and fuser Commands: A Practical Guide

    By DaniloAugust 4, 20260
    Operating Systems

    Linux Commands to Investigate High Disk Partition Usage

    By DaniloJuly 20, 20260
    HPC

    Essential Slurm Administration Commands Every HPC Administrator Should Know

    By DaniloJuly 15, 20260
    Operating Systems

    How to Install, Configure, and Use tmux on Linux

    By DaniloJuly 14, 20260
    Latest Posts

    Lustre Filesystem Commands: A Practical Admin Guide

    August 5, 2026

    Linux ss, lsof, and fuser Commands: A Practical Guide

    August 4, 2026

    Linux Commands to Investigate High Disk Partition Usage

    July 20, 2026
    Images from Gallery
    hpc main commands
    linux commands
    install rock linux
    lustre fs
    shell scripting
    vSAN Trace Files
    Categories
    • HPC
    • Operating Systems
    • PowerFlex
    • Virtualization
    • Home
    • About Us
    • Contact
    • Cookie Policy
    • Comment Policy
    • Privacy Policy
    • Terms of Use
    • Disclaimer
    Copyright © 2026, DPC Virtual Tips. All rights reserved.

    Type above and press Enter to search. Press Esc to cancel.

    We use cookies to ensure your best experience on our website. If you continue using our website, we'll assume you agree to our cookie policy