<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.lustre.org/index.php?action=history&amp;feed=atom&amp;title=Lustre_Project_Quotas</id>
	<title>Lustre Project Quotas - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.lustre.org/index.php?action=history&amp;feed=atom&amp;title=Lustre_Project_Quotas"/>
	<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Lustre_Project_Quotas&amp;action=history"/>
	<updated>2026-09-01T18:19:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=Lustre_Project_Quotas&amp;diff=5621&amp;oldid=prev</id>
		<title>Elliswilson: Created page with &quot;== Overview ==  Project quotas (available since &#039;&#039;&#039;Lustre 2.10&#039;&#039;&#039;) allow administrators to set quota limits on arbitrary groups of files identified by a numeric project ID, independent of file ownership. This is useful for limiting storage consumed by a particular project, application, or directory tree.  == Requirements ==  * All servers (MDS and OSS) must be running &#039;&#039;&#039;Lustre 2.10 or later&#039;&#039;&#039;. * &#039;&#039;&#039;ldiskfs backend:&#039;&#039;&#039; The &lt;code&gt;project&lt;/code&gt; feature must be enabled: &lt;...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Lustre_Project_Quotas&amp;diff=5621&amp;oldid=prev"/>
		<updated>2026-08-31T15:23:52Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Overview ==  Project quotas (available since &amp;#039;&amp;#039;&amp;#039;Lustre 2.10&amp;#039;&amp;#039;&amp;#039;) allow administrators to set quota limits on arbitrary groups of files identified by a numeric project ID, independent of file ownership. This is useful for limiting storage consumed by a particular project, application, or directory tree.  == Requirements ==  * All servers (MDS and OSS) must be running &amp;#039;&amp;#039;&amp;#039;Lustre 2.10 or later&amp;#039;&amp;#039;&amp;#039;. * &amp;#039;&amp;#039;&amp;#039;ldiskfs backend:&amp;#039;&amp;#039;&amp;#039; The &amp;lt;code&amp;gt;project&amp;lt;/code&amp;gt; feature must be enabled: &amp;lt;...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Project quotas (available since &amp;#039;&amp;#039;&amp;#039;Lustre 2.10&amp;#039;&amp;#039;&amp;#039;) allow administrators to set quota limits on arbitrary groups of files identified by a numeric project ID, independent of file ownership. This is useful for limiting storage consumed by a particular project, application, or directory tree.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* All servers (MDS and OSS) must be running &amp;#039;&amp;#039;&amp;#039;Lustre 2.10 or later&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ldiskfs backend:&amp;#039;&amp;#039;&amp;#039; The &amp;lt;code&amp;gt;project&amp;lt;/code&amp;gt; feature must be enabled:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tune2fs -O project /dev/sdXn&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This must be done on every MDT and OST device before mounting. On new filesystems formatted with Lustre 2.10+, this is enabled by default.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ZFS backend:&amp;#039;&amp;#039;&amp;#039; Requires &amp;#039;&amp;#039;&amp;#039;ZFS 0.8.0 or later&amp;#039;&amp;#039;&amp;#039; for project quota support.&lt;br /&gt;
* All servers in the filesystem must support project quotas. Mixed-version clusters where some servers are older than 2.10 will not enforce project quotas.&lt;br /&gt;
&lt;br /&gt;
== Enabling Project Quota Enforcement ==&lt;br /&gt;
&lt;br /&gt;
Project quota enforcement is enabled together with user/group quotas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lctl set_param -P osd-*.fsname*.quota_slave_dt.enabled=ugp&lt;br /&gt;
lctl set_param -P osd-*.fsname*.quota_slave_md.enabled=ugp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;ugp&amp;lt;/code&amp;gt; enables project quota enforcement.&lt;br /&gt;
&lt;br /&gt;
== Assigning Project IDs ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;lfs project&amp;lt;/code&amp;gt; to assign a project ID to files and directories:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Assign project ID 1 to a directory tree recursively&lt;br /&gt;
# -s sets the project ID, -p specifies the ID, -r is recursive&lt;br /&gt;
lfs project -s -p 1 -r /mnt/testfs/dir&lt;br /&gt;
&lt;br /&gt;
# Set the inherit flag so new files inherit the project ID&lt;br /&gt;
lfs project -s -p 1 -r /mnt/testfs/dir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; flag sets the project ID &amp;#039;&amp;#039;and&amp;#039;&amp;#039; enables the inherit attribute on directories, so new files and subdirectories automatically inherit the project ID.&lt;br /&gt;
&lt;br /&gt;
Check assigned project IDs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Show project ID for files/directories&lt;br /&gt;
lfs project /mnt/testfs/dir&lt;br /&gt;
lfs project -r /mnt/testfs/dir&lt;br /&gt;
&lt;br /&gt;
# Check project ID and inherit flag&lt;br /&gt;
lfs project -d /mnt/testfs/dir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Project Quota Limits ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set block and inode limits for project ID 1&lt;br /&gt;
lfs setquota -p 1 -b 100G -B 110G -i 1000000 -I 1100000 /mnt/testfs&lt;br /&gt;
&lt;br /&gt;
# Set default project quota&lt;br /&gt;
lfs setquota -P -b 50G -B 60G -i 500000 -I 600000 /mnt/testfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Viewing Project Quotas ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Show quota for project ID 1&lt;br /&gt;
lfs quota -p 1 /mnt/testfs&lt;br /&gt;
&lt;br /&gt;
# Show verbose quota with per-OST breakdown&lt;br /&gt;
lfs quota -p 1 -v /mnt/testfs&lt;br /&gt;
&lt;br /&gt;
# Show all project quotas&lt;br /&gt;
lfs quota -p -a /mnt/testfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Grace Periods for Projects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lfs setquota -p -t -b 3d -i 1w /mnt/testfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clearing a Project ID ==&lt;br /&gt;
&lt;br /&gt;
To remove a project ID assignment from a directory tree:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lfs project -s -p 0 -r /mnt/testfs/dir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project ID 0 is the default (no project).&lt;br /&gt;
&lt;br /&gt;
== Interoperability Notes ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;All servers&amp;#039;&amp;#039;&amp;#039; in the filesystem must be Lustre 2.10+ for project quotas to function.&lt;br /&gt;
* Clients older than 2.10 can still access the filesystem but cannot set project IDs.&lt;br /&gt;
* On ldiskfs, the &amp;lt;code&amp;gt;project&amp;lt;/code&amp;gt; feature flag is a filesystem format change. Once enabled, older e2fsprogs versions that do not understand the flag may report errors.&lt;br /&gt;
* Project IDs are stored in the inode on both ldiskfs and ZFS.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Per-project storage limits:&amp;#039;&amp;#039;&amp;#039; Assign each research project a unique ID and set per-project block limits.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Directory-tree quotas:&amp;#039;&amp;#039;&amp;#039; Assign a project ID to a top-level directory and enable inheritance — all files beneath it count against the project quota.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Application sandboxing:&amp;#039;&amp;#039;&amp;#039; Limit how much space a particular application or workflow can consume.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Lustre Quota Administration]]&lt;br /&gt;
* [[Lustre Quota Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lustre Systems Administration]]&lt;br /&gt;
[[Category:Lustre Quotas]]&lt;/div&gt;</summary>
		<author><name>Elliswilson</name></author>
	</entry>
</feed>