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联动时通过内网传输,不产生OBS公网流量费用。
SFS Turbo目录和OBS配置联动后不支持创建硬链接、设置目录配额、执行重命名功能。
单个SFS Turbo文件系统最多可配置16个OBS联动目录。
创建 OBS 后端存储库,依赖的服务是对象存储服务 OBS。用户需要额外配置OBS Administrator权限。
同一层目录下不允许同样名称的文件和目录存在。
不支持超长路径,数据流动支持的路径最大长度是1023字符。
数据流动导入时,不支持长度大于255字节的文件名或子目录名。
开启WORM策略的OBS桶,只能从OBS桶导入数据到SFS Turbo,无法从SFS Turbo导出数据到OBS桶。
不支持绑定OBS并行文件系统和已配置服务端加密的OBS存储桶进行联动。
绑定OBS桶
进入SFS Turbo文件系统列表页面。
在文件系统列表中,单击创建的文件系统名称,进入文件系统详情页面。
进入“绑定后端存储”页签,单击“绑定OBS桶”。
在右侧弹窗“绑定OBS桶”中,填写如下参数。
参数 含义 限制 配置后可编辑 联动目录名称 SFS Turbo文件系统根目录下会以该名称创建一个子目录,该目录将绑定对应的OBS桶,且该目录名称不能和已有目录重名。 - 子目录名称不能重复。
- 子目录名称必须是文件系统根目录下不存在的目录名。
- 子目录名称不能是“.”或“..”。
不支持 桶名 OBS存储桶桶名。 - 无法绑定不存在的存储桶。
- 不支持绑定OBS并行文件系统和已配置服务端加密的OBS存储桶进行联动。
不支持 OBS区域域名 OBS区域域名,即OBS的终端节点。 OBS存储桶必须和SFS Turbo文件系统在同一个Region。 不支持 导入的文件权限 导入的文件权限。输入的三位数字分别表示文件所有者、文件所属用户组和其他用户的权限,每一位数字的取值为4(读权限)、2(写权限)、1(执行权限)、0(无权限)相加的组合。 可选参数。取值范围是0到7组成的三位数。 支持 导入的目录权限 导入的目录权限。输入的三位数字分别表示文件所有者、文件所属用户组和其他用户的权限,每位数字的取值为4(读权限)、2(写权限)、1(执行权限)、0(无权限)相加的组合。 可选参数。取值范围是0到7组成的三位数。 支持 用户ID 导入的文件或目录所有者的用户ID。 可选参数。取值范围是0到4294967294(即2^32-2)。 支持 用户组ID 导入的文件或目录所属用户组ID。 可选参数。取值范围是0到4294967294(即2^32-2)。 支持 自动导出 打开开关后,当文件系统发生数据更新时,将自动导出到OBS桶。 - 支持 导出数据 打开“自动导出”开关,则会出现该参数。
选择导出到OBS桶的数据更新类型“新增数据”、“修改数据”或“删除数据”后,SFS Turbo会以异步方式导出到OBS。
新增数据:SFS Turbo联动目录下创建的文件,及之后对这些文件进行的元数据和数据修改,会被自动同步到OBS桶里。
修改数据:从OBS桶里导入到SFS Turbo联动目录下的文件,在SFS Turbo上对这些文件所进行的数据和元数据的修改,会被自动同步到OBS桶里。
删除数据:在SFS Turbo联动目录下删除文件,OBS桶对应的对象也会被删除,只有被SFS Turbo写入的OBS对象才会被删除。
- 支持 勾选“将OBS桶的读写权限通过桶策略授权给SFS Turbo云服务”,并单击“确定”,完成绑定。
说明
不支持绑定OBS并行文件系统和已配置服务端加密的OBS存储桶进行联动。
绑定OBS桶时,会在OBS桶上添加Sid为“PolicyAddedBySFSTurbo”的桶策略,请不要修改或删除该桶策略,否则可能导致联动功能异常。
如果您已将一个或多个SFS Turbo文件系统绑定了OBS存储桶,在删除文件系统或删除绑定之前,请不要删除该OBS存储桶,否则可能导致联动功能异常。
以桶名为“obs-test”的OBS桶为例,桶策略“PolicyAddedBySFSTurbo”的内容如下所示:
{
"Statement": [
{
"Sid": "PolicyAddedBySFSTurbo",
"Effect": "Allow",
"Principal": {
"ID": [
"domain/xxx:user/xxx"
]
},
"Action": [
"ListBucket",
"HeadBucket",
"GetBucketStorage",
"GetBucketPolicy",
"GetBucketAcl",
"GetBucketNotification",
"GetBucketQuota",
"GetObject",
"PutObject",
"DeleteObject",
"GetObjectAcl",
"PutObjectAcl",
"ModifyObjectMetaData"
],
"Resource": [
"obs-test",
"obs-test/*"
]
}
]
}
自动同步策略
SFS Turbo文件系统绑定OBS桶前后,都可以配置自动同步策略。
当您打开自动导出开关,使用自动同步策略,SFS Turbo会根据您选择的数据更新类型,以异步方式导出到OBS。
数据更新类型包含“新增数据”、“修改数据”和“删除数据”。
新增数据:SFS Turbo联动目录下创建的文件,及之后对这些文件进行的元数据和数据修改,会被自动同步到OBS桶里。
修改数据:从OBS桶里导入到SFS Turbo联动目录下的文件,在SFS Turbo上对这些文件所进行的数据和元数据的修改,会被自动同步到OBS桶里。
删除数据:在SFS Turbo联动目录下删除文件,OBS桶对应的对象也会被删除,只有被SFS Turbo写入的OBS对象才会被删除。
绑定OBS桶时配置自动同步策略,请参见绑定OBS桶。
绑定OBS桶后配置自动同步策略,操作步骤如下所示。
在绑定OBS桶之后,单击“自动同步策略”选项。
配置“自动同步 > 自动导出”数据。
打开或关闭自动导出开关。
关闭自动导出开关即不支持自动导出功能;打开自动导出开关后,请选择导出数据。数据更新类型支持选择“新增数据”、“修改数据”或“删除数据”。更多参数解释请参见表4-7。
单击“确定”,提交自动同步任务。
快速导入功能
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、gid、目录权限、文件权限)。快速导入能够提供更快的元数据导入性能,推荐您使用快速导入。
附加元数据导入:当您绑定的OBS桶中存储的数据是来源于SFS Turbo导出时,可以使用附加元数据导入方式,附加元数据导入方式会导入OBS的元数据(名称、大小、最后修改时间)以及来源于SFS Turbo导出时的附加元数据(如uid、gid、mode)。如果没有来源于SFS Turbo的附加元数据则以指定导入目录和文件的权限为准。
在绑定OBS桶之后,单击“快速导入”选项。
“导入前缀”请填写绑定OBS桶内对象的前缀,可以具体到某个对象名。如果要导入整个OBS桶内的所有对象,则不用填写。
勾选“附加元数据导入”将会采用附加元数据导入方式,不勾选“附加元数据导入”将采用快速导入方式。
(可选)填写高级配置信息,填写说明请参见绑定OBS桶-参数说明表。
单击“确定”,提交导入任务。
说明
在OBS数据导入到SFS Turbo之后,如果OBS桶中的数据发生新增或修改,需要重新导入到SFS Turbo中。
不支持长度大于255字节的文件名或子目录名。
数据预热功能
SFS Turbo文件系统绑定OBS桶后,可以使用数据预热功能。
默认情况下,数据快速导入完成后,数据不会导入到SFS Turbo文件系统中,初次访问会按需从OBS中加载数据,对文件的第一次读取操作可能耗时较长。如果您的业务对时延比较敏感,并且您知道业务需要访问哪些目录和文件,比如AI训练等场景涉及海量小文件,对时延比较敏感,可以选择提前导入指定目录和文件。
数据预热功能会同时导入元数据和数据内容,元数据将会采用快速导入方式,不会导入其他附加元数据(如uid、gid、mode)。
在绑定OBS桶之后,单击“数据预热”选项。
“对象路径”请填写绑定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”
(可选)填写高级配置信息,填写说明请参见表4-7。
单击“确定”,提交导入任务。
说明
在OBS数据导入到SFS Turbo之后,如果OBS桶中的数据发生新增或修改,需要重新导入到SFS Turbo中。
不支持长度大于255字节的文件名或子目录名。
数据导出功能
SFS Turbo文件系统绑定OBS桶后,可以使用数据导出功能。
当您在联动目录创建一些文件,或者对从OBS导入的文件进行修改后,需要将这些文件存储到OBS桶里,可以使用数据导出功能。数据导出支持指定前缀,只有满足指定前缀的目录和文件才会被导出到OBS桶里。
在绑定OBS桶之后,单击“更多>导出”选项。
“导出文件前缀”请填写需要导出的目录和文件前缀(路径不包含联动目录),可以具体到某个文件。如果要导出整个联动目录到OBS桶,则不用填写。
单击“确定”,提交导出任务。
说明
数据导出功能会启动异步任务对导出目录内的文件进行扫描并导出,如果扫描时发现文件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文件系统列表页面。
在文件系统列表中,单击创建的SFS Turbo文件系统名称,进入文件系统详情页面。
在“基本信息”页签,设置(冷)数据淘汰时间。
按容量淘汰
SFS Turbo文件系统绑定OBS桶后,支持数据按容量淘汰功能。
容量达到95%及以上按照30分钟淘汰时间进行淘汰,淘汰至容量低于85%。
说明
淘汰规则:按时间淘汰和按容量淘汰哪个先达到就先按哪个淘汰。
数据淘汰默认开启,淘汰时间默认为60小时。
如果SFS Turbo文件系统存储空间写满,会影响业务运行,建议在云监控服务CES上配置SFS Turbo已用容量的监控告警。
当触发容量阈值告警时请手动缩短数据淘汰时间,例如从60小时配置成40小时,加速(冷)数据淘汰,或者对SFS Turbo存储空间进行扩容。
建议在需要高性能场景下适当延长数据淘汰周期,避免淘汰后需要从OBS中加载冷数据而产生的高时延。
任务状态
当您执行导出数据时,会在任务状态生成一条任务记录,方便您查看任务进度和状态。
说明
系统只会保留最近创建的1000条任务记录,之前的任务记录系统将会自动删除。
在绑定后端存储列表页,单击界面左上角的“任务状态”。
执行导出数据操作,可查看对应操作的任务记录。单击状态右边的
可查看成功或失败的次数。
在右上角的搜索框,支持对状态、类型、创建时间进行过滤,找到您需要的任务。
常见问题
什么情况下会发生数据淘汰?
从OBS导入到SFS Turbo的文件,当文件在设定数据淘汰时间内没有被访问时,会自动对该文件进行淘汰。
在SFS Turbo上创建的文件,只有已经导出到OBS并且满足数据淘汰时间,才会进行淘汰,如果还没有导出到OBS,则不会淘汰。
数据淘汰之后,怎么重新将数据导入到SFS Turbo文件系统?
对文件进行读写操作时会重新从OBS桶加载文件数据到SFS Turbo文件系统;
使用数据预热功能重新将数据从OBS桶加载到SFS Turbo文件系统。
什么场景下会发生数据导入失败?
当只导入了文件元数据,或者SFS Turbo中发生了数据淘汰,SFS Turbo中只剩下文件元数据,但OBS桶中的对象又被删除时,进行数据导入或访问文件内容时会发生失败。
导入/导出任务是同步的,还是异步的?
是异步的,任务提交后马上返回,您可以通过任务id查询异步任务完成状态。
删除SFS Turbo联动目录内的文件,OBS桶里对应的对象会删除吗?
如果没有开启自动同步策略,则不会。如果开启了自动同步策略,则会删除。
SFS Turbo绑定OBS桶时或者绑定之后可以指定导入目录和文件的权限吗?
一般情况下,您可以指定导入目录和文件的权限。如果无法指定,请寻求技术支持。指定权限详情如下所示:
绑定OBS桶时或绑定OBS桶后,支持设置导入目录和文件的默认权限,在控制台设置权限请参考绑定OBS桶。如果未设置,默认为750(目录权限)和640(文件权限)。
快速导入和数据预热时,支持指定导入目录和文件的权限,在控制台设置权限请参考绑定OBS桶。如果未指定,则以上述默认权限为准。