7.4 JUNO
7.4.1 新用户
7.4.1.1 帐户注册
- 确保已经属于 JUNO 合作组。
- 注册 IHEP Single Sign On (SSO) 同时申请 JUNO 合作组权限.
- IHEP SSO: https://login.ihep.ac.cn/login
- 如果需要登陆集群, 申请 AFS 帐户:
- 如果需要 SVN/Trac, 需要申请 SVN/Trac 帐户:
7.4.1.2 常用链接
- 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
7.4.2 存储目录
7.4.2.1 用户目录
提供用户存放个人数据文件,每位用户均在以下目录中有自己专属目录。用户目录列表如下:
目录名称 | 空间限额/文件数限额 | 查看使用份额的命令 |
---|---|---|
/afs/ihep.ac.cn/users/username | 500MB/none | fs listquota /afs/ihep.ac.cn/users/username |
/workfs/juno/username | 5GB/5万 | lfs quota -u username /workfs |
/junofs/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,请参考相应主组的文档。
7.4.2.2 EOS使用说明
EOS文件系统是一套基于xrootd框架的面向EB级数据存储的分布式文件系统。具体情况请参考3.3.5 EOS文件存储
。
7.4.2.2.1 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命令来访问。
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 | 判断文件是否存在,如果不存在,返回值为空 |
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/usname/myfile
- 查看文件尾部 N bytes 内容:
xrdfs junoeos01 tail -c N /eos/juno/user/usname/myfile
- 实时查看文件尾部内容:
xrdfs junoeos01 tail -f /eos/juno/user/usname/myfile
7.4.2.2.2 作业中访问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();
}
7.4.2.2.3 ACL目录权限控制
EOS支持用户对自身目录进行ACL设置,目前已经开通ACL访问权限控制的目录为"/eos/juno/groups/“下各个组的目录,各目录的convenor可设定哪些用户向该目录下进行读写。
目录权限拥有者登录到登录节点后,按以下方式操作(以/eos/juno/groups/Reconstruction为例):
$ export EOS_MGM_URL=root://junoeos01.ihep.ac.cn/ (可以将该命令写入~/.bashrc中)
$ eos acl -R --user u:jiangw=rwx /eos/juno/groups/Reconstruction (jiangw是要授权的用户集群账号名)
注意: -R是可选选项,添加-R选项会使得上面这个命令的执行时间变长,-R表示对所设置目录下所有的子目录执行该操作。如果不需要对该目录下已有的目录同步增加新用户的权限,则不用使用-R选项。
$ eos quota set -u jiangw -v 10T /eos/juno/groups/Reconstruction (该步骤必须执行,否则用户将没有quota进行写数据,此处的10T为分配空间大小,可根据需要自行调整。)
注意:由于JUNO EOS采用双副本机制,此处设置的10TB,其真实可用空间为5TB。
注意:当用户登录到登录节点进行操作时,在执行eos命令时,如提示输入证书密码,此时请按回车跳过,否则将会映射成网格用户,造成设置失败。
如有其他计划用户开通ACL目录访问控制权限,请联系计算中心,发邮件至lihaibo@ihep.ac.cn。
7.4.2.2.4 支持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.