存储联动
概述
AI训练和推理、高性能数据预处理、EDA、渲染、仿真等场景下,您可以通过SFS Turbo文件系统来加速OBS对象存储中的数据访问。SFS Turbo文件系统支持无缝访问存储在OBS对象存储桶中的对象。您可以指定SFS Turbo内的目录与OBS对象存储桶进行关联,然后通过创建导入导出任务实现数据同步。您可以在上层训练等任务开始前将OBS对象存储桶中的数据提前导入到SFS Turbo中,加速对OBS对象存储中的数据访问;上层任务产生的中间和结果等数据可以直接高速写入到SFS Turbo缓存中,中间缓存数据可被下游业务环节继续读取并处理,结果数据可以异步方式导出到关联的OBS对象存储中进行长期低成本存储。同时,您还可以配置缓存数据淘汰功能,及时将长期未访问的数据从SFS Turbo缓存中淘汰,释放SFS Turbo高性能缓存空间。
使用限制
- 支持存储联动的SFS Turbo文件系统规格有:20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB。
- SFS Turbo目录和OBS配置联动后不支持以下操作:硬链接、重命名和目录配额。
- 单个SFS Turbo文件系统最多可配置16个OBS联动目录。
- 数据淘汰只与数据淘汰时间有关,与SFS Turbo文件系统存储空间大小无关,用户需要根据实际业务场景评估文件系统存储空间用量,权衡数据淘汰时间。
- 创建 OBS 后端存储库,依赖的服务是对象存储服务 OBS。用户需要额外配置OBS Adminstrator权限。
- 同一层目录下不允许同样名称的文件和目录存在。
- 不支持超长路径,数据流动支持的路径最大长度是1023字符。
- 开启WORM策略的OBS桶,只能从OBS桶导入数据到SFS Turbo,无法从SFS Turbo导出数据到OBS桶。
绑定OBS桶
- 登录高性能弹性文件服务管理控制台。
- 在文件系统列表中,单击创建的文件系统名称,进入文件系统详情页面。
- 进入“绑定后端存储”页签,单击“绑定OBS桶”。
图1 绑定OBS桶
- 在右侧弹窗“绑定OBS桶”中,填写如下参数。
表1 参数说明 参数
含义
限制
配置后可编辑
联动目录名称
SFS Turbo文件系统根目录下会以该名称创建一个子目录,该目录将绑定对应的OBS桶,且该目录名称不能和已有目录重名。
- 子目录名称不能重复。
- 子目录名称必须是文件系统根目录下不存在的目录名。
- 子目录名称不能是“.”或“..”。
不支持
桶名
OBS存储桶桶名。
- 无法绑定不存在的存储桶。
- 目前仅支持OBS存储桶,不支持OBS并行文件系统。
不支持
OBS区域域名
OBS区域域名,即OBS的终端节点。
OBS存储桶必须和SFS Turbo文件系统在同一个Region。
不支持
- 勾选“将OBS桶的读写权限通过桶策略授权给SFS Turbo云服务”,并单击“确定”,完成绑定。
![](https://support.huaweicloud.com/usermanual-sfsturbo/public_sys-resources/note_3.0-zh-cn.png)
- 目前仅支持OBS存储桶,不支持OBS并行文件系统。
- 绑定OBS桶时,会在OBS桶上添加名为"Sid": "PolicyAddedBySFSTurbo"的桶策略,请不要修改或删除该桶策略,否则可能导致联动功能异常。
- 绑定OBS桶后,OBS桶原有的桶策略会被名为"Sid": "PolicyAddedBySFSTurbo"的桶策略覆盖。
元数据导入功能
SFS Turbo文件系统绑定OBS桶后,可以使用元数据导入功能。
当您使用SFS Turbo文件系统访问OBS桶的数据时,您需要使用元数据导入功能提前将OBS数据文件的元数据(名称、大小、最后修改时间)导入到SFS Turbo文件系统中。只有元数据导入之后,您才可以在文件系统的联动子目录中去访问OBS存储桶中的数据。元数据导入功能仅会导入文件元数据,文件内容会在首次访问时从OBS存储桶中加载并缓存在SFS Turbo中,后续重复访问会直接命中,无需再从OBS存储桶中加载。
SFS Turbo文件系统提供快速导入和附加元数据导入两种元数据导入方式。元数据导入之后,您可以在联动子目录下看到导入的目录和文件列表。
- 快速导入:当您绑定的OBS桶中存储的数据不是来源于SFS Turbo导出时,可以选择快速导入方式,快速导入方式仅会导入OBS的元数据(名称、大小、最后修改时间),不会导入其它附加元数据(如uid、gid、mode),SFS Turbo会生成默认的附加元数据(uid:0、gid:0、目录权限:750、文件权限:640),通过创建数据导入导出任务接口可以指定导入的目录和文件的权限。快速导入能够提供更快的元数据导入性能,推荐您使用快速导入。
- 附加元数据导入:当您绑定的OBS桶中存储的数据是来源于SFS Turbo导出时,可以使用附加元数据导入方式,附加元数据导入方式会导入OBS的元数据(名称、大小、最后修改时间)以及来源于SFS Turbo导出时的附加元数据(如uid、gid、mode)。
- 在绑定OBS桶之后,单击“元数据导入”选项。
图2 元数据导入
- “导入前缀”请填写绑定OBS桶内对象的前缀,可以具体到某个对象名。如果要导入整个OBS桶内的所有对象,则不用填写。
- 勾选“附加元数据导入”将会采用附加元数据导入方式,不勾选“附加元数据导入”将采用快速导入方式。
- 单击“确定”,提交导入任务。
![](https://support.huaweicloud.com/usermanual-sfsturbo/public_sys-resources/note_3.0-zh-cn.png)
在OBS数据导入到SFS Turbo之后,如果OBS桶中的数据发生新增或修改,需要重新导入到SFS Turbo中。
数据导入功能
SFS Turbo文件系统绑定OBS桶后,可以使用数据导入功能。
默认情况下,元数据导入完成后,数据不会导入到SFS Turbo文件系统中,初次访问会按需从OBS中加载数据,对文件的第一次读取操作可能耗时较长。如果您的业务对时延比较敏感,并且您知道业务需要访问哪些目录和文件,比如AI训练等场景涉及海量小文件,对时延比较敏感,可以选择提前导入指定目录和文件。
数据导入功能会同时导入元数据和数据内容,元数据将会采用快速导入方式,不会导入其他附加元数据(如uid、gid、mode)。
- 在绑定OBS桶之后,单击“数据导入”选项。
图3 数据导入
- “对象路径”请填写绑定OBS桶内对象的路径(不包含桶名)。
OBS桶中的对象路径(不包含桶名),目录需以“/”结尾。
- 如果要导入OBS桶内所有对象,则不用填写对象路径。SFS Turbo会将数据导入到联动目录下,且联动目录下的文件路径和OBS桶里的对象路径保持一致。
- 对象路径示例(“/mnt/sfs_turbo”为您的挂载目录,“output-1”为您的联动目录名称):
- 如对象路径为dir/,则会导入到“/mnt/sfs_turbo/output-1/dir”
- 如对象路径为dir/file, 则会导入到“/mnt/sfs_turbo/output-1/dir/file”
- 如对象路径为空,则会直接导入到“/mnt/sfs_turbo/output-1”
- 单击“确定”,提交导入任务。
![](https://support.huaweicloud.com/usermanual-sfsturbo/public_sys-resources/note_3.0-zh-cn.png)
在OBS数据导入到SFS Turbo之后,如果OBS桶中的数据发生新增或修改,需要重新导入到SFS Turbo中。
通过API使用数据导入功能的具体操作请参考创建SFSTurbo 和 OBS 之间的联动任务。
数据导出功能
SFS Turbo文件系统绑定OBS桶后,可以使用数据导出功能。
当您在联动目录创建一些文件,或者对从OBS导入的文件进行修改后,需要将这些文件存储到OBS桶里,可以使用数据导出功能。数据导出支持指定前缀,只有满足指定前缀的目录和文件才会被导出到OBS桶里。
- 在绑定OBS桶之后,单击“导出”选项。
图4 数据导出
- “导出文件前缀”请填写需要导出的目录和文件前缀(路径不包含联动目录),可以具体到某个文件。如果要导出整个联动目录到OBS桶,则不用填写。
- 单击“确定”,提交导出任务。
![](https://support.huaweicloud.com/usermanual-sfsturbo/public_sys-resources/note_3.0-zh-cn.png)
- 数据导出功能会启动异步任务对导出目录内的文件进行扫描并导出,如果扫描时发现文件10s内发生过更新,则本次任务不会导出该文件。
- 对于一个文件的所有修改,导出到OBS桶之后,下次再提交该文件的导出任务时,如果该文件未发生过变化,则该文件不会被再次导出,即使OBS桶里已经将导出的对象删掉了,也不会再导出该文件。
- 从SFS Turbo导出的对象,在OBS对象的自定义元数据里保存了一些SFS Turbo的元数据信息,名称以x-obs-meta-sfsturbo-st-开头。
- 不支持超长路径,可导出文件路径的最大长度为1023个字符。
- 文件系统内单个文件大小上限为320TB、可导出的单个文件大小上限为48.8TB。
- 大文件导出时OBS桶内x-obs-upload-sfsturbo-temp-part目录会存储大文件导出过程中产生的临时文件,导出完成后会自动删除该目录及临时文件。
- 导出数据时:
导入到SFS Turbo的对象,当在SFS Turbo里修改了,再从SFS Turbo导出这个对象时,如果OBS桶里该对象没有发生过修改,则会覆盖OBS桶里的对象,如果OBS桶里该对象发生过修改,则不会覆盖。
对象正在被导出时,上传同名对象可能会造成新上传的对象被覆盖。
- 开启WORM策略的OBS桶,无法从SFS Turbo导出数据到OBS桶。
数据淘汰功能
SFS Turbo文件系统绑定OBS桶之后,可以使用数据淘汰功能。淘汰时会释放数据内容,仅保留元数据,释放后不占用SFS Turbo文件系统上的存储空间。再次访问该文件时,将重新从OBS中加载文件数据内容。
按时间淘汰
SFS Turbo文件系统绑定OBS桶之后,支持数据按时间淘汰功能。设定时间内没有被访问过的文件会被淘汰。
按时间淘汰功能支持设置(冷)数据淘汰时间,设置步骤请参考以下操作。
- 登录高性能弹性文件服务管理控制台。
- 在文件系统列表中,单击创建的SFS Turbo文件系统名称,进入文件系统详情页面。
- 在“基本信息”页签,设置(冷)数据淘汰时间。
图5 设置冷数据淘汰时间
按容量淘汰
SFS Turbo文件系统绑定OBS桶后,支持数据按容量淘汰功能。
容量达到95%及以上按照30分钟淘汰时间进行淘汰,淘汰至容量低于85%。
![](https://support.huaweicloud.com/usermanual-sfsturbo/public_sys-resources/note_3.0-zh-cn.png)
- 淘汰规则:按时间淘汰和按容量淘汰哪个先达到就先按哪个淘汰。
- 数据淘汰默认开启,淘汰时间默认为60小时。设置(冷)数据淘汰时间的API请参考更新文件系统。
- 如果SFS Turbo文件系统存储空间写满,会影响业务运行,建议在云监控服务CES上配置SFS Turbo已用容量的监控告警。
- 当触发容量阈值告警时请手动缩短数据淘汰时间,例如从60小时配置成40小时,加速(冷)数据淘汰,或者对SFS Turbo存储空间进行扩容。
FAQ
- 什么情况下会发生数据淘汰?
从OBS导入到SFS Turbo的文件,当文件在设定数据淘汰时间内没有被访问时,会自动对该文件进行淘汰。
在SFS Turbo上创建的文件,只有已经导出到OBS并且满足数据淘汰时间,才会进行淘汰,如果还没有导出到OBS,则不会淘汰。