# Lustre stripe

## A. Default Lustre Striping settings for the 5th System

The Lustre File System on the 5th system supports file striping, which distributes a single file across multiple OSTs (Object Storage Targets, i.e., physically distributed disks) to reduce bottlenecks and improve I/O performance. Notably, Progressive File Layout (PFL), supported since Lustre 2.10, is applied to the /scratch file system. This feature automatically adjusts the stripe count based on file size without requiring users to configure striping, thereby enhancing I/O performance. The striping settings for the Nurion file system are as follows:

![](https://786944814-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYo7SdeOemdWmRfqMQaK6%2Fuploads%2Fgit-blob-4098c0ddbe30bd28cc0e6102f91fd5a69ab98e41%2Fbasic_settings_for_the_unit.png?alt=media)

## B. Lustre Striping Concept

![](https://786944814-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYo7SdeOemdWmRfqMQaK6%2Fuploads%2Fgit-blob-88c43e8e7e8370c95d8e1ca351e8dd07579b9d97%2FByuiN89DGA7hjDU.png?alt=media)

Lustre maximizes I/O performance for large files by dividing data across OSTs, with the maximum effective degree of parallelism being equal to the number of OSTs. As shown in the diagram, even a single file is stored in parallel on OSTs using the Lustre Striping feature.

## C. Stripe Settings and Verification

```shell-session
$ lfs setstripe [--stripe-size|-s size] [--stripe-count|-c count] filename|dirname
```

* A command to apply striping settings to a file or directory. All files created in a directory where this command has been applied, or files generated by this command, will have the striping settings applied.
  * \--stripe-size\
    \- Set the size of data to be stored on each OST\
    \- Once the specified size is stored, the data is saved to the next OST\
    \- The default size is 1MB, and if stripe\_size is set to 0, the default value is used\
    \- stripe\_size must be set as a multiple of 64KB and should be less than 4GB
  * \--stripe-count\
    \- Set the number of OSTs to be used for striping\
    \- The default value is 1, and if stripe\_count is set to 0, the default value is used.\
    \- If stripe\_count is set to -1, all available OSTs will be used.

```shell-session
$ lfs getstripe filename|dirname
```

* The command to check the values of the striping settings that have been applied to a file or directory.

## D. Recommended Guidelines and Tips

* If setstripe is specified for the directory where the model’s result files will be saved within the job script, all subsequently created subdirectories and files will inherit those settings.
* Setting --stripe-count to 4 for files larger than 1GB typically improves performance. Testing is recommended when using larger values
* \--stripe-size is only effective for files larger than several terabytes, so using the default value is generally sufficient

{% hint style="info" %}
Last updated on November 08, 2024.
{% endhint %}
