System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,特别是涉及一种文件操作方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
技术介绍
1、dpu(data processing unit)是为数据中心构造的专用处理器,提供网络、存储等业务的加速处理。随着ai、大数据等技术的兴起,对数据中心提出越来越高的要求,dpu的市场会越来越大。
2、文件系统是存储最核心的功能之一,为上层应用提供访问存储资源的标准接口。传统地,文件系统是操作系统内核提供的核心组件之一,内核文件系统通常将数据储存在若干块物理盘上,因此文件系统的容量会比较受限,而且处于操作系统内核态,开发调试都会比较困难,最重要的是文件系统的故障可能会导致整个操作系统不可用,因此用户态文件系统应运而生,借助用户态文件系统,开发者可以在用户态开发调试文件系统,极大提高开发效率,且文件系统的核心逻辑运行在用户态,减少内核崩溃的风险,另外近年来随着分布式存储系统,大数据等应用场景的兴起,用户态文件系统可以作为分布式存储系统在服务器侧的代理,部署在服务器侧,提供posix(portable operating system interface ofunix)语义的访问接口。
3、传统技术中,用户态文件系统都是基于fuse(filesystem in userspace)实现,fuse框架包括两个核心组件:一个是位于linux内核的fuse内核模块,其从应用程序接收文件系统请求,用fuse协议封装后转发给用户态文件系统服务进程;一个是libfuse库,该库用于支持用户态文件系统服务开
4、通常fuse内核模块和用户态文件系统服务都运行在同一个操作系统上,但是在dpu场景,fuse内核模块运行在host machine的操作系统上,而文件系统服务运行在dpu的操作系统上,如果host machine和dpu是异构cpu架构,且两者的cpu字节序不一致,比如host machine采用大端字节序,dpu采用小端字节序,则此时所有的文件系统操作结构体中多字节字段都将会被dpu上的文件系统服务进程错误地解析,从而导致操作失败。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够保证文件操作的准确性的文件操作方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本申请提供一种文件操作方法,应用于主机,所述方法包括:
3、初始化第一协商报文,所述第一协商报文包括主机字节序字段和第一字节序协商标识字段;
4、采用目标字节序对所述第一协商报文进行转换,并将转换后的所述第一协商报文发送至数据处理器;
5、接收所述数据处理器在所述第一字节序协商标识字段为目标值的情况下,返回的第二协商报文,所述第二协商报文包括数据处理器字节序字段和第二字节序协商标识字段;
6、基于主机字节序对所述第二协商报文进行解析;
7、在解析得到的所述第二字节序协商标识字段的值为目标值的情况下,将所述数据处理器字节序字段按照目标字节序进行转换得到数据处理器字节序;其中,所述目标值在大端字节序下和小端字节序下均相等;
8、在所述数据处理器字节序和所述主机字节序不一致的情况下,配置所述主机基于数据处理器字节序对待发送的第一文件操作报文进行字节序转换;或者配置所述主机和所述数据处理器的字节序均为所述数据处理器字节序;或者配置所述主机和所述数据处理器的字节序均为所述主机字节序。
9、在其中一个实施例中,所述目标字节序为小端字节序或大端字节序。
10、在其中一个实施例中,所述方法还包括:
11、通过抽象层组件,将第一文件操作报文中的第一操作标志转换为第一公共抽象操作标志,所述第一公共抽象操作标志用于指示数据处理器通过所述抽象层组件将所述第一公共抽象操作标志转换为第二操作标志,并基于所述第二操作标志确定操作类型。
12、在其中一个实施例中,所述方法还包括:
13、接收数据处理器发送的第一文件操作结果报文,所述第一文件操作结果报文携带有第二公共抽象操作标志;
14、通过抽象层组件将所述第二公共抽象操作标志转换为第三操作标志;
15、基于所述第三操作标志确定操作类型。
16、第二方面,本申请还提供一种文件操作方法,应用于数据处理器,所述方法包括:
17、接收主机发送的第一协商报文,所述第一协商报文包括第一字节序协商标识字段和主机字节序字段;
18、基于数据处理器字节序对所述第一协商报文进行解析;
19、在解析得到的所述第一字节序协商标识字段的值为目标值的情况下,配置所述数据处理器基于所述主机字节序对待发送的第一文件操作结果报文进行字节序转换;或者配置所述主机和所述数据处理器的字节序均为所述数据处理器字节序;或者配置所述主机和所述数据处理器的字节序均为所述主机字节序,其中,所述目标值在大端字节序下和小端字节序下均相等。
20、在其中一个实施例中,所述方法还包括:
21、在转换得到的所述第一字节序协商标识字段的值为目标值的情况下,将第二字节序协商标识字段设置为所述目标值,将数据处理器字节序字段设置为数据处理器字节序,并将第二协商报文的字节序转换成目标字节序;
22、发送所述第二协商报文至主机。
23、在其中一个实施例中,所述目标字节序为小端字节序或大端字节序。
24、在其中一个实施例中,所述方法还包括:
25、通过抽象层组件,将第一文件操作结果报文中的第一操作结果标志转换为第二公共抽象操作标志,所述第二公共抽象操作标志用于指示主机通过所述抽象层组件将所述第二公共抽象操作标志转换为第三操作标志,并基于所述第三操作标志确定操作类型。
26、在其中一个实施例中,所述方法还包括:
27、接收主机发送的第一文件操作报文,所述第一文件操作报文携带有第一公共抽象操作标志;
28、通过抽象层组件将所述第一公共抽象操作标志转换为第二操作标志;
29、基于所述第二操作标志确定操作类型。
30、第三方面,本申请还提供一种文件操作装置,应用于主机,所述装置包括:
31、初始化模块,用于初始化第一协商报文,所述第一协商报文包括主机字节序字段;
32、第一转换模块,用于采用目标字节序对所述第一协商报文进行转换,并将转换后的所述第一协商报文发送至数据处理器;
33、第一接收模块,用于接收所述数据处理器基于所述第一协商报文返回的第二协商报文,所述第二协商报文包括数据处理器字节序字段和第二字节序协商标识字段;
34、第二转换模块,用于基于主机字节序对所述第二协商报文进行解析;
35、协商确定模块,用于在解析得到的所述第二字节序本文档来自技高网...
【技术保护点】
1.一种文件操作方法,其特征在于,应用于主机,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述目标字节序为小端字节序或大端字节序。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
5.一种文件操作方法,其特征在于,应用于数据处理器,所述方法包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述目标字节序为小端字节序或大端字节序。
8.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
9.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
10.一种文件操作装置,其特征在于,应用于主机,所述装置包括:
11.一种文件操作装置,其特征在于,应用于数据处理器,所述装置包括:
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种文件操作方法,其特征在于,应用于主机,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述目标字节序为小端字节序或大端字节序。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
5.一种文件操作方法,其特征在于,应用于数据处理器,所述方法包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述目标字节序为小端字节序或大端字节序。
8.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
9.根据权利要求5...
【专利技术属性】
技术研发人员:刘静涛,王小光,陈安庆,
申请(专利权)人:深圳云豹智能有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。