跳转至

12.4 JUNO

12.4.1 概况

资源类型 资源量 说明
登录节点 lxlogin
HTCondor 6621
Slurm
home目录 afs
工作目录 /lustrefs/juno26
EOS 目录 /eos/juno/user/ 2TB 空间,300 万个文件

12.4.2 新用户

帐户注册

  1. 确保已经属于 JUNO 合作组。
  2. 注册 IHEP Single Sign On(SSO)同时申请 JUNO 合作组权限。
  3. IHEP SSO:https://login.ihep.ac.cn/login
  4. 如果需要登录集群,申请 AFS 帐户:
  5. http://afsapply.ihep.ac.cn/ccapply/userapplyaction.action
  6. 如果需要 SVN/Trac,需要申请 SVN/Trac 帐户:
  7. https://juno.ihep.ac.cn/trac

常用链接

12.4.3 存储目录

用户目录

提供用户存放个人数据文件,每位用户均在以下目录中有自己专属目录。用户目录列表如下:

目录名称 空间限额/文件数限额 查看使用份额的命令
/afs/ihep.ac.cn/users/username 500MB/none fs listquota /afs/ihep.ac.cn/users/username
/workfs2/juno/username 5GB/5万 lfs quota -u username /workfs
/junofs26/users/username 500GB/30万 lfs quota -u username /junofs
/scratchfs/juno/username 500GB/20万 (数据只保存2周) lfs quota -u username /scratchfs
/eos/juno/user/username 2TB/300万 eos quota

注意

如果用户的主组不是 juno,请参考相应主组的文档。

EOS 使用说明

EOS文件系统是一套基于xrootd框架的面向EB级数据存储的分布式文件系统。具体情况请参考8.4 EOS 文件存储。

EOS 访问文件

xrootd 协议访问 EOS 系统,访问方式为:

root://EOS_MGM_URL//filepath

说明

  • xrootd 默认使用 1094 端口
  • 在端口后需要使用 //
  • filepath 需要使用 绝对路径

此处的 EOS_MGM_URL 为实例的服务器地址,JUNO 实验的服务器地址是 junoeos01.ihep.ac.cn,请通过以下命令设置:

export EOS_MGM_URL=root://junoeos01.ihep.ac.cn/

提醒

可以将 EOS_MGM_URL 环境变量,写入 ~/.bash_profile 文件中,这样每次登录时,会自动加载。

echo "export EOS_MGM_URL=root://junoeos01.ihep.ac.cn/" >> ~/.bash_profile

注意

当用户在使用 /eos 盘时,只能通过 eos 命令来访问。

表 12.4-1 eos 命令与系统命令对照表
Eos命令(推荐使用) Linux命令(不可用) 说明
eos ls ls 查看文件列表
eos cp cp 拷贝文件
eos mv eos file rename mv 移动文件
eos cp /eos/user/myfile -|cat cat 查看文件内容
eos cp /eos/user/myfile -|tail tail 查看文件内容
eos mkdir mkdir 创建文件夹
eos touch touch 创建文件
eos newfind -f /eos/mypath 无 查找某一个目录下所有文件列表(包含子目录)
eos newfind -d /eos/mypath 无 查找某一个目录下所有目录列表(包含子目录)
eos ln ln 创建软链接
eos quota 无 查看个人空间使用大小
eos stat -f ls 判断文件是否存在,如果不存在,返回值为空
eos file info stat 可查看文件的 Modify 修改时间和 Change 状态改动时间

其中,Linux 下的 cat 和 tail 命令可以用 xrdfs 相应命令代替,需要在 xrdfs 后面加上 EOS 的域名,比如 JUNO EOS,就是 junoeos01 或 junoeos01.ihep.ac.cn:

  • 查看文件全部内容:xrdfs junoeos01 cat /eos/juno/user/username/myfile
  • 查看文件尾部 N bytes 内容:xrdfs junoeos01 tail -c N /eos/juno/user/username/myfile
  • 实时查看文件尾部内容:xrdfs junoeos01 tail -f /eos/juno/user/username/myfile

作业中访问 EOS

作业中使用 xrootd 读写文件的前提是物理软件支持 xrootd 协议。对于 ROOT 软件,目前已支持 xrootd 方式,但需要注意目前有三种方式产生 TFile 对象:

  • 声明:TFile(PATHNAME):不支持 xrootd
  • 新文件:new TFile (PATHNAME):不支持 xrootd
  • 打开方法:TFile::Open(PATHNAME):支持 xrootd

举例:

  • 对于 ROOT 格式的文件,可以直接用 TFile::Open 打开:
TFile *filein = TFile::Open("root://junoeos01.ihep.ac.cn//eos_absolute_path_filein_name.root");
  • 对于非 ROOT 格式的文件,也可以用 ROOT 的 TFile 类直接读写,需要在文件名后增加一个参数 ?filetype=raw。举例:
void rawfile(){  
  int size;
  char buf[1024];
  TFile *rf = TFile::Open("root://junoeos01.ihep.ac.cn//eos/user/c/chyd/set.log?filetype=raw");
  size = rf->GetSize();
  printf("size is %d\n", size);
  memset(buf, 0, 1024);
  rf->ReadBuffer(buf, 1024);
  printf("%s\n", buf);
  rf->Close();
  }

ACL 目录权限控制

EOS 支持用户对自身目录进行 ACL 设置,目前已经开通 ACL 访问权限控制的目录为 /eos/juno/groups/ 下各个组的目录,各目录的 convenor 可设定哪些用户向该目录下进行读写。

目录权限拥有者登录到登录节点后,按以下方式操作(以 /eos/juno/groups/Reconstruction 为例):

export EOS_MGM_URL=root://junoeos01.ihep.ac.cn/   # 可以将该命令写入 ~/.bashrc 中

# jiangw 是要授权的用户集群账号名
eos acl -R --user u:jiangw=rwx /eos/juno/groups/Reconstruction

# 该步骤必须执行,否则用户将没有 quota 进行写数据;此处的 10T 为分配空间大小,可根据需要自行调整
eos quota set -u jiangw -v 10T /eos/juno/groups/Reconstruction

注意

  • -R 是可选选项,添加 -R 选项会使得上面这个命令的执行时间变长,-R 表示对所设置目录下所有的子目录执行该操作。如果不需要对该目录下已有的目录同步增加新用户的权限,则不用使用 -R 选项。
  • 由于 JUNO EOS 采用双副本机制,此处设置的 10TB,其真实可用空间为 5TB。

注意

当用户登录到登录节点进行操作时,在执行 eos 命令时,如提示输入证书密码,此时请按回车跳过,否则将会映射成网格用户,造成设置失败。

如有其他计划开通 ACL 目录访问控制权限的用户,请联系计算中心,发邮件至 lihaibo@ihep.ac.cn。

支持 xrootd 的 hadd

hadd 支持通过 xrootd 方式对文件进行合并,需要首先 source 环境变量,之后通过 histadd 命令就可以使用了。具体使用方式为:

source /cvmfs/lhaaso.ihep.ac.cn/anysw/slc5_ia64_gcc73/external/envd.sh

histadd -h

输出示例:

Function: An alternative "hadd" made by <zhiguo.yao@ihep.ac.cn>
SYNOPSIS:
  histadd  [ -o outfile ]
  [ -topdir | +topdir ] [ -folder folder1 [ -folder folder2 ... ] ]
  [ -tree | +tree ]
  [ -list listfile1 [ -list listfile2 ... ] ]
  [ -inclhist histname1 [ -inclhist histname2 ... ] ]
  [ -exclhist histname1 [ -exclhist histname2 ... ] ]
  [ filename1 [ filename2 ... ] ]

BRIEF EXPLANATIONS:
  -topdir: Add objects in the top directory of every root file (default).
  +topdir: Ignore all objects in the top directory.
  -folder folder: Activate adding the TFolder "folder".
  *** Note: Only folders specfied by option "-folder folder" are added.
  -tree: Add TTree objects (default).
  +tree: Ignore all TTree objects.
  -inclhist histname: include histname in the top directory. Default: all.
  -exclhist histname: exclude histname in the top directory. Default: nothing.
  -list listfile: Add every lines in "listfile" to the input list.
  *** Note: Lines with leading "#" will be ignored!
  filename: Add "filename" to the input list.
  *** Note: (Many) list files and file names can be specified simultanously.
  *** Note: EOS files will be automatically accessed via the xrootd protocol.

常见问题(FAQ)

见常见问题。

🤖 AI 助手
💬 快速提问 ×

有问题?输入后跳转到对话页继续交流