Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-15520 OST object projid and quota reset
  3. LU-16265

automatically set projid on objects with projid=0

    XMLWordPrintable

Details

    • Technical task
    • Resolution: Unresolved
    • Minor
    • None
    • None
    • None
    • 9223372036854775807

    Description

      Occasionally it is possible that the projid of an OST object does not get the projid set from the MDS, even though the projid is set correctly on the MDT inode and appears as correct when accessed by "lfs project <file>" since the projid is only fetched from the MDT inode. This may lead to incorrect project quota space accounting for that file (the inode accounting is correct since this only counts MDT inodes).

      It would seem relatively straight forward to have OST object-modifying RPCs with obdo.o_projid != 0 to update OST objects that have projid==0. This would be the same one-shot mechanism to set the projid for OST objects as is done with UID/GID on first write. This depends on the clients consistently setting obdo.o_projid with the bulk write and setattr RPCs, and the OST to check this, but it can be done without interoperability concerns, especially since the o_projid would always relate to the inode and has no relation to the process that is accessing the file.

      While I don't think many existing objects are written after they are first created, I believe we already do atime updates for files once a day, so the projid=0 fix could be combined with that check to avoid adding extra overhead on file access.

      Attachments

        Issue Links

          Activity

            People

              wc-triage WC Triage
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: