使用 Lustre 存储配额
您可以在 FSx for Lustre 文件系统上为用户、组和项目创建存储配额。您可以利用存储配额,限制用户、组或项目能够占用的磁盘空间量和文件数量。存储配额会自动跟踪用户级别、组级别和项目级别的使用情况,因此无论您是否选择设置存储限制,都可以监控使用情况。
Amazon FSx 强制执行配额,并阻止超过配额的用户写入存储空间。当用户超过其配额时,必须删除足够的文件,使其低于配额限制,这样才能再次写入文件系统。
配额执行
在所有 FSx for Lustre 文件系统上自动启用用户、组和项目配额强制执行。您无法禁用配额强制执行。
配额的类型
拥有 AWS 账户根用户凭证的系统管理员可以创建以下类型的配额:
适用于个人用户的用户配额。特定用户的用户配额可能与其他用户的配额不同。
适用于属于特定组的所有用户的组配额。
项目配额适用于与项目关联的所有文件或目录。项目可以包含位于文件系统中的多个目录或不同目录下的单个文件。
注意
FSx for Lustre 文件系统中只有 Lustre 版本 2.15 支持项目配额。
限制用户、组或项目可以占用的磁盘空间量的块配额。您可以以千字节为单位配置存储大小。
限制用户、组或项目可以创建的文件或目录数量的索引节点配额。您可以将最大索引节点数配置为整数。
注意
不支持默认配额。
如果您为特定用户和组设置了配额,并且该用户是该组的成员,则该用户的数据使用量同时适用这两个配额。此外,它也受到两个配额的限制。一旦达到任一配额限制,便会阻止用户写入文件系统。
注意
为根用户设置的配额不会强制执行。同样,以根用户身份使用 sudo
命令写入数据会绕过配额的强制执行。
配额限制和宽限期
Amazon FSx 会将用户、组和项目配额作为硬限制或具有可配置宽限期的软限制强制执行。
硬限制是绝对限制。如果用户超出其硬限制,则块或索引节点分配失败,并显示超出磁盘配额
消息。达到配额硬限制的用户必须删除足够的文件或目录,直至其低于配额限制,然后才能再次写入文件系统。设置宽限期后,只要低于硬限制,则用户可以在宽限期内超出软限制。
对于软限制,您可以配置宽限期(以秒为单位)。软限制必须小于硬限制。
您可以为索引节点和块配额设置不同的宽限期。您还可以为用户配额、组配额和项目配额设置不同的宽限期。当用户、组和项目配额具有不同的宽限期时,在任何配额宽限期过后,软限制都将转换为硬限制。
当用户超出软限制时,Amazon FSx 允许他们继续超出其配额,直至宽限期过后或达到硬限制。宽限期结束后,软限制将转换为硬限制,用户将被禁止进行任何进一步的写入操作,直至其存储使用量恢复为低于规定的块配额或索引节点配额限制。宽限期开始时,用户不会收到通知或警告。
设置和查看配额
您可以在 Linux 终端中使用 Lustre文件系统 lfs
命令设置存储配额。lfs setquota
命令设置配额限制,lfs quota
命令显示配额信息。
有关 Lustre 配额命令的更多信息,请参阅 Lustre 文档网站
设置用户、组和项目配额
用于设置用户、组或项目配额的 setquota
命令语法如下。
lfs setquota {-u|--user|-g|--group|-p|--project}
username
|groupname
|projectid
[-bblock_softlimit
] [-Bblock_hardlimit
] [-iinode_softlimit
] [-Iinode_hardlimit
] /mount_point
其中:
-u
或--user
指定要为其设置配额的用户。-g
或--group
指定要为其设置配额的组。-p
或--project
指定要为其设置配额的项目。-b
设置具有软限制的块配额。-B
设置具有硬限制的块配额。block_softlimit
和block_hardlimit
均以千字节表示,最小值为 1024 KB。-i
设置具有软限制的索引节点配额。-I
设置具有硬限制的索引节点配额。inode_softlimit
和inode_hardlimit
均以索引节点数量表示,最小值为 1024 个索引节点。mount_point
是挂载文件系统的目录。
用户配额示例:以下命令为挂载到 /mnt/fsx
的文件系统上的 user1
设置了 5000KB 的软块限制、8000KB 的硬块限制、2000 个软索引节点限制和 3000 个硬索引节点限制配额。
sudo lfs setquota -u user1 -b 5000 -B 8000 -i 2000 -I 3000 /mnt/fsx
组配额示例:以下命令为挂载到 /mnt/fsx
的文件系统上名为 group1
的组设置了 100000 KB 的硬块限制。
sudo lfs setquota -g group1 -B 100000 /mnt/fsx
项目配额示例:首先,请确保您已使用 project
命令将所需文件和目录与项目关联。例如,以下命令将 /mnt/fsxfs/dir1
目录的所有文件和子目录与项目 ID 为 100
的项目关联。
sudo lfs project -p 100 -r -s /mnt/fsxfs/dir1
然后使用 setquota
命令设置项目配额。以下命令为挂载到 /mnt/fsx
的文件系统上的项目 250
设置了 307200 KB 的软块限制、309200 KB 的硬块限制、10000 个软索引节点限制和 11000 个硬索引节点限制配额。
sudo lfs setquota -p 250 -b 307200 -B 309200 -i 10000 -I 11000 /mnt/fsx
设置宽限期
默认宽限期为一周。您可以使用以下语法调整用户、组或项目的默认宽限期。
lfs setquota -t {-u|-g|-p} [-b
block_grace
] [-iinode_grace
] /mount_point
其中:
-t
表示将设置宽限期。-u
为所有用户设置宽限期。-g
为所有组设置宽限期。-p
为所有项目设置宽限期。-b
为块配额设置宽限期。-i
为索引节点配额设置宽限期。block_grace
和inode_grace
均以整数秒或XXwXXdXXhXXmXXs
格式表示。mount_point
是挂载文件系统的目录。
以下命令为用户块配额设置 1000 秒的宽限期,为用户索引节点配额设置 1 周零 4 天的宽限期。
sudo lfs setquota -t -u -b 1000 -i 1w4d /mnt/fsx
查看配额
quota
命令显示有关用户配额、组配额、项目配额和宽限期的信息。
查看配额命令 | 已显示配额信息 |
---|---|
|
有关运行命令的用户和用户主组的一般配额信息(磁盘使用情况和限制)。 |
|
特定用户的一般配额信息。具有 AWS 账户根用户凭证的用户可以针对任何用户运行此命令,但非根用户无法运行此命令来获取有关其他用户的配额信息。 |
|
特定用户的一般配额信息以及每个对象存储目标(OST)和元数据目标(MDT)的详细配额统计信息。具有 AWS 账户根用户凭证的用户可以针对任何用户运行此命令,但非根用户无法运行此命令来获取有关其他用户的配额信息。 |
|
特定群组的一般配额信息。 |
|
特定项目的一般配额信息。 |
|
用户配额的块和索引节点宽限时间。 |
|
组配额的块和索引节点宽限时间。 |
|
项目配额的块和索引节点宽限时间。 |
配额和 Amazon S3 关联存储桶
您可以将 FSx for Lustre 文件系统关联到 Amazon S3 数据存储库。有关更多信息,请参阅 将文件系统链接到 Amazon S3 存储桶。
您可以在关联的 S3 存储桶中选择特定的文件夹或前缀作为文件系统的导入路径。指定 Amazon S3 中的文件夹并从 S3 导入文件系统时,只有该文件夹中的数据才适用配额。整个存储桶的数据不计入配额限制。
关联 S3 存储桶中的文件元数据将导入到结构与从 Amazon S3 导入的文件夹匹配的文件夹中。这些文件计入拥有这些文件的用户和组的索引节点配额。
当用户执行 hsm_restore
或延迟加载文件时,该文件的完整大小将计入与文件所有者关联的块配额。例如,如果用户 A 延迟加载用户 B 拥有的文件,则存储量和索引节点使用量将计入用户 B 的配额。同样,当用户使用 Amazon FSx API 发布文件时,数据将从拥有该文件的用户或组的块配额中释放出来。
由于 HSM 恢复和延迟加载是通过根访问权限执行的,因此它们会绕过配额强制执行。导入数据后,将根据在 S3 中设置的所有权计入用户或组,这可能会导致用户或组超出其块限制。如果发生这种情况,他们需要先释放文件才能再次写入文件系统。
同样,启用自动导入功能的文件系统将自动为添加到 S3 中的对象创建新的索引节点。这些新索引节点是使用根访问权限创建的,在创建时会绕过配额强制执行。这些新索引节点将根据 S3 中对象的所有者计入用户和组。如果这些用户和组因自动导入活动而超出其索引节点配额,则他们必须删除文件以释放更多容量,直至低于配额限制。
配额和恢复备份
恢复备份时,原始文件系统的配额设置将在恢复的文件系统中实施。例如,如果在文件系统 A 中设置了配额,而文件系统 B 是通过文件系统 A 的备份创建的,则文件系统 A 的配额将在文件系统 B 中强制执行。