IO500 / io500

IO500 Storage Benchmark source code
MIT License
97 stars 31 forks source link

MDTest hard on Lustre #15

Closed JulianKunkel closed 2 years ago

JulianKunkel commented 3 years ago

This issue is to document and discuss the known problem of running MDtest hard on Lustre which may abort due to a "No space left on device" error. The reason is that by default, with LDiskFS: "We use the ext3 hashed directory code, which has a theoretical limit of about 15 million files per directory". With a deployed DNE2 or a specific mount option, this limit can be avoided.

adilger commented 3 years ago

There are two mechanisms to increase the ~15M files-per-directory limit for Lustre, both of which are orthogonal and can be used at the same time:

adilger commented 3 years ago

Of course, it is also possible that the MDT(s) may actually run out of space, if the creation rate is high, and there is not enough free inodes on the MDTs, or if Data-on-MDT is not used for the small files and there are not enough inodes on the OSTs. The free and used inodes can be checked by running "lfs df -i" on any client.

wszoecs commented 3 years ago

The issue with 'mdt-hard' (shared dir file-create) - is abs. not in 'large_dir' - but the way how ldiskfs does directories: It uses HASHED buckets - to place the files. And due to the hilarious naming of mdtest - your files all end in 1-2 maybe 4 buckets - and fills thos up. So - even if you still have several millions of entries available - you're running out of available entries in a few hash-buckets. my experiments say - per MDS - at around 8 mill - you're DONE - and always/reliably run out of space in this test.