12.4 JUNO¶
12.4.1 概况¶
| 资源类型 | 资源量 | 说明 |
|---|---|---|
| 登录节点 | lxlogin | |
| HTCondor | 6621 | |
| Slurm | ||
| home目录 | afs | |
| 工作目录 | /lustrefs/juno26 | |
| EOS 目录 | /eos/juno/user/ |
2TB 空间,300 万个文件 |
12.4.2 新用户¶
帐户注册¶
- 确保已经属于 JUNO 合作组。
- 注册 IHEP Single Sign On(SSO)同时申请 JUNO 合作组权限。
- IHEP SSO:https://login.ihep.ac.cn/login
- 如果需要登录集群,申请 AFS 帐户:
- http://afsapply.ihep.ac.cn/ccapply/userapplyaction.action
- 如果需要 SVN/Trac,需要申请 SVN/Trac 帐户:
- https://juno.ihep.ac.cn/trac
常用链接¶
- Wiki:https://juno.ihep.ac.cn/mediawiki/index.php/Main_Page
- DocDB:https://juno.ihep.ac.cn/cgi-bin/Dev_DocDB/DocumentDatabase
- Trac: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 系统,访问方式为:
说明
- xrootd 默认使用 1094 端口
- 在端口后需要使用
// - filepath 需要使用 绝对路径
此处的 EOS_MGM_URL 为实例的服务器地址,JUNO 实验的服务器地址是 junoeos01.ihep.ac.cn,请通过以下命令设置:
提醒
可以将 EOS_MGM_URL 环境变量,写入 ~/.bash_profile 文件中,这样每次登录时,会自动加载。
注意
当用户在使用 /eos 盘时,只能通过 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打开:
- 对于非 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 命令就可以使用了。具体使用方式为:
输出示例:
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)¶
见常见问题。
有问题?输入后跳转到对话页继续交流