在 Azure 托管 Lustre 文件系统中使用配额

本文介绍如何为 Azure 托管 Lustre 文件系统设置和配置配额。 配额允许系统管理员限制用户在文件系统中可以使用的存储量。 可以为单个用户、组或项目设置配额。

先决条件

配额类型

Azure Managed Lustre 支持以下类型的配额:

  • 用户配额:限制单个用户在文件系统中可以使用的存储量。 特定用户的用户配额可以不同于其他用户的配额。
  • 组配额:限制一组用户在文件系统中可以使用的存储量。 组配额适用于属于特定组的所有用户。
  • 项目配额:限制项目在文件系统中可以使用的存储量。 项目配额适用于与项目关联的所有文件或目录。 项目可以包含多个目录或位于文件系统中不同目录中的单个文件。

以下限制配额可以应用于用户、组或项目配额:

  • 阻止配额:限制用户、组或项目在文件系统中可以使用的存储量。 以 KB 为单位配置存储大小。
  • Inode 配额:限制用户、组或项目可以在文件系统中创建的文件数。 将 inode 的最大数量配置为整数值。

注释

配额不适用于根用户。 不会强制为根用户设置配额。 同样,使用 sudo 命令以 root 用户身份写入数据会绕过配额限制的强制执行。

设置和查看文件系统的配额

若要设置文件系统的配额,请使用 lfs setquota 该命令。 此命令 lfs setquota 允许为单个用户、组或项目设置配额。 若要查看文件系统的配额,请使用 lfs quota 该命令。

设置文件系统的配额

若要为用户、组或项目设置配额,请使用以下语法:

lfs setquota {-u|--user|-g|--group|-p|--project} username|groupname|projectid
             [-b block_softlimit] [-B block_hardlimit]
             [-i inode_softlimit] [-I inode_hardlimit]
             /mount_point

该命令使用以下参数:

  • -u--user 指定要为其设置配额的用户。
  • -g--group 指定要为其设置配额的组。
  • -p--project 指定要为其设置配额的项目。
  • -b 指定块配额的软上限。 -B 指定块配额的硬性限制。 若要了解有关限制的详细信息,请参阅 配额的限制和宽限期。
  • -i 指定 inode 配额的软限制。 -I 指定 inode 配额的硬限制。
  • /mount_point 指定文件系统的装入点。

以下示例为挂载到 /mnt/fs1 的文件系统上的用户 user1 设置了块配额,其中软限制为 1 TB,硬限制为 2 TB:

sudo lfs setquota -u user1 -b 1T -B 2T /mnt/fs1

查看文件系统的配额

若要查看文件系统的配额,请使用 lfs quota 命令。 可以查看有关用户配额、组配额、项目配额和宽限期的信息。

以下示例显示了在装载到 /mnt/fs1的文件系统上显示配额的不同方法:

Command Description
lfs quota /mnt/fs1 显示运行命令的用户和用户的主组的常规配额信息(磁盘使用情况和限制)。
lfs quota -u user1 /mnt/fs1 显示文件系统中用户的 user1 常规配额信息。
lfs quota -g group1 /mnt/fs1 显示文件系统中组 group1 的常规配额信息。
lfs quota -p project1 /mnt/fs1 显示文件系统中项目 project1 的常规配额信息。
lfs quota -t -u /mnt/fs1 显示用户配额的块宽限期和 inode 宽限期。
lfs quota -t -g /mnt/fs1 显示组配额的块和索引节点宽限期。
lfs quota -t -p /mnt/fs1 显示项目配额的块和索引节点宽限期。

配额的限制和宽限期

Azure 托管 Lustre 对用户、组和项目配额实施硬限制,或实施带有可配置宽限期的软限制。

硬限制是绝对限制。 如果用户超过硬限制,块或 inode 分配将失败,并显示一条 Disk quota exceeded 消息。 达到配额硬限制的用户必须删除足够多的文件或目录,使其使用量降至配额限制以下,才能再次向文件系统写入。

软限制必须小于硬限制。 如果用户超出软限制,用户可以继续超过配额,直到宽限期过或达到硬限制为止。 宽限期结束后,软限制将转换为硬限制,并且用户将被阻止进一步写入操作,直到其使用情况返回低于定义的块配额或阴极配额限制。 宽限期开始时,用户不会收到通知或警告。

宽限期默认设为一周,适用于所有用户(用户配额)、组(组配额)和项目(项目配额)。 换句话说,不能对不同的用户配额应用不同的宽限期。 相同的限制适用于组配额和项目配额。 但是,您可以为 inode 和块配额设置不同的宽限期。

宽限期设置可能因用户、组和项目配额而异,但更改适用于这三个类别中的每个实体。

为配额设置宽限期

若要为配额设置宽限期,请使用以下语法:

sudo lfs setquota -t {-u|-g|-p}
             [-b block_grace]
             [-i inode_grace]
             /mount_point

该命令使用以下参数:

  • -t 指定要设置宽限期。
  • -u设置所有用户的宽限期。
  • -g 为所有组设置宽限期。
  • -p 为所有项目设置宽限期。
  • -b 指定块配额的宽限时间。 -i 指定 inode 配额的宽限时间。 默认情况下,这两个值 block_graceinode_grace 值都以秒为单位。 还可以使用 XXwXXdXXhXXmXXs 格式指定宽限期(以周、天、小时、分钟或秒为单位)。

-u-g-p 后不允许有任何值。 默认情况下,宽限期为一周。

以下示例将文件系统5d中的所有用户的块配额宽限期设置为五天(fs1):

sudo lfs setquota -t -u -b 5d /mnt/fs1

后续步骤

本文介绍了如何设置和配置 Azure 托管 Lustre 文件系统的配额。 若要了解有关 Azure 托管 Lustre 的详细信息,请参阅 Azure 托管 Lustre 文档