-Total allocated inode limit: 2560, total allocated block limit: 24576</screen>
- <para>Global quota limits are stored in dedicated index files (there is one such index per quota type) on the quota master target (aka QMT). The QMT runs on MDT0000 and exports the global indexes via /proc. The global indexes can thus be dumped via the following command: <screen># lctl get_param qmt.testfs-QMT0000.*.glb-*</screen> The format of global indexes depends on the OSD type. The ldiskfs OSD uses an IAM files while the ZFS OSD creates dedicated ZAPs.</para>
- <para>Each slave also stores a copy of this global index locally. When the global index is modified on the master, a glimpse callback is issued on the global quota lock to notify all slaves that the global index has been modified. This glimpse callback includes information about the identifier subject to the change. If the global index on the QMT is modified while a slave is disconnected, the index version is used to determine whether the slave copy of the global index isn't uptodate any more. If so, the slave fetches the whole index again and updates the local copy. The slave copy of the global index is also exported via /proc and can be accessed via the following command: <screen>lctl get_param osd-*.*.quota_slave.limit*</screen></para>
- <note>
- <para>Prior to 2.4, global quota limits used to be stored in administrative quota files using the on-disk format of the linux quota file. When upgrading MDT0000 to 2.4, those administrative quota files are converted into IAM indexes automatically, conserving existing quota limits previously set by the administrator.</para>
- </note>
+Total allocated inode limit: 2560, total allocated block limit: 24576
+</screen>
+ <para>Global quota limits are stored in dedicated index files (there is one
+ such index per quota type) on the quota master target (aka QMT). The QMT
+ runs on MDT0000 and exports the global indices via <replaceable>lctl
+ get_param</replaceable>. The global indices can thus be dumped via the
+ following command:
+ <screen>
+# lctl get_param qmt.testfs-QMT0000.*.glb-*
+</screen>The format of global indexes depends on the OSD type. The ldiskfs OSD
+uses an IAM files while the ZFS OSD creates dedicated ZAPs.</para>
+ <para>Each slave also stores a copy of this global index locally. When the
+ global index is modified on the master, a glimpse callback is issued on the
+ global quota lock to notify all slaves that the global index has been
+ modified. This glimpse callback includes information about the identifier
+ subject to the change. If the global index on the QMT is modified while a
+ slave is disconnected, the index version is used to determine whether the
+ slave copy of the global index isn't up to date any more. If so, the slave
+ fetches the whole index again and updates the local copy. The slave copy of
+ the global index can also be accessed via the following command:
+ <screen>
+lctl get_param osd-*.*.quota_slave.limit*
+</screen></para>
+ </section>
+ <section condition='l2C' xml:id="default_quota">
+ <title>
+ <indexterm>
+ <primary>Quotas</primary>
+ <secondary>default</secondary>
+ </indexterm>Default Quota</title>
+ <para>The default quota is used to enforce the quota limits for any user,
+ group, or project that do not have quotas set by administrator.</para>
+ <para>The default quota can be disabled by setting limits to
+ <literal>0</literal>.</para>
+ <section xml:id="defalut_quota_usage">
+ <title>
+ <indexterm>
+ <primary>Quotas</primary>
+ <secondary>usage</secondary>
+ </indexterm>Usage</title>
+ <screen>
+lfs quota [-U|--default-usr|-G|--default-grp|-P|--default-prj] <replaceable>/mount_point</replaceable>
+lfs setquota {-U|--default-usr|-G|--default-grp|-P|--default-prj} [-b <replaceable>block-softlimit</replaceable>] \
+ [-B <replaceable>block_hardlimit</replaceable>] [-i <replaceable>inode_softlimit</replaceable>] [-I <replaceable>inode_hardlimit</replaceable>] <replaceable>/mount_point</replaceable>
+lfs setquota {-u|-g|-p} <replaceable>username|groupname</replaceable> -d <replaceable>/mount_point</replaceable>
+ </screen>
+ <para>To set the default user quota:</para>
+ <screen>
+# lfs setquota -U -b 10G -B 11G -i 100K -I 105K /mnt/testfs
+ </screen>
+ <para>To set the default group quota:</para>
+ <screen>
+# lfs setquota -G -b 10G -B 11G -i 100K -I 105K /mnt/testfs
+ </screen>
+ <para>To set the default project quota:</para>
+ <screen>
+# lfs setquota -P -b 10G -B 11G -i 100K -I 105K /mnt/testfs
+ </screen>
+ <para>To disable the default user quota:</para>
+ <screen>
+# lfs setquota -U -b 0 -B 0 -i 0 -I 0 /mnt/testfs
+ </screen>
+ <para>To disable the default group quota:</para>
+ <screen>
+# lfs setquota -G -b 0 -B 0 -i 0 -I 0 /mnt/testfs
+ </screen>
+ <para>To disable the default project quota:</para>
+ <screen>
+# lfs setquota -P -b 0 -B 0 -i 0 -I 0 /mnt/testfs
+ </screen>
+ <note>
+ <para>
+ If quota limits are set for some user, group or project, it will use
+ those specific quota limits instead of the default quota. Quota limits for
+ any user, group or project will use the default quota by setting its quota
+ limits to <literal>0</literal>.
+ </para>
+ </note>
+ </section>