数据加载管理
更新时间:2023-09-27
应用场景
随着人工智能、自动驾驶和基因测序等新兴业务的兴起,非结构化数据量呈指数级增长。为了存储这些数据,越来越多的业务选择对象存储,但由于接口类型、性能等多种因素,应用程序往往更倾向于使用并行文件存储来进行数据计算与训练。为解决这一问题,数据加载功能实现了对象存储和并行文件存储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”); 但是当对象存储上的数据被覆盖或者被修改,连接关系将被中断。
删除限制
- 删除数据加载关系之前,需要先导出数据;
- 删除数据加载关系之后,目录将不可用。