跳转至

8.6 磁带库存储服务

8.6.1 磁带库存储概况

高能所计算中心采用 LTO 磁带作为长期存储的主要介质,采用 EOSCTA 作为磁带存储软件。EOSCTA 由两部分组成,包括前端 EOS 文件系统和后端 CTA 磁带库管理软件,实现了分级存储的功能。当前高性能计算平台中计算节点和登录节点均已安装部署了 EOSCTA 环境。目前提供 BES、DYB、JUNO、LHAASO、HEPS 等实验磁带存储服务。

8.6.2 磁带库使用权限

申请使用权限

拥有了计算平台账号的用户如果希望使用磁带存储,首先要向相关实验应用负责人提出申请,由负责人联系计算中心为用户开放使用权限。届时用户将收到电子邮件通知。

客户端安装

如果需要从本地机器上访问磁带库数据,可安装相关的磁带库客户端 RPM 包,包括 eos-client 和 xrootd-client。

yum install eos-client xrootd-client

使用环境配置

编辑 .bashrc,添加环境变量:

export XrdSecPROTOCOL=unix
export EOS_MGM_URL=root://xxx.ihep.ac.cn   # 填入对应实验的 EOSCTA 的 MGM 域名

8.6.3 磁带库常用命令

下文简要介绍了一些 EOSCTA 常用命令。由于 EOSCTA 使用的是 EOS 文件系统,命令格式类似,可参考 8.4 EOS 文件存储。

查看 EOSCTA 目录

命令格式:

eos root://xxx.ihep.ac.cn ls  
或者:
xrdfs root://xxx.ihep.ac.cn ls
向 EOSCTA 读写文件之前,用户要先检查是否有 EOSCTA 目录。

  1. 普通用户查看

    eos ls /eos/组名/用户名
    
  2. BES 实验组用户查看

    eos root://bescta01.ihep.ac.cn ls -l /eos/bes3/run
    
  3. BES 在线用户查看

    eos root://bescta01.ihep.ac.cn ls -l /eos/bes3/offline
    
  4. JUNO 用户查看

    eos root://junocta01.ihep.ac.cn ls -l /eos/juno
    
  5. LHAASO 用户查看

    eos root://laso01.ihep.ac.cn ls -l /eos/laso
    
  6. HXMT 用户查看

    eos root://laso01.ihep.ac.cn ls -l /eos/hxmt
    
  7. HEPS 用户查看

    eos root://xxx.ihep.ac.cn ls -l /eos/heps
    
  8. DYB 用户查看

    eos root://bescta01.ihep.ac.cn ls -l /eos/dyb
    
  9. YBJ 用户查看

    eos root://laso01.ihep.ac.cn ls -l /eos/ybj
    

如果没有用户可以操作的磁带库目录,请与计算中心联系。

查看文件状态

eos ls -ly 命令可以查看文件在 EOSCTA 中的状态。

eos ls -ly /eos/juno/juno-raw/global_trigger/00016000/00016600/16692/RUN.16692.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260717230430.051.dat
eos ls -ly /eos/juno/juno-raw/global_trigger/00016000/00016600/16658/RUN.16658.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260715172928.001.dat
eos ls -ly /eos/juno/juno-raw/global_trigger/00016000/00016600/16692/RUN.16692.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260717232121.064.dat

输出示例:

d1::t1   -rw-r--r--   2 junospad juno       5028937795 Jul 17 23:08 RUN.16692.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260717230430.051.dat
d0::t1   -rw-r--r--   1 junospad juno       5094192704 Jul 16 01:56 RUN.16658.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260715172928.001.dat
d1::t0   -rw-r--r--   1 junospad juno       5121071095 Jul 17 23:25 RUN.16692.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260717232121.064.dat

其中:

  • d1::t1 表示有磁盘副本和磁带副本
  • d1::t0 表示有磁盘副本但尚未写到磁带
  • d0::t1 表示已经写到磁带已无磁盘副本

有磁盘副本的文件,可以像正常的 EOS 文件一样进行数据拷贝,没有磁盘副本的则需要参考下文数据取回进行。

数据备份

使用 eos cp 或 xrdcp 命令将数据备份到 EOSCTA 中。

# XrdCP
xrdcp /local/file root://eoscta//eos/file
xrdcp root://remote//file root://eoscta//eos/file
# EOS CP
eos cp /local/file /eos/file
eos cp root://remote/file /eos/file

