集成云盘
独立账号
高性能计算集群用户可以使用集群账号直接登录云盘,用户名为集群账号@hpc.nju.edu.cn
,密码即集群账号密码;如集群账号为yaoge
,用户名填写yaoge@hpc.nju.edu.cn
。首次使用需要登录网页端激活账号,但集群账号不能使用云盘的上下传外链功能。
云盘上的集群账号与南京大学统一身份认证账号相互独立,如集群账号yaoge@hpc.nju.edu.cn
和南京大学统一身份认证账号0102003
是两个完全独立的账号,需要分别激活才能使用。
文件同步
通过云盘的多平台多终端同步功能,可将集群中的目录和本地计算机的目录同步,对本地目录的操作几乎立刻反应在集群的目录中,不再需要通过 SFTP 上下传文件。
- 计算结果输出到集群同步目录中,本地计算机会自动下载,可在本地直接查看和编辑输出文件;
- 计算输入文件放到本地同步目录中,集群会自动下载,直接引用输入文件即可提交作业。
客户端
登录节点已安装云盘同步客户端和挂载盘客户端
- 同步客户端命令行界面:seaf-cli(Linux命令行同步客户端手册)
- 同步客户端图形化界面:seafile-applet
- 挂载盘客户端命令行界面:seadrive(Linux命令行挂载盘手册)
- 挂载盘客户端图形化界面:seadrive-gui
除官方客户端外,也支持rclone
便捷操作。
挂载盘命令行客户端
-
获取Token(
<username>
替换为集群账号,<password>
替换为密码)curl -d 'username=<username>@hpc.nju.edu.cn' -d 'password=<password>' https://box.nju.edu.cn/api2/auth-token/
-
创建配置文件
~/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
-
启动挂载盘,命令在前台运行,新开一个窗口进行其它操作
seadrive -c ~/seadrive.conf -f -d ~/.seadrive/data -l ~/.seadrive/data/logs/seadrive.log ~/SeaDrive
-
如果报错
Transport endpoint is not connected
,执行:fusermount -u ~/SeaDrive
-
~/SeaDrive
目录就是云盘挂载在本地的目录,可以直接读写访问
同步命令行客户端
- 创建客户端本地数据目录(目录名可更改)
mkdir ~/Seafile
- 初始化客户端并指定本地数据目录(上一步创建的目录)
seaf-cli init -d ~/Seafile
- 启动客户端
seaf-cli start
- 列出云盘资料库ID(
<username>
替换为集群账号)seaf-cli list-remote -s https://box.nju.edu.cn -u <username>@hpc.nju.edu.cn
- 将本地目录与云盘资料库同步(
<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>
- 查看当前同步状态
seaf-cli status
- 解除本地目录同步
seaf-cli desync -d <folder>
- 停止客户端
seaf-cli stop
使用 rclone 进行云端文件操作
rclone
是一个强大的云存储管理工具,云盘也在其支持的存储类型内。使用rclone
可以更加符合命令行用户使用习惯地去存取云盘文件。
- 启用
rclone
工具module load rclone
- 初次使用
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 - 设置密码
<password>
替换为密码:rclone config update hpc_box pass <password>
- 列出云端目录:
rclone lsd hpc_box:
- 创建云端资料库(
library
替换为资料库名):rclone mkdir hpc_box:<library> --seafile-create-library #例如, rclone mkdir hpc_box:test --seafile-create-library 将在云盘创建一个名为`test`的资料库。
- 向云端上传文件。
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 资料库下。
- 从云端下载文件:
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 自身)下载至本地当前目录。
- 在传输过程中,如果加上
-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 自身)下载至本地当前目录,且显示进度条,不列出所有文件。 - 更多
rclone
的用法见rclone - commands;若有加密资料库等其他云盘需求,或查看rclone
对云盘的支持功能,请参考rclone - seafile或rclone - storage systems。