本文介绍如何实现文件存储 vePFS 与对象存储 TOS 之间的数据流动。
加载数据集场景(TOS->vePFS):数据集从 TOS 流动到 vePFS,用于数据清洗和 GPU 训练。
训练数据归档场景(vePFS->TOS):GPU 训练的 CheckPoint 数据和训练结果归档到的至对象存储。
ECS 和 TOS 带宽均满足数据流动需求。
已创建对象存储 Bucket,具体步骤,请参见创建存储桶。
已在 ECS 挂载文件存储 vepfs,具体步骤,请参见挂载 vePFS。
已在 ECS 安装 tosutil 工具并完成初始化,具体步骤,请参见 安装 tosutil 和初始化 tosutil。
已在 ECS 实例安装 tmux 工具,避免远程连接异常断开,导致数据同步中断。安装命令如下:
#以 centos 系统为例 yum install tmux -y
tmux 常用命令如下。
新建 tmux 窗口,sessioname 是变量,您自定义的会话名称 # tmux new -s sessioname 退出 tmux 窗口 # tmux detach 查看 tmux 窗口 # tmux ls 加载已经创建的 tmux 窗口,sessioname 是 "tmux ls" 查询到的会话名称 # tmux a -t sessioname
本文以 Centos 系统的 ECS 实例为例,介绍如何将对象存储的数据拷贝至 vePFS。
登录 ECS 实例。
执行以下命令,切换到 tmux,避免迁移过程中会话断开。
tmux new -s target1
执行以下命令,将对象存储 bucket 中的数据拷贝至 vePFS。
./tosutil cp tos://bucketname/sourcedir /mnt/vepfs/ -r -u -j=XX -p=XX -nfj=XX
主要参数说明如下。
参数 | 说明 |
---|---|
bucketname | 对象存储 Bucket 名称。 |
sourcedir | 需要拷贝数据的目录名称。 |
-r | 表示执行批量操作。 |
-j | 批量任务的最大并发数,可以根据业务需求调整。 |
-p | 每个分片任务的最大并发数,可以根据业务需求调整。 |
-u | 增量下载对象存储中数据集,设置该参数后,每次下载时均会对比 TOS 与 vePFS 数据,只下载新增和更新的文件。 |
-nfj | 批量任务的处理普通文件或对象(非分片任务)的最大并发数,仅在批量操作时生效。 |
-exclude | 上传或下载对不包含文件的名称匹配模式,支持 ? 和 * 作为通配符。 |
-flat | 上传或下载对象时不包含相对父目录。 |
查看加载数据集结果,示例返回如下。
返回参数说明如下。
参数 | 说明 |
---|---|
Succeed count is | 下载 TOS 数据集成功的文件数量,包含新增和已经存在跳过的文件。 |
Failed count is | 下载 TOS 数据集失败的文件数量。 |
Skip count is | vePFS 中已经存在跳过的文件数。 |
Succeed bytes is | 下载 TOS 数据集成功的文件容量。 |
Task id is | tosutil 上传的任务 id,根据该 id 可以查询下载成功和失败的文件清单。 |
说明
使用 tosutil 工具批量上传、下载对象存储文件时,任务执行完成后会生成成功和失败的任务清单,默认的存储文件夹为配置文件中的 defaultOutputDir
参数,默认路径/root/.tosutil_output
,详细说明,请参见 tosutil 配置文件。
本文以 Centos 系统的 ECS 实例为例,介绍如何将 vePFS 中的数据拷贝至对象存储 TOS。
登录 ECS 实例。
执行以下命令,切换到 tmux,避免迁移过程中会话断开。
tmux new -s target1
执行以下命令,将 vePFS 中的数据拷贝至对象存储。
./tosutil cp /mnt/vepfs/sourcedir tos://bucketname -r -u -j=XX -p=XX -nfj=XX
主要参数说明如下。
参数 | 说明 |
---|---|
sourcedir | vePFS 待拷贝的目录名称。 |
bucketname | 对象存储目的 Bucket 名称。 |
-r | 表示执行批量操作。 |
-j | 批量任务的最大并发数,可以根据业务需求调整. |
-p | 每个分片任务的最大并发数,可以根据业务需求调整. |
-u | 增量下载对象存储中数据集,设置该参数后,每次下载时均会对比 TOS 与 vePFS 数据,只下载新增和更新的文件。 注意 vePFS 删除的数据不会在 TOS 删除。 |
-nfj | 批量任务的处理普通文件或对象(非分片任务)的最大并发数,仅在批量操作时生效。 |
-exclude | 上传或下载对不包含文件的名称匹配模式,支持 ? 和 * 作为通配符 |
查看数据归档结果.
返回参数说明如下。
参数 | 说明 |
---|---|
Succeed count is | 上传 TOS 数据集成功的文件数量,包含新增和已经存在跳过的文件。 |
Failed count is | 上传 TOS 数据集失败的文件数量。 |
Skip count is | TOS 中已经存在跳过的文件数。 |
Succeed bytes is | 上传 TOS 数据集成功的文件容量。 |
Task id is | tosutil 上传的任务 id,根据该 id 可以查询下载成功和失败的文件清单。 |
说明
使用 tosutil 工具批量上传、下载对象存储文件时,任务执行完成后会生成成功和失败的任务清单,默认的存储文件夹为配置文件中的 defaultOutputDir
参数,默认路径/root/.tosutil_output
,详细说明,请参见 tosutil 配置文件。