数据取回

从 EOSCTA 中取回数据是一个复合过程。

  1. eos ls -ly 查询是否有磁盘副本

    eos ls -ly /eos/juno/juno-raw/global_trigger/00016000/00016600/16658/RUN.16658.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260715172928.001.dat
    

    输出示例:

    d0::t1   -rw-r--r--   1 junospad juno       5094192704 Jul 16 01:56 RUN.16658.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260715172928.001.dat
    
  2. xrdfs prepare 召回文件

    xrdfs root://junocta01.ihep.ac.cn prepare -s RUN.16692.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260717232121.064.dat
    

    输出示例:

    04462401de00000203320000000000000150:6e957524.6a0a672f:2:1784302337
    
  3. 查询召回状态

    eos ls -ly /eos/juno/juno-raw/global_trigger/00016000/00016600/16658/RUN.16658.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260715172928.001.dat
    

    或者:

    xrdfs root://junocta01.ihep.ac.cn query prepare 04462401de00000203320000000000000150:6e957524.6a0a672f:2:1784302337 /eos/juno/juno-raw/global_trigger/00016000/00016600/16658/RUN.16658.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260715172928.001.dat
    

    输出示例:

    {
            "request_id" : "04462401de00000203320000000000000150:6e957524.6a0a672f:2:1784302337",
            "responses" :
            [
                    {
                            "error_text" : "",
                            "has_reqid" : true,
                            "on_tape" : true,
                            "online" : false,
                            "path" : "/eos/juno/juno-raw/global_trigger/00016000/00016600/16658/RUN.16658.JUNODAQ.Physics.ds-daqs5-0.global_trigger.20260715172928.001.dat",
                            "path_exists" : true,
                            "req_time" : "1784302338",
                            "requested" : true
                    }
            ]
    }
    

    d0::t1 或 "online": false 表示还未从磁带中取回,d1::t1 或 "online": true 表示已经从磁带中取回。

  4. 拷贝到外部存储

    eos cp /eos/file/ /external/storage/file
    # 或者
    xrdcp root://eoscta//eos/file /external/storage/file
    

重命名文件或目录

用 eos mv 或 eos file rename 进行。

eos mv old_path new_path
eos file rename old_path new_path

创建新目录

使用 eos mkdir,类似于 Linux 操作系统命令的 mkdir。命令格式:

eos mkdir /eos/dir

新的用户目录由管理员或用户创建。

删除文件或目录

eos rm 命令用于删除 EOS 文件或目录,其也支持目录的递归删除(-r 选项)。命令格式:

eos rm /eos/path/to/delete

注意

删除的文件无法恢复,请谨慎使用删除命令!

修改文件权限

eos chmod 命令用于修改文件权限。 命令格式:

eos chmod acl_right /eos/path
示例如下:
eos chmod 750 /eos/juno/path/to/file
注意文件权限以八进制表示。

8.6.4 磁带库使用注意事项

只能保存大文件(>100MB)

小文件会导致磁带空间的浪费。如果有小文件需要保存,建议先打包成为一个大文件后,再写入磁带。打包命令举例:

tar -cvf txt.tar *.txt        # 将目录中的所有 txt 文件打包成 txt.tar
tar -cvf home.tar /myhome     # 将 myhome 目录打包成 home.tar
tar -czvf data.tar.gz /data01 # 将 /data01 目录压缩并打包成 data.tar

EOSCTA 不是文件备份系统

EOSCTA 是磁带库存储和管理系统,不具有自动备份文件的能力,某个文件的重复删除和写入会导致空间的浪费。

8.6.5 CASTOR 迁移的目录

由于之前使用过 CASTOR 作为磁带库管理软件,已将 CASTOR 存储的数据都迁移到 EOSCTA,下表为对应目录,方便用户查找。 | CASTOR目录 | EOSCTA目录 | | ------ | ------ | | /castor/ihep.ac.cn/bes/bes2 | /eos/bes3/castor/bes2 | | /castor/ihep.ac.cn/bes/epcback | /eos/bes3/castor/epcback | | /castor/ihep.ac.cn/bes/offline | /eos/bes3/offline | | /castor/ihep.ac.cn/bes/run | /eos/bes3/run | | /castor/ihep.ac.cn/dyb/dybfs | /eos/dyb/dybfs |

常见问题(FAQ)

见常见问题。

🤖 AI 助手
💬 快速提问 ×

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