数据流动(极速型L2)
适用范围
仅适用于极速型L2。
应用场景
随着人工智能、自动驾驶和基因测序等新兴业务的兴起,非结构化数据量呈指数级增长。为了存储这些数据,越来越多的业务选择对象存储,但由于接口类型、性能等多种因素,应用程序往往更倾向于使用并行文件存储来进行数据计算与训练。为解决这一问题,数据流动功能实现了并行文件存储PFS与对象存储BOS之间的数据同步,在保持海量数据在BOS中低成本存储的同时,获得高性能文件访问能力。
费用说明
- PFS数据流动功能当前免费公测中,若需使用可 提交工单 与我们联系。待公测结束进入收费阶段前会统一发布具体计费说明。
- 使用过程中BOS侧可能会收取对应的存储费用、请求费用等,详细说明参见 BOS计费项。
使用流程
创建任务
- 登录并行文件存储PFS控制台。
- 点击PFS实例ID。
- 在左侧导航栏,选择数据流动。
- 在数据流动页,点击创建任务按钮。
- 在创建任务对话框中,配置如下参数。
参数 | 说明 |
---|---|
任务名称 | 支持大小写字母、数字、中文、半角冒号(:)、下划线(_)或者短划线(-)。必须以大小字母或中文开头,长度为1~128个英文或中文字符。 |
任务类型 | 支持选择导入和导出任务。 |
冲突策略 | 在导入/导出数据时,遇到PFS与BOS存在文件名相同时的处理策略。 |
带宽上限 | 数据流动的传输带宽上限,单位:MB/s。 支持选择 说明:数据流动的传输带宽不能超过文件系统的IO带宽。 |
数据源地址 | 导入数据时,数据源地址是BOS路径,如bos://test1/;导出数据时,数据源地址是PFS路径,如/pfs/test1;数据源地址必须存在。 |
数据目的地址 | 导入数据时,数据目的地址是PFS路径,如/pfs/test1;导出数据时,数据目的地址是BOS路径,如bos://test1/;数据目的地址不存在会被自动创建。 |
任务报告地址 | 任务报告会以PFS实例ID+任务ID的形式进行命名,保存在您设置的BOS Bucket的自定义路径下。 |
说明:
- 数据流动使用过程中,系统会通过STS方式自动生成临时AK/SK,以获取BOS的临时操作权限。
- 每个数据流动任务在运行中时都会额外占用PFS所属VPC内的一个IP;
- PFS实例暂不支持和跨地域的BOS Bucket创建数据流动任务;
- 同一个BOS与不同PFS之间的数据流动任务数量不受限制,但如果一个PFS从该BOS中导入数据,同时另外一个PFS向该BOS中导出数据,会出现非预期数据内容,建议避免此类情况发生。
- 点击确定。
查看任务
在数据流动页面,可以按任务名称、任务ID、数据源地址、数据目的地址进行模糊搜索任务,支持按任务类型、任务状态、冲突策略筛选任务。查询到对应目标任务,可以查看数据流动任务的详细信息,包括任务名称/ID、任务状态、数据源地址、数据目的地址、冲突策略、创建时间和带宽上限。
数据流动任务常见状态说明:
状态 | 说明 |
---|---|
待处理 | 数据流动任务创建后会进入任务处理阶段,处理完成后进入执行中状态;当前单个 PFS 实例最多支持同时执行 10 个任务,超过限制时,新建任务可能需要较长时间等待处理;待处理的任务支持取消操作。 |
执行中 | 数据流动任务正在执行中,您可以通过进度条查看任务执行情况;执行中的任务支持取消操作。 |
成功 | 数据流动任务执行成功,您可以下载报告查看详细的执行情况。成功的任务支持下载报告、复制和删除操作。 |
任务失败 | 数据流动任务执行失败;任务失败的任务支持复制和删除操作。 |
取消中 | 数据流动任务正在取消中;取消中的任务不支持任何操作。 |
已取消 | 数据流动任务已被取消;已取消的任务支持复制和删除操作。 |
取消任务
在数据流动页面,可以取消待处理、执行中的任务。
说明:
- 任务取消后,当前正在同步的文件会停止同步,可能会导致文件数据不一致;而已同步过的文件会继续保留原样。
- 例如,当一个1TB的文件正在传输,如果您取消任务后,传输会立即停止。此时,由于仅传输了部分数据,该文件会和原文件的数据不一致。
删除任务
在数据流动页面,可以删除已取消、任务失败、成功的数据流动任务。
复制任务
在数据流动页面,可以通过复制任务,重复执行之前已经执行过的任务。
查看报告
数据流动任务完成后,可在数据流动页面下载任务报告。
报告示例:
## 格式:path size status
1mil/files_subpath_1/small_file_9996 4096 succ
1mil/files_subpath_1/small_file_9997 4096 succ
1mil/files_subpath_1/small_file_9998 4096 succ
1mil/files_subpath_1/small_file_9999 4096 succ
Summary
JobId: dflow-wRxZ7u
PFSId: pfs-WfBCTy
startTime: 2024-11-14 08:27:19
endTime: 2024-11-14 08:28:18
totalCount: 4
totalSize(KB): 4
skippedCount: 0
skippedSize(KB): 0
failedCount: 0
failedSize(KB): 0
processCount/second: 0.0667
processMB/second: 0.0001
类别 | 字段 | 说明 |
---|---|---|
文件信息(File) | path | 文件所在数据源地址。 |
size | 文件大小,单位为字节。 | |
status | 文件状态信息。 |
|
任务统计信息(Summary) | JobId | 数据流动任务ID |
PFSId | PFS实例ID | |
startTime | 任务开始执行时间 | |
endTime | 任务完成时间 | |
totalCount | 任务操作的文件总数。 | |
totalSize(KB) | 任务操作的文件总大小。 | |
skippedCount | 无需操作的文件总数,例如同名文件跳过操作 | |
skippedSize(KB) | 无需操作的文件总大小,例如同名文件跳过操作 | |
failedCount | 任务操作失败的文件总数。 | |
failedSize(KB) | 任务操作失败的文件总大小。 | |
processCount/second | 任务每秒操作的文件数。 | |
processMB/second | 任务每秒操作的文件大小。 |
使用限制
性能限制
操作类型 | 指标 | 说明 |
---|---|---|
导入任务 | GB级以上文件吞吐 | |
MB级文件每秒处理个数 | 单目录、多目录导入:上限1000个 | |
导出任务 | GB级以上文件吞吐 | |
MB级文件每秒处理个数 | 单目录、多目录导入:上限1000个 |
说明:无论导入/导出任务,实际的吞吐能力会受到PFS实例性能、BOS带宽、文件大小、文件数和数据量等影响。
数据流动限制
- 单个PFS实例最多支持创建200个数据流动任务,如配额用尽请手动删除其他任务;
- 单个PFS实例最多支持同时执行10个数据流动任务;
- PFS实例不支持和跨地域的BOS Bucket创建数据流动任务;
- 数据流动任务导入时只支持BOS中标准存储、低频存储和冷存储类型文件导入,归档存储类型文件会跳过,且报告中不显示相关信息;导出到BOS时导出数据默认设置成标准存储。
目录限制
- 导入导出时设置的PFS目录必须存在且不支持子目录嵌套(即父目录或子目录本身在执行数据流动任务时,子目录不能创建数据流动任务),PFS目录必须以/开头(例如/test/pre)且不能包括 . 和 .. 这两个目录;
- 导入导出时PFS和BOS目录长度限制1000字符;
- 单次数据流动任务目录内的文件或子目录数量并无上限限制,但是如果该目录被设定了Fileset,则需要关注Fileset的配额(inode)使用情况;
- 目录、文件名中的特殊字符需要谨慎使用,支持大小写字母、数字、感叹号(!)、短划线(-)、下划线(_)、半角句号(.)、星号(*)和半角圆括号(())。
导入导出限制
- 导入导出时,不会携带源文件本身属性(如文件权限等);
- 导入导出时,禁止修改数据源或者目的数据,否则会出现文件导入导出失败、文件内容非预期等;
- 导入导出时,禁止对数据目的地址和数据源地址的目录路径进行rename操作;
- 创建任务后,数据源内的新增数据无法保证能正常导入;
- 执行中的任务被取消,可能会导致目录中部分数据被修改;
- 特殊文件(如FIFO特殊文件、特殊块文件、特殊字符文件和套接字文件等)和空目录不支持导入导出,且报告中不显示相关信息;
- Symlink文件无法导出到BOS Bucket;
- Hardlink文件导出到BOS Bucket会存在多份数据;
- 数据流动过程中无法保证元数据的ctime属性不变;
- BOS Bucket上的文件导入到PFS时会自动设置默认文件属性。如:uid/gid会默认设置为0,atime/mtime/ctime会默认设置为实际导入时的时间;
- 导入时,BOS目录或文件和PFS本地文件或本地目录同名(例如BOS目录sample1和PFS本地文件sample1同名,BOS文件sample2和PFS本地目录sample2同名),会导致任务失败或导入文件失败。
- 数据流动任务执行过程中会在PFS根目录创建任务临时文件,在导出根目录时会一并将这些临时文件导出到BOS中。
常见问题
1. 为什么数据流动任务执行过程中,任务状态显示的进度会长时间卡在0%或者某个进度后,突然到达100%?
答:在数据流动任务执行时,系统会按每100个文件为一批进行处理。这批文件全部执行完毕后,任务进度才会更新。若该批文件中包含大量大文件,进度可能会长时间显示为0%或某个进度,这属于正常现象,请耐心等待任务完成。
2. 为什么有时候点击下载报告后会报错显示{"code":"NoSuchKey","message":"The specified key does not exist.","requestId":"3a740048-9812-4b85-b971-f547cb39d8af"}
?
答:数据流动任务报告是存储在您设置的BOS Bucket内,若您删除了任务报告会导致下载链接失效。