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

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

先决条件

配额类型

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

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

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

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

注意

配额不适用于根用户。 不会强制为根用户设置配额。 同样,使用 sudo 命令将数据写入根用户会绕过配额强制实施。

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

若要设置文件系统的配额,请使用 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 指定文件系统的装入点。

以下示例设置一个块配额,软限制为 1 TB,对于装载到/mnt/fs1的文件系统上的用户user1,硬限制为 2 TB:

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

查看文件系统的配额

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

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

命令 说明
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 显示组配额的块和 inode 宽限期。
lfs quota -t -p /mnt/fs1 显示项目配额的块和 inode 宽限期。

配额的限制和宽限期

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 格式指定宽限期(以周、天、小时、分钟或秒为单位)。

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

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

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

后续步骤

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