数据加载管理
更新时间:2024-08-22
适用范围
仅适用于标准型,增强型和极速型。
应用场景
随着人工智能、自动驾驶和基因测序等新兴业务的兴起,非结构化数据量呈指数级增长。为了存储这些数据,越来越多的业务选择对象存储,但由于接口类型、性能等多种因素,应用程序往往更倾向于使用并行文件存储来进行数据计算与训练。为解决这一问题,数据加载功能实现了对象存储和并行文件存储PFS之间的对接和打通。PFS可以加载对象存储中的数据进行训练,然后将训练后的数据导回到对象存储。
操作指导
导入数据
- 进入PFS控制台,点击实例ID,进入实例详情页。
- 依次点击“数据加载管理” -> “添加BOS数据加载”,可新建数据加载。
- 在弹出的数据加载页面填写如下信息:
参数 | 说明 |
---|---|
名称 | 请输入数据加载任务的名称 |
pfs目录 | 请输入对象存储bucket将要链接到的pfs路径。该路径不支持根目录,需要填根目录下已创建好的目录。例如: (a) 挂载命令为:“./cmd_line.sh mount --cluster 挂载点 --source_dir / --dest_dir /mnt/pfs ” (b) 需要在 /mnt/pfs/ 下创建一个子目录,例如example (c) 在pfs目录处填写: /example |
BOS bucket | 请输入源数据所在的bucket |
对象数据前缀 | 数据加载可以选择指定对象前缀的导入,建立之后,只导入含有该前缀的对象数据 |
access key | 请输入Access Key 如何获取AKSK? |
secret key | 请输入Secret Access 如何获取AKSK? |
数据预加载 | 是:bucket中的数据会预先导入到PFS中 否:数据不会预先加载到PFS中,在被读取时再加载到PFS中 |
- 点击“确定”后开始数据加载,数据加载时长与数据量大小有关,完成后会提示“数据加载完成”。
导出数据
点击操作栏的“立即导出”即可将PFS目录下的文件导出到BOS Bucket中,导出时请填写如下信息:
- 请选择导出到源Bucket或其它Bucket;
- 如果选择导出到其它Bucket,请填写具体的Bucket、AK、SK信息;
- PFS目录下的文件可以选择删除或保留。
使用限制
目录限制
- 仅支持对已存在的空目录添加数据加载,目录以 / 开头;
- 目录不支持重复添加数据加载,即不支持删除 link 再新建;
- 单个PFS实例最多支持创建 512 个数据加载目录 ;
- 数据加载目录的深度最大为 16 层;
- 单个数据加载目录内的文件或子目录数量上限是 1000 万个;
- 数据加载目录下的子目录不支持嵌套,即数据加载目录下的子目录不能再建数据加载目录;
- 关于数据加载,文件最大为640GiB。对于特别大的文件,需要手动迁移;
- 对象存储里面 Object key,如果是/xxxxx(大于 256 个字符)/xxxxxxxx,这种大于 256 个字符的目录是创建不出来的。
导入导出限制
- 导入/导出的过程中,都会阻塞I/O(即执行数据导入和导出时,程序或线程的输入/输出会被阻塞,直到数据的读取或写入完成);
- 导入/导出过程中,系统默认为阻塞I/O,数据加载目录禁止操作,重命名数据加载目录会失败;
- 导出时,系统阻塞I/O,未关闭的 I/O 会返回 error;
- 暂不支持多次导出,仅支持一次导出。
Rename 限制
- 数据加载根目录不支持 rename 操作;
- 在数据加载的根目录下允许 rename,不允许子目录超出数据加载根目录去做 rename 操作(例如:不允许子目录 move 出根目录之外;外面的目录 rename 入数据加载目录);
- 数据非预加载模式,在数据导入之前,文件层 rename 文件名称,对象存储上对应的文件会保持同 rename文件的链接(即:“对象 A”已导入元数据为"文件 A",数据未加载。修改“文件 A”名称为“文件 B'”,则“文件 B'”加载数据的时候,还是链接到“对象 A”); 但是当对象存储上的数据被覆盖或者被修改,连接关系将被中断。
删除限制
- 删除数据加载关系之前,需要先导出数据;
- 删除数据加载关系之后,目录将不可用。
常见问题
1.数据加载的传输速率是多少?
无论是导入(将BOS数据导入到PFS)还是导出(将PFS数据导出到BOS),数据传输速率均与“PFS实例性能、BOS带宽、文件大小"有关。其中:
- PFS实例性能随购买容量线性扩展。详见:产品规格。
- BOS带宽:BOS 对单 Bucket 设置的内网带宽阈值为 50 Gbit/s (约6GBps)。详见:BOS使用限制。
- 文件大小:小文件通常是指文件大小在几KB到几MB之间的文件,小文件传输速率约2600个/秒;大文件通常是指文件大小在几百MB到几GB,甚至更大,大文件传输速率主要与带宽有关。
数据传输速率示例:
- 大文件场景:假设用户购买了50TB的极速型,此时PFS实例的吞吐能力为50TB*230MBps/TB ≈ 11GBps。 若要将50TB的数据从BOS加载到PFS中,数据传输速率 = min{PFS吞吐,BOS吞吐} = {11GBps,6GBps} = 6GBps,数据传输时长 = 50TB*1024 / 6GBps ≈ 2.4小时
- 小文件场景:假设用户要将1亿个小文件从BOS加载到PFS中,数据传输时长 = 1亿 / 2600 ≈ 10 小时