Skip to main content

集成云盘

独立账号

高性能计算集群用户可以使用集群账号直接登录云盘,用户名为集群账号@hpc.nju.edu.cn,密码即集群账号密码;如集群账号为yaoge,用户名填写yaoge@hpc.nju.edu.cn。首次使用需要登录网页端激活账号,但集群账号不能使用云盘的上下传外链功能。

云盘上的集群账号与南京大学统一身份认证账号相互独立,如集群账号yaoge@hpc.nju.edu.cn和南京大学统一身份认证账号0102003是两个完全独立的账号,需要分别激活才能使用。

文件同步

通过云盘的多平台多终端同步功能,可将集群中的目录和本地计算机的目录同步,对本地目录的操作几乎立刻反应在集群的目录中,不再需要通过 SFTP 上下传文件。

  • 计算结果输出到集群同步目录中,本地计算机会自动下载,可在本地直接查看和编辑输出文件;
  • 计算输入文件放到本地同步目录中,集群会自动下载,直接引用输入文件即可提交作业。

客户端

登录节点已安装云盘同步客户端和挂载盘客户端

除官方客户端外,也支持rclone便捷操作。

挂载盘命令行客户端

  1. 获取Token(<username>替换为集群账号,<password>替换为密码)

    curl -d 'username=<username>@hpc.nju.edu.cn' -d 'password=<password>' https://box.nju.edu.cn/api2/auth-token/
    
  2. 创建配置文件~/seadrive.conf<username>替换为集群账号,<token>替换为上一步的返回值

    [account]
    server = https://box.nju.edu.cn
    username = <username>@hpc.nju.edu.cn
    token = <token>
    is_pro = true
    [general]
    client_name = hpc-login
    [cache]
    size_limit = 10GB
    clean_cache_interval = 10
    
  3. 启动挂载盘,命令在前台运行,新开一个窗口进行其它操作

    seadrive -c ~/seadrive.conf -f -d ~/.seadrive/data -l ~/.seadrive/data/logs/seadrive.log ~/SeaDrive
    
  4. 如果报错 Transport endpoint is not connected ,执行:fusermount -u ~/SeaDrive

  5. ~/SeaDrive 目录就是云盘挂载在本地的目录,可以直接读写访问

同步命令行客户端

  1. 创建客户端本地数据目录(目录名可更改)
    mkdir ~/Seafile
    
  2. 初始化客户端并指定本地数据目录(上一步创建的目录)
    seaf-cli init -d ~/Seafile
    
  3. 启动客户端
    seaf-cli start
    
  4. 列出云盘资料库ID(<username>替换为集群账号)
    seaf-cli list-remote -s https://box.nju.edu.cn -u <username>@hpc.nju.edu.cn
    
  5. 将本地目录与云盘资料库同步(<library-id>替换为上一步列出的某个资料库ID,<folder>替换为本地目录)
    seaf-cli sync -s https://box.nju.edu.cn -u <username>@hpc.nju.edu.cn -l <library-id> -d <folder>
    
    将云盘资料库下载到本地目录
    seaf-cli download -s https://box.nju.edu.cn -u <username>@hpc.nju.edu.cn -l <library-id> -d <folder>
    
  6. 查看当前同步状态
    seaf-cli status
    
  7. 解除本地目录同步
    seaf-cli desync -d <folder>
    
  8. 停止客户端
    seaf-cli stop
    

使用 rclone 进行云端文件操作

rclone 是一个强大的云存储管理工具,云盘也在其支持的存储类型内。使用rclone可以更加符合命令行用户使用习惯地去存取云盘文件。

  1. 启用rclone工具
    module load rclone
    
  2. 初次使用rclone需要进行设置。在~/.config/rclone/目录下创建一名为rclone.conf的文件,内容(<username>替换为集群账号)如下:
    ;不一定必须叫 hpc_box,你可以任意设置这个标签,但是后文必须相应地使用该标签
    [hpc_box]
    type = seafile
    url = https://box.nju.edu.cn
    user = <username>@hpc.nju.edu.cn
    2fa = false ;如果开启了两步认证,设置为true
    2fa = false
    
  3. 设置密码<password>替换为密码:
    rclone config update hpc_box pass <password>
    
  4. 列出云端目录:
    rclone lsd hpc_box:
    
  5. 创建云端资料库(library替换为资料库名):
    rclone mkdir hpc_box:<library> --seafile-create-library
    #例如, rclone mkdir hpc_box:test --seafile-create-library 将在云盘创建一个名为`test`的资料库。
    
  6. 向云端上传文件。destination_path替换为需要上传的本地路径,<source_path>替换为云端路径:
    rclone copy <destination_path> hpc_box:<source_path>
    
    #例如,假设本地当前目录下有个 myfile.txt 文件:
    #rclone copy myfile.txt hpc_box:test 将把本地当前目录的 myfile.txt 文件上传至云端的 test 资料库下。
    #再例如,假设本地当前目录下有个 myfolder 文件夹,里面有很多文件:
    #rclone copy myfoler hpc_box:test 将把本地当前目录的 myfolder 文件夹内的所有文件夹和文件(不包括 myfolder 自身)上传至云端的 test 资料库下。
    
  7. 从云端下载文件:
    rclone copy hpc_box:<source_path> <destination_path>
    
    #例如,假设云端资料库`test`下有个 myfile.txt 文件:
    #rclone copy hpc_box:test/myfile.txt . 将把云端资料库`test`下的 myfile.txt 下载至本地当前目录。
    #例如,假设云端资料库`test`下有个 myfolder 文件夹,里面有很多文件:
    #rclone copy hpc_box:test/myfolder . 将把云端资料库`test`下的 myfolder 文件夹内的所有文件夹和文件(不包括 myfolder 自身)下载至本地当前目录。
    
  8. 在传输过程中,如果加上-P会显示进度条,强烈建议添加;如果上传或下载过程中,文件较多,建议再加上--no-traverse避免列出文件导致传输时间过长:
    rclone copy hpc_box:<source_path> <destination_path> -P --no-traverse
    
    #例如,假设云端资料库`test`下有个 myfile.txt 文件:
    #rclone copy hpc_box:test/myfile.txtmyfolder . -P --no-traverse 将把云端资料库`test`下的 myfile.txtmyfolder 文件夹内的所有文件夹和文件(不包括 myfolder 自身)下载至本地当前目录,且显示进度条,不列出所有文件
  9. 更多rclone的用法见rclone - commands;若有加密资料库等其他云盘需求,或查看rclone对云盘的支持功能,请参考rclone - seafilerclone - storage systems