将阿里云中数据传输到其他超算服务器

发布于:2024-04-27 ⋅ 阅读:(24) ⋅ 点赞:(0)

目录

方法一:在阿里云中连接超算,然后使用rsync(速度慢)

方法2:rclone(速度很快,100G只花了大约20min)


方法一:在阿里云中连接超算,然后使用rsync/scp(速度慢)

1.在阿里云中制作密钥

[root@host ~]$ ssh-keygen <== 制作密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <== 密钥密码,或者按Enter设为空
Enter same passphrase again: <== 再次输入密钥密码
Your identification has been saved in /root/.ssh/id_rsa. <== 私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公钥

 公钥/root/.ssh/id_rsa.pub     私钥/root/.ssh/id_rsa

2.将公钥内容复制添加到超算用户目录下.ssh/authorized_keys文件(可使用ssh-copy-id user@hostname ,未验证)后,

保证文件权限

chmod 600 authorized_keys
chmod 700 ~/.ssh

3.测试是否能够通过SHH密钥认证登录到远程服务器

ssh user@remote_server_ip
#例如ssh scxlab0069@BSCC-N32-H@ssh.cn-zhongwei-1.paracloud.com
#scxlab0069@BSCC-N32-H是超算user名 
#ssh.cn-zhongwei-1.paracloud.com是超算服务器ip 

 4.在阿里云中传输数据

rsync -avz --partial /mnt/data/oss_beijing/wzf/ scxlab0069@BSCC-N32-H@ssh.cn-zhongwei-1.paracloud.com:/home/bingxing2/ailab/group/ai4agr/wzf/
#其中/mnt/data/oss_beijing/wzf/是阿里云中数据路径 
#scxlab0069@BSCC-N32-H是超算user名 
#ssh.cn-zhongwei-1.paracloud.com是超算服务器ip  
#/home/bingxing2/ailab/group/ai4agr/wzf/是数据要复制到的路径

注:也可以采用scp

scp local_file user@hostname:remote_location        #将本地文件复制到远程服务器 

scp user@hostname:remote_file local_location        #将远程服务器上的文件复制到本地计算机

 

方法2:rclone(速度很快,100G只花了大约20min)

类似于阿里云OSS->单机

1.先在官网Rclone downloads上下载合适版本的rclone包到超算平台

例如我的超算服务器是CPU是 aarch64 架构 linux环境

2.配置rclone config 

创建rclone.conf文件 与下载的rclone-v1.66.0-linux-arm64文件位于同一目录下

内容模板为

[Aliyun]
type=s3
provider=Alibaba
access_key_id=xxxxxxxxxxxxxxxxxxx
secret_access_key=xxxxxxxxxxxxxxxxxxxxx
endpoint=oss-cn-beijing.aliyuncs.com
acl=private
bucket_acl=private

注意!!! 

  • OSS 的 access key 和在阿里云上面用的个人的 access key 不是一个东西

  • OSS 的 access key 问你的 leader

 3.传输文件指令

rclone copy --progress --transfers 200 --checkers 200 Aliyun:pjlab-3090-ai4bio/wzf/ 服务器目标目录

# Aliyun为config文件中配置名 pjlab-3090-ai4bio为oss桶名
#--transfers 200 --checkers 200 这两个参数为传输时的并发数和校验文件数
#如果找不到config文件 加上参数  --config rcloneconfig文件路径

#./rclone ls Aliyun:pjlab-3090-ai4bio/ 可以查看链接oss是否成功
#如果数据量大则可以使用nohup命令放在后台执行,通过tail -f logs-.log 来查看迁移进度
#例如 nohup rclone copy --progress --transfers 200 --checkers 200 Aliyun:pjlab-3090-ai4bio/wzf/ 服务器目标目录 >> logs-Mytest.log 2>&1 &

rclone补充

 阿里云oss->集群ceph桶(Ceph分布式存储系统)

rclone.conf文件配置模板

[cephhdd]
type = s3
provider = Ceph
access_key_id = xxxxxxx
secret_access_key = xxxxxx
endpoint = http://10.140.2.231:80
acl = private 

[Aliyun]
type=s3
provider=Alibaba
access_key_id=xxxxxxxxxxxxxxxxxxx
secret_access_key=xxxxxxxxxxxxxxxxxxxxx
endpoint=oss-cn-beijing.aliyuncs.com
acl=private
bucket_acl=private

注:阿里云OSS的access_key和 集群ceph桶的access_key不是同一个

传输文件指令(例如传输到s集群ceph的Mytest桶中)

rclone copy --progress --transfers 200 --checkers 200 Aliyun:pjlab-3090-ai4bio/wzf/ cephhdd:Mytest/  

参考:

两个服务器之间通过密钥免密传输文件_两台主机使用秘钥通信-CSDN博客