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

lfs-setquota.1: document minimum qunit limits in man page

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Medium
    • None
    • Lustre 2.14.0, Lustre 2.17.0
    • 3
    • 9223372036854775807

    Description

      The lfs-setquota.1 man page should document the minimum quota allocation units (qunits) for inodes (1024) and blocks (1MiB) for each server, and recommend quota limits that allocate at least tens of qunits per target in order to minimize the effect of "stranding" unused inodes/space on servers when a qunit is partially used on one target and cannot be moved to another target.

      For example, creating a number of files and then reducing/enforcing the quota limits leaves a system that has no available qunits to allocate to some OSTs:

      # for M in {0..3}; do lfs mkdir -i $M -c 1 /mnt/lustre/dir$M; done
      # lfs setquota -u quota -I 2068 -i 2048 /mnt/lustre
      ./runas -u quota_usr touch /mnt/lustre/dir0/f{1..3000}
      ./runas -u quota_usr touch /mnt/lustre/dir2/f{1..3000}
      # lctl set_param -P osd*.*.quota_slave.enabled=u
      # lfs quota -vu quota_usr /mnt/lustre
      Disk quotas for usr quota_usr (uid 1000):
      Filesystem       kbytes quota limit grace  files quota limit grace
      /mnt/lustre           0     0     0     -  6000*  2048  2068     -
      lustre-MDT0000_UUID   0     -     0     -  3000*     -  3000     -
      lustre-MDT0001_UUID   0     -     0     -     0      -     0     -
      lustre-MDT0002_UUID   0     -     0     -  3000*     -  3000     -
      lustre-MDT0003_UUID   0     -     0     -     0      -     0     -
      

      Even after removing almost all files it is still impossible to create new files on MDT0001 and MDT0003 because they have no qunits that can be allocated to them, even though the total number of files in the filesystem is below the user's quota limit:

      # ./runas -u quota_usr touch /mnt/lustre/dir3/f{3300.3500}; done
      running as uid/gid/euid/egid 1000/1000/1000/1000, groups: 1000
       [touch] [/mnt/lustre/dir3/f3300]
      touch: cannot touch ‘/mnt/lustre/dir3/f3300’: Disk quota exceeded
      running as uid/gid/euid/egid 1000/1000/1000/1000, groups: 1000
       [touch] [/mnt/lustre/dir3/f3301]
      touch: cannot touch ‘/mnt/lustre/dir3/f3301’: Disk quota exceeded
      running as uid/gid/euid/egid 1000/1000/1000/1000, groups: 1000
      :
      :
      rm -f /mnt/lustre/dir1/f{5..3000}
      rm -f /mnt/lustre/dir3/f{3..3000}
      # lfs quota -vu quota_usr /mnt/lustre
      Disk quotas for usr quota_usr (uid 1000):
      Filesystem      kbytes quota limit grace files quota limit grace
      /mnt/lustre          0     0     0     -     6  2048  2068     -
      lustre-MDT0000_UUID  0     -     0     -     4     -   952     -
      lustre-MDT0001_UUID  0     -     0     -     0     -     0     -
      lustre-MDT0002_UUID  0     -     0     -     2     -   952     -
      lustre-MDT0003_UUID  0     -     0     -     0     -     0     -
      

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated: