Test Descriptions: Difference between revisions

From Lustre Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(28 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/acceptance-small.sh acceptance-small.sh] script is a wrapper around auster that runs the test group '[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/test-groups/regression regression]' unless a test is specified.
== Lustre Test Framework ==


== Lustre Regression and Feature Tests ==
{| class="wikitable sortable" cellpadding="15"
{| class="wikitable" cellpadding="15"
! style="text-align:left;" | Name
! Description
|-
|data-sort-value="acceptance-small"| [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/acceptance-small.sh acceptance-small.sh (acc-sm)]
|The acceptance-small.sh script is a wrapper around auster that runs the test group '[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/test-groups/regression regression]' unless tests are specified on the command line.
|-
|data-sort-value="auster"|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/auster auster]
|auster is used to run the Lustre tests. It can be used to run groups of tests, individual tests, or sub-tests. Provides setup and cleanup.
|-
|data-sort-value="functions"|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/functions.sh functions.sh]
|Provides functions for the run_*.sh tests, such as run_dd.sh or run_dbench.sh
|-
|data-sort-value="test-framework"|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/test-framework.sh test-framework.sh]
|Provides the fundamental functions needed by tests to create, setup, verify, start, stop, and reformat a Lustre filesystem.
|}
 
See the [[TestingLustreCode]] page for details on how to run these test scripts,
and [[Testing HOWTO]] for a worked multi-node setup example.
 
Test suites are grouped into ''test groups'' under
[http://git.whamcloud.com/fs/lustre-release.git/tree/HEAD:/lustre/tests/test-groups lustre/tests/test-groups].
The <code>regression</code> group defines the suites run against every patch; a
suite's presence in that group is the practical definition of "actively tested".
See [[Test Groups for Patch Testing]] for more detail.
 
== Lustre Unit, Feature, and Regression Tests ==
 
{| class="wikitable"
|+Status Key
|-
|<span style="color:green">Active</span>
|Test suite is present in the source tree and is run in AutoTest or has been committed to recently. Suites listed in <code>lustre/tests/test-groups/regression</code> are run for every patch.
|-
|<span style="color:blue">Inactive</span>
|Test suite is still present in the source tree but is not part of a routine test group and has not been committed to recently.
|-
|<span style="color:red">Removed</span>
|Test suite has been deleted from the source tree or replaced by another suite. Retained here so that references in older bug reports, patches, and Maloo results remain interpretable.
|}
 
'''Note:''' Status reflects the state of the Lustre master branch. To confirm what
exists for a particular release, check <code>lustre/tests/</code> in that branch.
 
{| class="wikitable sortable" cellpadding="15"
! style="text-align:left;" | Name
! style="text-align:left;" | Name
!Status
!Status
!Test Description
!Test Description
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/conf-sanity.sh conf-sanity]
|data-sort-value="conf-sanity" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/conf-sanity.sh conf-sanity]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|A set of unit tests that verify the configuration tools, and runs Lustre with multiple different setups to ensure correct operation in unusual system configurations.  
|A set of unit tests that verify the configuration tools, and runs Lustre with multiple different setups to ensure correct operation in unusual system configurations.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/dne_sanity.sh dne_sanity]
|data-sort-value="dne-sanity" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/dne_sanity.sh dne_sanity]
|<span style="color:red">Deprecated</span>
|<span style="color:blue">Inactive</span>
|Run sanity parallel on different directories at the same time.
|Run sanity parallel on different directories at the same time.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/insanity.sh insanity]
|data-sort-value="dom-performance" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/dom-performance.sh dom-performance]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|A set of tests that verify the multiple concurrent failure conditions.  
|Performance comparison for the Data-on-MDT feature. Runs small-file workloads against DoM and non-DoM layouts so the two can be compared directly.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/large-scale.sh large-scale]
|data-sort-value="ha" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/ha.sh ha]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Large-scale tests that verify version-based recovery features.  
|Long-running HA/failover harness. Drives configurable client workloads while repeatedly failing over server nodes, and reports any application-visible errors. Used for extended stability runs rather than per-patch testing.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/lfsck.sh lfsck]
|data-sort-value="insanity" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/insanity.sh insanity]
|<span style="color:red">Deprecated</span>
|<span style="color:green">Active</span>
|Tests e2fsck and lfsck to detect and fix filesystem corruption. Use sanity-lfsck instead.  
|A set of tests that verify the multiple concurrent failure conditions.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/lnet-selftest.sh lnet-selftest]
|data-sort-value="large-scale" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/large-scale.sh large-scale]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Runs LNET self test on hosts defined in test configuration.
|Large-scale tests that verify version-based recovery features.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/lustre-rsync-test.sh lustre-rsync-test]
|data-sort-value="large-lun" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/large-lun.sh large-lun]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Verifies the lustre_rsync (replication) feature.
|Large LUN test
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/metadata-updates.sh metadata-updates]
|data-sort-value="lfsck" | lfsck
|<span style="color:red">Removed</span>
|Replaced by sanity-lfsck. No longer present in the source tree.
|-
|data-sort-value="lfsck-performance" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/lfsck-performance.sh lfsck-performance]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
| Tests that metadata updates are properly completed when multiple clients create/delete files and modify the attributes of files.
|lfsck performance test for the cases: lfsck with load, lfsck during create, backup/restore, simulate upgrade from 1.8.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/mmp.sh mmp]
|data-sort-value="liblustre" | liblustre
|<span style="color:red">Removed</span>
|Ran tests linked against the liblustre client library. The liblustre userspace client was removed from Lustre, and this suite went with it.
|-
|data-sort-value="lockorder" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/lockorder.sh lockorder]
|<span style="color:green">Active</span>
|Exercises lock ordering across two mountpoints using createmany/statmany/unlinkmany to surface lock inversion and deadlock conditions.
|-
|data-sort-value="lustre-rsync-test" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/lustre-rsync-test.sh lustre-rsync-test]
|<span style="color:green">Active</span>
|Verifies the lustre_rsync (replication) feature.
|-
|data-sort-value="metadata-updates" | metadata-updates
|<span style="color:red">Removed</span>
|Tested that metadata updates were properly completed when multiple clients create/delete files and modify file attributes. Removed in Lustre 2.16.0 by [https://jira.whamcloud.com/browse/LU-16250 LU-16250]; multi-client metadata coverage now lives in sanityn and racer.
|-
|data-sort-value="mmp" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/mmp.sh mmp]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Tests for multiple mount protection (MMP) feature.
|Tests for multiple mount protection (MMP) feature.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/performance-sanity.sh performance-sanity]
|data-sort-value="ost-pools" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/ost-pools.sh ost-pools]
|<span style="color:green">Active</span>
|Tests that exercises the OST pools feature.
|-
|data-sort-value="performance-sanity" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/performance-sanity.sh performance-sanity]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Performance mdsrate tests (small file create/open/delete, large file create/open/delete, lookup rate 10M file dir, lookup rate 10M file 10 dir, getattr small file, and getattr large files).  
|Performance mdsrate tests (small file create/open/delete, large file create/open/delete, lookup rate 10M file dir, lookup rate 10M file 10 dir, getattr small file, and getattr large files).
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/ost-pools.sh ost-pools]
|data-sort-value="parallel-scale" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/parallel-scale.sh parallel-scale]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|A tests that exercises the OST pools feature.
|Runs functional tests (connectathon, cascading_rw, write_disjoint, write_append_truncate, parallel_grouplock, statahead), performance tests (IOR, compilebench and metabench), and a stress test (simul).
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/parallel-scale.sh parallel-scale]
|data-sort-value="parallel-scale-cifs" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/parallel-scale-cifs.sh parallel-scale-cifs]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Runs functional tests (connectathon, cascading_rw, write_disjoint, write_append_truncate, parallel_grouplock, statahead), performance tests (IOR, compilebench and metabench), and a stress test (simul).  
|Tests Lustre exported via Samba and runs concurrent load compilebench, dbench, fsx, and iozone on Samba clients. The test assumes that Samba server and clients have necessary packages installed.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/parallel-scale-nfs.sh parallel-scale-nfs]
|data-sort-value="parallel-scale-nfs" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/parallel-scale-nfs.sh parallel-scale-nfs]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
| Called by parallel-scale-nfsv3.sh and parallel-scale-nfsv4.sh with a version specified.
| Called by parallel-scale-nfsv3.sh and parallel-scale-nfsv4.sh with a version specified.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/parallel-scale-nfsv3.sh parallel-scale-nfsv3]
|data-sort-value="parallel-scale-nfsv3" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/parallel-scale-nfsv3.sh parallel-scale-nfsv3]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|
|Provide setup nfs within auster framework
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/parallel-scale-nfsv4.sh parallel-scale-nfsv4]
|data-sort-value="parallel-scale-nfsv4" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/parallel-scale-nfsv4.sh parallel-scale-nfsv4]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|
|Provide setup nfs within auster framework
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/posix.sh posix]
|data-sort-value="pjdfstest" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/pjdfstest.sh pjdfstest]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|
|POSIX compliance testing using the pjdfstest suite. Sets up a loopback ext4 filesystem, runs pjdfstest against both ext4 and Lustre, and compares the two reports so that failures attributable to the Linux VFS can be separated from Lustre-specific failures. Added to review and full testing by [https://jira.whamcloud.com/browse/LU-12662 LU-12662]. Requires the pjdfstest binary (default <code>/bin/pjdfstest</code>, test directory <code>/usr/share/pjdfstest</code>). See [[POSIX Compliance Testing]].
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/racer.sh racer]
|data-sort-value="posix" | posix
|<span style="color:red">Removed</span>
|Former POSIX compliance wrapper built on the TET/VSX (LSB-VSX) suite. Replaced by pjdfstest.
|-
|data-sort-value="racer" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/racer.sh racer]
|<span style="color:green">Active</span>
|Tests for filesystem race conditions by concurrently creating, moving, deleting, etc. a set of files.
|-
|data-sort-value="recovery-double-scale" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/recovery-double-scale.sh recovery-double-scale]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Tests for filesystem race conditions by concurrently creating, moving, deleting, etc. a set of files.  
|Failover test for all pair-wise combinations of node failures.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/recovery-double-scale.sh recovery-double-scale]
|data-sort-value="recovery-mds-scale" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/recovery-mds-scale.sh recovery-mds-scale]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Failover test for all pair-wise combinations of node failures.  
|The server failover test: for a duration of 24 hours, repeatedly fail over a random facet (MDS or OST) at 10 minute intervals and verify that no application errors occur.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/recovery-mds-scale.sh recovery-mds-scale]
|data-sort-value="recovery-oss-scale" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/recovery-oss-scale.sh recovery-oss-scale]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|The server failover test: for a duration of 24 hours, repeatedly fail over a random facet (MDS or OST) at 10 minute intervals and verify that no application errors occur.  
|For a duration of 24 hours, repeatedly fail over a random OSS at 10 minute intervals while client load runs, and verify that no application errors occur.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/recovery-random-scale.sh recovery-random-scale]
|data-sort-value="recovery-random-scale" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/recovery-random-scale.sh recovery-random-scale]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Verifies client failure not affecting other clients.  
|Verifies client failure not affecting other clients.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/recovery-small.sh recovery-small]
|data-sort-value="recovery-small" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/recovery-small.sh recovery-small]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|A set of unit tests that verify RPC replay after communications failure.  
|A set of unit tests that verify RPC replay after communications failure.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/replay-dual.sh replay-dual]
|data-sort-value="replay-dual" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/replay-dual.sh replay-dual]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|A set of unit tests that verify the recovery from two clients after server failure.  
|A set of unit tests that verify the recovery from two clients after server failure.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/replay-ost-single.sh replay-ost-single]
|data-sort-value="replay-ost-single" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/replay-ost-single.sh replay-ost-single]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
| A set of unit tests that verify recovery after OST failure.  
| A set of unit tests that verify recovery after OST failure.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/replay-single.sh replay-single]
|data-sort-value="replay-single" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/replay-single.sh replay-single]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
| A set of unit tests that verify recovery after MDS failure.  
| A set of unit tests that verify recovery after MDS failure.
|-
|data-sort-value="replay-single-lmv" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/replay-single-lmv.sh replay-single-lmv]
|<span style="color:blue">Inactive</span>
|Variant of replay-single that exercises MDS recovery through the LMV layer with multiple MDTs configured.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/replay-vbr.sh replay-vbr]
|data-sort-value="replay-vbr" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/replay-vbr.sh replay-vbr]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Verifies version-based recovery feature.  
|Verifies version-based recovery feature.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/runtests runtests]
|data-sort-value="runtests" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/runtests runtests]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Simple basic regression test that verifies data persistence across write, unmount, and remount. This is one of the few tests that verifies data integrity across a full filesystem shutdown and remount, unlike many tests which at most only verify the existence/size of files.  
|Simple basic regression test that verifies data persistence across write, unmount, and remount. This is one of the few tests that verifies data integrity across a full filesystem shutdown and remount, unlike many tests which at most only verify the existence/size of files.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity.sh sanity]
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity.sh sanity]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|A set of regression tests that verify operation under normal operating conditions. This tests a large number of unusual operations that have previously caused functional or data correctness issues with Lustre. Some of the tests are Lustre specific, and hook into the Lustre fault injection framework using the "lctl set_param fail_loc=X" command to activate triggers in the code to simulate unusual operating conditions that would otherwise be difficult or impossible to simulate.  
|A set of regression tests that verify operation under normal operating conditions. This tests a large number of unusual operations that have previously caused functional or data correctness issues with Lustre. Some of the tests are Lustre specific, and hook into the Lustre fault injection framework using the "lctl set_param fail_loc=X" command to activate triggers in the code to simulate unusual operating conditions that would otherwise be difficult or impossible to simulate.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanityn.sh sanityn]
|data-sort-value="sanityn" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanityn.sh sanityn]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Tests that verify operations from two clients under normal operating conditions. This is done by mounting the same filesystem twice on a single client, in order to allow a single script/program to execute and verify filesystem operations on multiple "clients" without having to be a distributed program itself.
|Tests that verify operations from two clients under normal operating conditions. This is done by mounting the same filesystem twice on a single client, in order to allow a single script/program to execute and verify filesystem operations on multiple "clients" without having to be a distributed program itself.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-benchmark.sh sanity-benchmark]
|data-sort-value="sanity-benchmark" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-benchmark.sh sanity-benchmark]
|<span style="color:green">Active</span>
|Test basic functionality of the filesystem using simple benchmarks. Runs dbench, bonnie++, iozone, fsx, and pios.
|-
|data-sort-value="sanity-compr" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-compr.sh sanity-compr]
|<span style="color:green">Active</span>
|Sanity tests for the compression feature, covering compressed component layouts, read/write correctness against compressed extents, and interaction with PFL layouts.
|-
|data-sort-value="sanity-dom" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-dom.sh sanity-dom]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Test basic functionality of the filesystem using simple benchmarks.
|Sanity test the Data on MDT feature.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-gss.sh sanity-gss]
|data-sort-value="sanity-ec" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-ec.sh sanity-ec]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Verifies GSSAPI features.
|Sanity tests for erasure coding, covering parity component layouts and verification of the parity flag on components.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-hsm.sh sanity-hsm]
|data-sort-value="sanity-flr" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-flr.sh sanity-flr]
|<span style="color:green">Active</span>
|Sanity test the File Level Redundancy feature.
|-
|data-sort-value="sanity-gss" | sanity-gss
|<span style="color:red">Removed</span>
|Verified GSSAPI features using the gssnull security flavor. Removed in Lustre 2.16.0 by [https://jira.whamcloud.com/browse/LU-16262 LU-16262]; Kerberos/GSS coverage is provided by sanity-krb5 and shared-secret key coverage by sanity-sec.
|-
|data-sort-value="sanity-hsm" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-hsm.sh sanity-hsm]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Sanity test for HSM feature.
|Sanity test for HSM feature.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-krb5.sh sanity-krb5]
|data-sort-value="sanity-krb5" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-krb5.sh sanity-krb5]
|<span style="color:red">Deprecated</span>
|<span style="color:green">Active</span>
|Verifies Kerberos features.
|Verifies Kerberos features.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-lfsck.sh sanity-lfsck]
|data-sort-value="sanity-lfsck" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-lfsck.sh sanity-lfsck]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Sanity test for lfsck
|Sanity test for lfsck
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-quota.sh sanity-quota]
|data-sort-value="sanity-lnet" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-lnet.sh sanity-lnet]
|<span style="color:green">Active</span>
|Sanity test for lnet
|-
|data-sort-value="sanity-lsnapshot" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-lsnapshot.sh sanity-lsnapshot]
|<span style="color:green">Active</span>
|Sanity tests for Lustre snapshots (lctl snapshot_create/mount/umount/destroy) on ZFS backends. Part of the regression test group.
|-
|data-sort-value="sanity-pcc" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-pcc.sh sanity-pcc]
|<span style="color:green">Active</span>
|A set of tests verifying basic functionality of the Persistent Client Cache feature.
|-
|data-sort-value="sanity-pfl" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-pfl.sh sanity-pfl]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|A set of tests that verify filesystem quotas.  
|Sanity tests for the Progressive File Layout feature.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-scrub.sh sanity-scrub]
|data-sort-value="sanity-quota" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-quota.sh sanity-quota]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|
|A set of tests that verify filesystem quotas.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-sec.sh sanity-sec]
|data-sort-value="sanity-scrub" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-scrub.sh sanity-scrub]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|Verifies Lustre identity features. , including UID/GID mapping
|Verifies OI scrub functionality.
|-
|data-sort-value="sanity-selinux" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-selinux.sh sanity-selinux]
|<span style="color:green">Active</span>
|Verifies SELinux support on Lustre clients, including security label storage and retrieval and enforcement of SELinux policy on Lustre files. Requires an SELinux policy permitting transitions from <code>unconfined_t</code> to <code>user_t</code> and <code>guest_t</code> for some tests.
|-
|data-sort-value="sanity-sec" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sanity-sec.sh sanity-sec]
|<span style="color:green">Active</span>
|Verifies Lustre security and identity features, including nodemaps, UID/GID mapping, root squash, filesets, shared secret key (SSK) flavors, and client-side encryption.
|-
|data-sort-value="scrub-performance" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/scrub-performance.sh scrub-performance]
|<span style="color:green">Active</span>
|Test OI scrub performance.
|}
|}


== Benchmark Scripts ==
== Benchmark Scripts ==
{| class="wikitable" cellpadding="15"
{| class="wikitable sortable" cellpadding="15"
! style="text-align:left;" | Name
! style="text-align:left;" | Name
!Status
!Status
!Script Description
!Script Description
|-
|-
|bonnie
|data-sort-value="lnet-selftest" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/lnet-selftest.sh lnet-selftest]
|
|<span style="color:green">Active</span>
|Bonnie++ benchmark for creation, reading, and deleting many small files.
|LNET self-test is a kernel module that runs over LNET and the Lustre network drivers (LNDs). It is designed to test the connection ability of the Lustre network, run regression tests of the Lustre network, and test performance of the Lustre network.
|-
|-
|dbench
|data-sort-value="mds-survey" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/mds-survey.sh mds-survey]
|
|<span style="color:green">Active</span>
|Dbench benchmark for simulating N clients to produce the filesystem load.
|Wrapper around the <code>mds-survey</code> tool, which characterizes metadata performance of an MDT by driving the echo client against the MDD layer, independent of the network and client stack. Skipped if the <code>mds-survey</code> binary is not installed.
|-
|-
|iozone
|data-sort-value="obdfilter-survey" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/obdfilter-survey.sh obdfilter-survey]
|
|Iozone benchmark for generating and measuring a variety of file operations.
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/obdfilter-survey.sh obdfilter-survey]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|This survey script does sequential I/O with varying numbers of threads and objects (files) by using lctl to drive the echo_client connected to local or remote obdfilter instances, or remote obdecho instances. It can be used to characterize the performance of the following Lustre components.
|This survey script does sequential I/O with varying numbers of threads and objects (files) by using lctl to drive the echo_client connected to local or remote obdfilter instances, or remote obdecho instances. It can be used to characterize the performance of the following Lustre components.
|-
|-
|[http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sgpdd-survey.sh sgpdd-survey]
|data-sort-value="sgpdd-survey" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/sgpdd-survey.sh sgpdd-survey]
|<span style="color:green">Active</span>
|<span style="color:green">Active</span>
|This survey may be used to characterize the performance of a SCSI device. It simulates an OST serving multiple stripe files.  The data gathered by it can help set expectations for the performance of a Lustre OST exporting the device.
|This survey may be used to characterize the performance of a SCSI device. It simulates an OST serving multiple stripe files.  The data gathered by it can help set expectations for the performance of a Lustre OST exporting the device.
|}
|}


== Auxiliary Test ==  
== Auxiliary Tests and Benchmarks Tools ==
{| class="wikitable" cellpadding="15"
{| class="wikitable sortable" cellpadding="15"
! style="text-align:left;" | Name
! style="text-align:left;" | Name
!Status
!Script Description
!Script Description
|-
|-
|fsx
|data-sort-value="bonnie" | [http://www.coker.com.au/bonnie++/ bonnie++]
|
|Bonnie++ benchmark for creation, reading, and deleting many small files.
|The file system exerciser was developed outside of Lustre and is intended to stress test unusual IO and file operations. It does buffered and mmap reads and writes with random size and offset, truncate, open, close on a file. It verifies data integrity after each step. A lustre-developed extension allows fsx to run against multiple mountpoints to verify distributed IO operation correctness. (Source [https://wiki.hpdd.intel.com/display/PUB/Auster HPDD Wiki Auster])
|-
|data-sort-value="dbench" | [https://dbench.samba.org/ dbench]
|Dbench benchmark for simulating N clients to produce the filesystem load.
|-
|data-sort-value="fsx" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/fsx.c fsx]
|The file system exerciser was developed outside of Lustre and is intended to stress test unusual IO and file operations. It does buffered and mmap reads and writes with random size and offset, truncate, open, close on a file. It verifies data integrity after each step. A lustre-developed extension allows fsx to run against multiple mountpoints to verify distributed IO operation correctness. (Source [https://wiki.whamcloud.com/display/PUB/Auster Auster])
|-
|data-sort-value="iozone" | [http://www.iozone.org/ iozone]
|Iozone benchmark for generating and measuring a variety of file operations.
|-
|data-sort-value="oos.sh" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/oos.sh oos.sh]
|Script used to check out-of-space detection in sanity.sh test 64b.
|-
|data-sort-value="oos2.sh" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/oos2.sh oos2.sh]
|Script used to check out-of-space detection with multiple writers in sanityn.sh test 15.
|-
|data-sort-value="ost_oos.sh" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/ost_oos.sh ost_oos.sh]
|Standalone out-of-space check against a single OST. Mounts a local filesystem via llmount.sh, fills the mountpoint past its free space with dd, and verifies that the out-of-space condition is reported correctly. Run directly rather than through auster.
|-
|data-sort-value="run-llog.sh" | [http://git.whamcloud.com/fs/lustre-release.git/blob/HEAD:/lustre/tests/run-llog.sh run-llog.sh]
|Driver for the <code>llog_test</code> kernel module unit tests, which exercise the Lustre log (llog) implementation used for configuration logs and changelogs. Skips if no MGS is available. Run directly rather than through auster.
|-
|data-sort-value="pios" | pios
|pios is a parallel IO simulator. It can simulate shared file per process and file per process IO. Used in sanity-benchmark. pios-1.2-wc1 is available from the build of the toolkit repo for various distributions, e.g. RHEL6 x86_64 https://build.whamcloud.com/job/toolkit/arch=x86_64,distro=el6/lastSuccessfulBuild/artifact/_topdir/RPMS/x86_64/
|}
|}
[[Category:Testing]]

Latest revision as of 08:23, 14 September 2026

Lustre Test Framework

Name Description
acceptance-small.sh (acc-sm) The acceptance-small.sh script is a wrapper around auster that runs the test group 'regression' unless tests are specified on the command line.
auster auster is used to run the Lustre tests. It can be used to run groups of tests, individual tests, or sub-tests. Provides setup and cleanup.
functions.sh Provides functions for the run_*.sh tests, such as run_dd.sh or run_dbench.sh
test-framework.sh Provides the fundamental functions needed by tests to create, setup, verify, start, stop, and reformat a Lustre filesystem.

See the TestingLustreCode page for details on how to run these test scripts, and Testing HOWTO for a worked multi-node setup example.

Test suites are grouped into test groups under lustre/tests/test-groups. The regression group defines the suites run against every patch; a suite's presence in that group is the practical definition of "actively tested". See Test Groups for Patch Testing for more detail.

Lustre Unit, Feature, and Regression Tests

Status Key
Active Test suite is present in the source tree and is run in AutoTest or has been committed to recently. Suites listed in lustre/tests/test-groups/regression are run for every patch.
Inactive Test suite is still present in the source tree but is not part of a routine test group and has not been committed to recently.
Removed Test suite has been deleted from the source tree or replaced by another suite. Retained here so that references in older bug reports, patches, and Maloo results remain interpretable.

Note: Status reflects the state of the Lustre master branch. To confirm what exists for a particular release, check lustre/tests/ in that branch.

Name Status Test Description
conf-sanity Active A set of unit tests that verify the configuration tools, and runs Lustre with multiple different setups to ensure correct operation in unusual system configurations.
dne_sanity Inactive Run sanity parallel on different directories at the same time.
dom-performance Active Performance comparison for the Data-on-MDT feature. Runs small-file workloads against DoM and non-DoM layouts so the two can be compared directly.
ha Active Long-running HA/failover harness. Drives configurable client workloads while repeatedly failing over server nodes, and reports any application-visible errors. Used for extended stability runs rather than per-patch testing.
insanity Active A set of tests that verify the multiple concurrent failure conditions.
large-scale Active Large-scale tests that verify version-based recovery features.
large-lun Active Large LUN test
lfsck Removed Replaced by sanity-lfsck. No longer present in the source tree.
lfsck-performance Active lfsck performance test for the cases: lfsck with load, lfsck during create, backup/restore, simulate upgrade from 1.8.
liblustre Removed Ran tests linked against the liblustre client library. The liblustre userspace client was removed from Lustre, and this suite went with it.
lockorder Active Exercises lock ordering across two mountpoints using createmany/statmany/unlinkmany to surface lock inversion and deadlock conditions.
lustre-rsync-test Active Verifies the lustre_rsync (replication) feature.
metadata-updates Removed Tested that metadata updates were properly completed when multiple clients create/delete files and modify file attributes. Removed in Lustre 2.16.0 by LU-16250; multi-client metadata coverage now lives in sanityn and racer.
mmp Active Tests for multiple mount protection (MMP) feature.
ost-pools Active Tests that exercises the OST pools feature.
performance-sanity Active Performance mdsrate tests (small file create/open/delete, large file create/open/delete, lookup rate 10M file dir, lookup rate 10M file 10 dir, getattr small file, and getattr large files).
parallel-scale Active Runs functional tests (connectathon, cascading_rw, write_disjoint, write_append_truncate, parallel_grouplock, statahead), performance tests (IOR, compilebench and metabench), and a stress test (simul).
parallel-scale-cifs Active Tests Lustre exported via Samba and runs concurrent load compilebench, dbench, fsx, and iozone on Samba clients. The test assumes that Samba server and clients have necessary packages installed.
parallel-scale-nfs Active Called by parallel-scale-nfsv3.sh and parallel-scale-nfsv4.sh with a version specified.
parallel-scale-nfsv3 Active Provide setup nfs within auster framework
parallel-scale-nfsv4 Active Provide setup nfs within auster framework
pjdfstest Active POSIX compliance testing using the pjdfstest suite. Sets up a loopback ext4 filesystem, runs pjdfstest against both ext4 and Lustre, and compares the two reports so that failures attributable to the Linux VFS can be separated from Lustre-specific failures. Added to review and full testing by LU-12662. Requires the pjdfstest binary (default /bin/pjdfstest, test directory /usr/share/pjdfstest). See POSIX Compliance Testing.
posix Removed Former POSIX compliance wrapper built on the TET/VSX (LSB-VSX) suite. Replaced by pjdfstest.
racer Active Tests for filesystem race conditions by concurrently creating, moving, deleting, etc. a set of files.
recovery-double-scale Active Failover test for all pair-wise combinations of node failures.
recovery-mds-scale Active The server failover test: for a duration of 24 hours, repeatedly fail over a random facet (MDS or OST) at 10 minute intervals and verify that no application errors occur.
recovery-oss-scale Active For a duration of 24 hours, repeatedly fail over a random OSS at 10 minute intervals while client load runs, and verify that no application errors occur.
recovery-random-scale Active Verifies client failure not affecting other clients.
recovery-small Active A set of unit tests that verify RPC replay after communications failure.
replay-dual Active A set of unit tests that verify the recovery from two clients after server failure.
replay-ost-single Active A set of unit tests that verify recovery after OST failure.
replay-single Active A set of unit tests that verify recovery after MDS failure.
replay-single-lmv Inactive Variant of replay-single that exercises MDS recovery through the LMV layer with multiple MDTs configured.
replay-vbr Active Verifies version-based recovery feature.
runtests Active Simple basic regression test that verifies data persistence across write, unmount, and remount. This is one of the few tests that verifies data integrity across a full filesystem shutdown and remount, unlike many tests which at most only verify the existence/size of files.
sanity Active A set of regression tests that verify operation under normal operating conditions. This tests a large number of unusual operations that have previously caused functional or data correctness issues with Lustre. Some of the tests are Lustre specific, and hook into the Lustre fault injection framework using the "lctl set_param fail_loc=X" command to activate triggers in the code to simulate unusual operating conditions that would otherwise be difficult or impossible to simulate.
sanityn Active Tests that verify operations from two clients under normal operating conditions. This is done by mounting the same filesystem twice on a single client, in order to allow a single script/program to execute and verify filesystem operations on multiple "clients" without having to be a distributed program itself.
sanity-benchmark Active Test basic functionality of the filesystem using simple benchmarks. Runs dbench, bonnie++, iozone, fsx, and pios.
sanity-compr Active Sanity tests for the compression feature, covering compressed component layouts, read/write correctness against compressed extents, and interaction with PFL layouts.
sanity-dom Active Sanity test the Data on MDT feature.
sanity-ec Active Sanity tests for erasure coding, covering parity component layouts and verification of the parity flag on components.
sanity-flr Active Sanity test the File Level Redundancy feature.
sanity-gss Removed Verified GSSAPI features using the gssnull security flavor. Removed in Lustre 2.16.0 by LU-16262; Kerberos/GSS coverage is provided by sanity-krb5 and shared-secret key coverage by sanity-sec.
sanity-hsm Active Sanity test for HSM feature.
sanity-krb5 Active Verifies Kerberos features.
sanity-lfsck Active Sanity test for lfsck
sanity-lnet Active Sanity test for lnet
sanity-lsnapshot Active Sanity tests for Lustre snapshots (lctl snapshot_create/mount/umount/destroy) on ZFS backends. Part of the regression test group.
sanity-pcc Active A set of tests verifying basic functionality of the Persistent Client Cache feature.
sanity-pfl Active Sanity tests for the Progressive File Layout feature.
sanity-quota Active A set of tests that verify filesystem quotas.
sanity-scrub Active Verifies OI scrub functionality.
sanity-selinux Active Verifies SELinux support on Lustre clients, including security label storage and retrieval and enforcement of SELinux policy on Lustre files. Requires an SELinux policy permitting transitions from unconfined_t to user_t and guest_t for some tests.
sanity-sec Active Verifies Lustre security and identity features, including nodemaps, UID/GID mapping, root squash, filesets, shared secret key (SSK) flavors, and client-side encryption.
scrub-performance Active Test OI scrub performance.

Benchmark Scripts

Name Status Script Description
lnet-selftest Active LNET self-test is a kernel module that runs over LNET and the Lustre network drivers (LNDs). It is designed to test the connection ability of the Lustre network, run regression tests of the Lustre network, and test performance of the Lustre network.
mds-survey Active Wrapper around the mds-survey tool, which characterizes metadata performance of an MDT by driving the echo client against the MDD layer, independent of the network and client stack. Skipped if the mds-survey binary is not installed.
obdfilter-survey Active This survey script does sequential I/O with varying numbers of threads and objects (files) by using lctl to drive the echo_client connected to local or remote obdfilter instances, or remote obdecho instances. It can be used to characterize the performance of the following Lustre components.
sgpdd-survey Active This survey may be used to characterize the performance of a SCSI device. It simulates an OST serving multiple stripe files. The data gathered by it can help set expectations for the performance of a Lustre OST exporting the device.

Auxiliary Tests and Benchmarks Tools

Name Script Description
bonnie++ Bonnie++ benchmark for creation, reading, and deleting many small files.
dbench Dbench benchmark for simulating N clients to produce the filesystem load.
fsx The file system exerciser was developed outside of Lustre and is intended to stress test unusual IO and file operations. It does buffered and mmap reads and writes with random size and offset, truncate, open, close on a file. It verifies data integrity after each step. A lustre-developed extension allows fsx to run against multiple mountpoints to verify distributed IO operation correctness. (Source Auster)
iozone Iozone benchmark for generating and measuring a variety of file operations.
oos.sh Script used to check out-of-space detection in sanity.sh test 64b.
oos2.sh Script used to check out-of-space detection with multiple writers in sanityn.sh test 15.
ost_oos.sh Standalone out-of-space check against a single OST. Mounts a local filesystem via llmount.sh, fills the mountpoint past its free space with dd, and verifies that the out-of-space condition is reported correctly. Run directly rather than through auster.
run-llog.sh Driver for the llog_test kernel module unit tests, which exercise the Lustre log (llog) implementation used for configuration logs and changelogs. Skips if no MGS is available. Run directly rather than through auster.
pios pios is a parallel IO simulator. It can simulate shared file per process and file per process IO. Used in sanity-benchmark. pios-1.2-wc1 is available from the build of the toolkit repo for various distributions, e.g. RHEL6 x86_64 https://build.whamcloud.com/job/toolkit/arch=x86_64,distro=el6/lastSuccessfulBuild/artifact/_topdir/RPMS/x86_64/