UFS分布式文件存储接入能力升级,支持Windows主机用户使用

UFS分布式文件系统

UFS是一款分布式文件系统产品,它能够为运行于 UCloud 公有云、物理云、托管云上的各类主机提供高可用、高可靠、易拓展的文件存储功能。通过 UFS 产品提供的共享存储功能,可以方便地为各类数据备份、serverless、AI 数据分析、高性能 web 站点等应用场景提供强有力的支撑。

之前UFS仅支持NFSv4.0协议,只能提供给Linux主机使用。针对用户需要在Windows主机使用UFS的需求,近日,UCloud优刻得升级UFS产品功能,支持SMB和NFSv3接入协议。存量UFS实例能够直接使用NFSv3协议挂载,新建UFS实例时则可以选择接入NFS或者SMB。从而使UFS拥有了全量接入Windows主机的能力,让Windows用户也能充分利用UFS分布式文件系统创造价值。

下图为UFS整体io处理架构。

SMB介绍和支持

SMB(Server Message Block)是一种网络文件共享协议,用于共享文件和打印机等资源,Windows主机广泛使用该协议进行文件的共享。当前UFS接入支持的协议版本有CIFS,SMB2.0,SMB2.1,SMB3.0。

和本地搭建SMB服务比较,UFS拥有以下优势:高容量,弹性扩展,可支持最高PB级别的容量按需进行扩容;高可靠,数据存储有跨机器、跨机架的三个副本;高可用,整体服务路径均采用节点多实例设计和部署,没有单机故障的隐患。

通过SMB协议挂载访问UFS,Windows用户可以使用UFS分布式文件系统进行海量视频素材的存储和编辑等。

NFSv3提升小文件操作的吞吐

Linux和Windows主机均可以使用NFSv3挂载UFS文件系统,在大批量操作小文件的场景下,NFSv3相对于NFSv4.0性能更好。

以下我们分别介绍两种协议版本读取文件的流程。

NFSv4.0读取文件流程:

1. 打开文件:PUTFH设置文件父目录file handle(文件系统内唯一标识文件对象),OPEN打开指定文件,GETFH获取打开文件的file handle,ACCESS检查文件访问权限,GETATTR获取文件属性信息。

2. 确认Open-Owner(可选):如果server需要confirm,客户端再发起OPEN_CONFIRM。

3. 读取数据:PUTFH设置文件file handle,使用返回的stateid读取文件。

4. 关闭打开文件:PUTFH设置文件file handle,关闭stateid指定的文件。

NFSv3读取文件流程:

1. 查询文件:LOOKUP查询指定目录下的文件,返回文件file handle和属性信息。

2. 确认访问权限:ACCESS检查文件是否有访问权限。

3. 读取数据:使用文件file handle读取数据。

得益于NFSv4.0引入的COMPOUND Procedure,额外支持状态的NFSv4.0协议RPC交互数量一般也和NFSv3一样多。但是为什么NFSv4.0大批量操作小文件的性能会远远差于NFSv3?为了支持状态,NFSv4.0打开文件需要提供Open-Owner,协议中规定针对每个Open-Owner,同一时刻只能发起一个相关请求;在Linux内核实现中,同一个用户的进程会共用同一个Open-Owner,因此在大量小文件读写的情况下,文件的打开流程会变成串行操作,影响性能。所以在大批量操作小文件并且没有文件锁需求的场景下,NFSv3相比NFSv4.0可以大幅度提高性能。

以下针对小文件夹的读写场景分别在NFSv3和NFSv4.0挂载下进行了测试。测试环境为Centos8.3虚机,测试文件为Linux内核源码包,有8w+文件。

下面的表格为测试结果,可以看出在大批量操作小文件的情况下NFSv3比NFSv4.0性能好得多。

某知名在线英语教育公司使用UCloud GPU云主机进行AI训练,训练数据存储在UFS分布式文件系统中,最开始这家公司的客户端使用的是NFSv4.0挂载,使用过程中发现训练性能不理想,在没有达到硬件瓶颈的情况下,并发运行多个训练任务也并没有显著减少训练时间。经过排查后发现,NFS挂载读取吞吐较低,用户的训练数据小文件居多,监控数据中看到大量的open请求,导致读取数据性能差。更换使用NFSv3挂载后,没有额外的open开销,训练速度提升了至少2倍。

总结和展望

UFS分布式文件系统的接入能力升级,支持了Windows主机使用,加速了用户特定场景的使用功能。UFS还在进行产品私有化的开发工作,未来会研发并行文件系统,以更低的io时延,更高的吞吐,支撑HPC场景应用。

(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )