Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-16623

lod_statfs_and_check() does not skip unusable OSTs

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.16.0
    • Lustre 2.16.0
    • None
    • 3
    • 9223372036854775807

    Description

      The LOV_USES_DEFAULT_STRIPE flag is never set during OST object allocation, so min_stripe_count() does not allow reducing the stripe count set on a file. This can result in the MDS trying to allocate objects on too many OSTs, especially when the space is imbalanced, or OSTs are deactivated by "osp.*.max_create_count=0".

      It also appears that lod_statfs_and_check() is expecting lod_statfs_check() to only return -ENOSPC, so it isn't skipping an OST when it is mounted read-only or when max_create_count=0. It would probably be better to change lod_statfs_and_check() to skip the OST if lod_statfs_check() returns any error, since all of them are reasons to skip an OST.

      Also, it appears that the merged MDT and OST QOS allocation does skip MDTs marked with OS_STATFS_ENOINO.

      Attachments

        Issue Links

          Activity

            People

              adilger Andreas Dilger
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: