3.3.4 Lustre 文件存储

3.3.4.1 概述

LUSTRE是一个开源、可扩展的高性能面向对象的并行文件系统,被广泛应用于超级计算平台。在全球的超级计算机中有超过70%使用了LUSTRE文件系统。LUSTRE由元数据服务器(MDS)、对象存储服务器(OSS)以及客户端组成。通过元数据服务器,LUSTRE将所有对象存储服务器上存储设备组成统一的存储空间,提供给客户端挂载,完全兼容POSIX语义。LUSTRE具有很强的可扩展性,能够轻松管理数十PB的存储空间,且具有极高的性能,聚合带宽能够达到每秒几十甚至上百GB,因此其在高性能计算领域获得广泛应用。但是,由于LUSTRE元数据服务器的限制,在管理海量小文件时不具有优势,且不支持纠删码、副本等功能,因此LUSTRE文件系统被主要用于海量的实验数据存储。LUSTRE是目前计算中心最主要的磁盘文件系统。

LUSTRE是高性能计算平台中使用规模最大的文件系统。提供BES,DYB,JUNO等多个实验海量存储服务。当前lustre文件系统的信息如表6所示:

总空间(TB) 用途 用户限额 备份情况
/besfs5 1800 BESIII生产数据,BESIII group数据,用户数据 users目录每人50GB使用空间,group目录各组不同 原始数据有磁带备份,其它无备份
/bes3fs 1900 BESIII 生产数据 原始数据有磁带备份,其它无备份
/bes3fs 1900 BESIII 生产数据 原始数据有磁带备份,其它无备份
/besfs3 2600 BESIII 生产数据 原始数据有磁带备份,其它无备份
/besfs4 2500 BESIII 生产数据 原始数据有磁带备份,其它无备份
/publicfs 3000 ATLAS,CMS,LHCB,UCAS分池共享数据盘 每人5TB使用空间,30万文件数 各组资源完全隔离使用,无备份
/sharefs 1500 Alicpt,BES,HBKG,HEPS,MBH分池共享数据盘 各组资源完全隔离使用,无备份
/scratchfs 572 用户临时文件 每人500GB使用空间,20万文件数 无备份
/workfs2 22 用户个人文件(推荐保存重要文件或结果) 每人5GB使用空间,5万文件数 全盘备份
/cefs 2500 CEPC 实验数据,用户数据 无备份
/junofs 3100 JUNO 实验数据 每人500GB使用空间,30万文件数 无备份
/dybfs 2500 DYB 实验数据,用户数据 每人1TB使用空间,30万文件数 原始数据有磁带备份,其它无备份
/dybfs2 1400 DYB 实验数据,用户数据 每人1TB使用空间,30万文件数 原始数据有磁带备份,其它无备份
/gecamfs 1500 GECAM 实验数据 无备份
/hxmtfs 1300 HXMT 实验数据 无备份
/hpcfs 1800 Slurm集群GPU应用数据 无备份
/lhaasofs 610 LHAASO 用户数据 每人200GB使用空间,50万文件数 无备份

表6 lustre文件系统信息说明

  • Lustre文件系统完全支持Linux POSIX语义,用户可以使用Linux 文件系统访问命令及API访问Lustre。

  • 如果需要使用用户ACL和扩展属性功能,请提交请求至:ics@ihep.ac.cn

  • /workfs专用于用户交互使用,即在登录结点上可以读写,但是计算结点上用户无法在/workfs下新建和修改文件,即用户作业在运行时无法向/workfs目录下写入或修改文件。

  • 3.3.4.2 常用命令

查看用户的资源配额:

$ lfs quota -u username dirname 例如:

$ lfs quota -u zhangsan /publicfsDisk

quotas for user zhangsan (uid XXXX): Filesystem kbytes quota limit grace files quota limit grace /publicfs 338626804 524288000 524288000 - 232010 300000 300100

(已用空间) (软空间配额) (硬空间配额) (已存文件数) (软文件数配额)

查看/besfs5/user, /besfs5/group下各目录的配额使用情况:

  1. 在特定目录下,对任意一个普通文件(非目录)执行命令lsattr -p ,查看该目录的project id

    #lsattr -p nohup.out 
     1097 -----------------P nohup.out
    

    发现这个目录的project id 是1097

  2. 执行 命令lfs quota -p 1097 /besfs5 ,查看该目录的配额使用情况

    # lfs quota -p 1097 -h /besfs5
    Disk quotas for prj 1097 (pid 1097):
        Filesystem    used   quota   limit   grace   files   quota   limit   grace
           /besfs5  1.362T*    50G     50G       -  293249       0       0       -
    

查看Lustre文件系统中每个磁盘池的空间使用情况:

$ lfs df –h –p poolname dirname

-p 参数带磁盘池的名字,l例如 ATLAS组有acfs.atlaspool, CMS组有acfs.cmspool, lhcb组有acfs.lhcbpool

示例如下:

$ lfs df -h -p acfs.lhcbpool /publicfs

$ lfs df -p acfs.atlaspool /publicfs |tail -n 3

filesystem summary: 934854246652 267931989532 619787497356 30% /publicfs

设置文件分条存储,提高并发访问单个文件的性能:

命令格式:

$lfs setstripe dirname –c n

n为分条数量。

示例如下:

$ lfs setstripe yourdirname –c 6 (分6条存储)

目录下面的文件会继承目录的分条属性,如果想单独指定文件的分条格式,可以先touch 一个空文件,并设置其分条属性。

设置目录的ACL:**

例如:目录 /besfs4/wanglutest 的属主是root:root, 属性是750,作为用户wanglu(60007:600)是没有权限访问的

-bash-4.2$ ll /besfs4 |grep wanglutest

drwxr-x---+ 2 root  root   4096 May 11 15:24 wanglutest

-bash-4.2$ cd /besfs4/wanglutest

-bash: cd: /besfs4/wanglutest: Permission denied

为用户wanglu在这个目录下设置权限

setfacl -m user:wanglu:rwx /besfs4/wanglutest

查看wanglu的权限

-bash-4.2$ getfacl /besfs4/wanglutest
getfacl: Removing leading '/' from absolute path names
# file: besfs4/wanglutest
# owner: root
# group: root
user::rwx
user:wanglu:rwx
group::r-x
mask::rwx
other::---

现在就可以读写了

-bash-4.2$ pwd
/afs/ihep.ac.cn/users/w/wanglu
-bash-4.2$ cd /besfs4/wanglutest
-bash-4.2$ cp /etc/hosts .
-bash-4.2$ ls -lh
total 3.1M
-rw-r--r-- 1 wanglu u07 3.0M May 11 15:22 f1
-rw-r--r-- 1 wanglu u07  292 May 11 15:38 hosts

删除用户的ACL权限

setfacl -x user:wanglu /besfs4/wanglutest

注意:

  1. 只有目录的属主可以操作目录的ACL权限
  2. 设置过ACL权限后, ls -l 目录会多一个“+”, 此时,Linux原来的permisson规则会失效
  3. 可以对一个组添加ACL setfacl -m group:xxx /xxx/xxx

如果要恢复Linux原来的权限设置,即清除 ls -l 后面那个"+", 可以用setfacl -b 命令

#setfacl -b /besfs4/wanglutest

完整的ACL语法规则查看

http://wiki.lustre.org/images/5/57/PosixAccessControlInLinux.pdf

或者查阅Linux manpage

# man getfacl 
# man setfacl

results matching ""

    No results matching ""