Linux:查看磁盘配额报告数据


近期在超算云上跑代码遇到了个乌龙,就是作业一提交到集群上去先是PD状态,然后马上就终止调了。后来知道是我用户目录下文件数量太多,导致已经超过管理员给我分配的磁盘配额了(众所周知机器学习相关项目的数据集一般有很多文件)。这边特此记录一下如何查看磁盘配额数据。

1.文件系统的支持与查看

用df命令可查看本系统用的是什么文件系统。比如我们查看本用户目录用的什么文件系统。

[macong@paratera01 ~]$ df -hT ~
Filesystem           Type    Size  Used Avail Use% Mounted on
12.31.3.27@tcp:/home lustre  2.7T  1.9T  848G  69% /home

可以看到是Lustre文件系统,该系统是一种并行分布式文件系統,通常用于大型计算机集群和超算。Lustre是源自Linux和Cluster的混成词。
查看该类文件系统磁盘配额的命令为

[macong@paratera01 ~]$ lfs quota
error: missing quota argument(s)
Display disk usage and limits.
usage: quota [-q] [-v] [-h] [-o |-i |-I ]
             [<-u|-g|-p> ||||] 
       quota [-o |-i |-I ] -t <-u|-g|-p> 

2. 查看此案配额的报告数据

则我们用下列命令参看当前用户($USER)在~/project目录下的配额,并以人较易阅读的GBytes、MBytes、KBytes等格式自行显示:

[macong@paratera01 ~]$   lfs quota -h -u $USER ~/project 
Disk quotas for usr macong (uid 53018):
     Filesystem    used   quota   limit   grace   files   quota   limit   grace
/home/macong/project
                 193.5G      1T      1T       -  325835  1000000 1000000       -

可以看到目前我们的磁盘配额中磁盘容量为1T,已用183.5G;文件数量限制为1000000,目前已用325835(当然,文件数量之前是满了的,这里我已经清理过了)。

3.讨论

我们知道Linux文件系统中的主要规划为存放属性的inode与实际文件数据block区块,磁盘配额既然是管理文件系统,所以当然也可以管理inode与block,这两个管理的功能为:

  • 限制block使用量:管理用户磁盘容量的限制;
  • 限制inode使用量,管理用户可以建立的文件数量。

参考

  • [1] https://zh.wikipedia.org/zh-tw/Lustre
  • [2] 鸟哥. 鸟哥的 Linux 私房菜: 基础学习篇[M]. 人民邮电出版社, 2018.