分布式系统数据处理方法、装置、设备及介质与流程

文档序号:31652701发布日期:2022-09-27 21:43阅读:87来源:国知局
分布式系统数据处理方法、装置、设备及介质与流程

1.本发明涉及数据处理技术领域,特别是涉及一种分布式系统数据处理方法、装置、设备及介质。


背景技术:

2.随着云计算、云原生、互联网等技术的发展,存储及读写的数据量日益增大,而不同数据的存储和读写方式是不同的,另外用户对于数据的访问频率不同,文件存放的位置也会不同。通常情况下将访问频率高的文件放置于快池,将访问频率低的文件放置于慢池,以达到合理利用资源的目的;这里的快池一般是由固态硬盘(solid state disk,ssd)创建的存储池,慢池一般是由硬盘驱动器(hard disk drive,hdd)创建的存储池。
3.特定场景下,用户操作的主要为小文件,在存储系统中会出现海量的小文件,为了提升性能和存储空间,广泛采取将小文件聚合为大文件,聚合后的大文件由一个个4mb的对象组成,每个对象中前8kb是inode(索引节点)位图,按文件排列顺序存放着小文件的inode号,剩余位置存放着大量小文件,文件以4kb空间存储;同时将大文件迁移到hdd慢池中。目前通过内核客户端对分布式文件系统的操作基本局限在普通文件,可以正常的读写等操作,但是对于海量小文件经过分级聚合后形成的大文件则不能进行正常的访问和读写。
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.更新所述聚合大文件的无效空间,并向聚合对象头的索引节点位图处写零。
36.本发明实施例还提供了一种分布式系统数据处理装置,应用于内核客户端,包括:
37.指令接收模块,用于接收文件读指令;
38.指令解析模块,用于解析所述文件读指令,确定待读取文件的属性信息;
39.属性判断模块,用于判断所述待读取文件是否具有聚合属性;
40.第一读操作模块,用于当所述待读取文件不具有聚合属性时,直接对所述待读取文件进行读操作;
41.第二读操作模块,用于当所述待读取文件具有聚合属性时,根据所述待读取文件的元数据打开对应的聚合大文件,在所述聚合大文件的相应位置读取所述待读取文件的数据。
42.本发明实施例还提供了一种分布式系统数据处理设备,包括处理器和存储器,其中,所述处理器执行所述存储器中存储的计算机程序时实现如本发明实施例提供的上述分
布式系统数据处理方法。
43.本发明实施例还提供了一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如本发明实施例提供的上述分布式系统数据处理方法。
44.从上述技术方案可以看出,本发明所提供的一种分布式系统数据处理方法,应用于内核客户端,包括:接收文件读指令;解析文件读指令,确定待读取文件的属性信息;判断待读取文件是否具有聚合属性;若否,则直接对待读取文件进行读操作;若是,则根据待读取文件的元数据打开对应的聚合大文件,在聚合大文件的相应位置读取待读取文件的数据。
45.本发明提供的上述分布式系统数据处理方法,内核客户端在进行文件操作时,一方面不会影响对不带有分级聚合属性文件的读操作,另一方面可以对文件分级聚合后的聚合大文件采用直读的方式进行读操作,进而通过间接操作聚合大文件达到操作小文件的目的,避免产生大文件的缓存。
46.此外,本发明还针对分布式系统数据处理方法提供了相应的装置、设备及计算机可读存储介质,进一步使得上述方法更具有实用性,该装置、设备及计算机可读存储介质具有相应的优点。
附图说明
47.为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
48.图1为本发明实施例提供的分布式系统数据处理方法流程图之一;
49.图2为本发明实施例提供的内核客户端分级聚合文件操作总览示意图;
50.图3为本发明实施例提供的分布式系统数据读操作流程图;
51.图4为本发明实施例提供的分布式系统数据处理方法流程图之二;
52.图5为本发明实施例提供的分布式系统数据写操作流程图;
53.图6为本发明实施例提供的分布式系统数据处理装置的结构示意图。
具体实施方式
54.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.本发明提供一种分布式系统数据处理方法,应用于内核客户端,如图1所示,包括以下步骤:
56.s101、接收文件读指令;
57.s102、解析文件读指令,确定待读取文件的属性信息;
58.s103、判断待读取文件是否具有聚合属性;
59.若否,则执行步骤s104;若是,则执行步骤s105;
60.s104、直接对待读取文件进行读操作;
61.s105、根据待读取文件的元数据打开对应的聚合大文件,在聚合大文件的相应位置读取待读取文件的数据。
62.需要说明的是,聚合大文件是通过某种方式把很多小文件聚合而成的一个文件。小文件是指文件大小相对较小的文件,例如视频片段、图像、pdf文档等。小文件的大小没有具体阈值,在普通文件系统中,大小低于兆(mb)级别的文件为小文件;而在分布式文件系统中,文件一般都为分块存储,则大小低于块的大小的文件为小文件。
63.图2示出了内核客户端分级聚合文件操作总览示意图。文件在ssd高级池中存留的时间不久,最终都会存储到hdd池里面,hdd池里既有普通文件,也有分级聚合的文件。用户读取的文件如果有聚合属性,那么必须到聚合大文件中读取,聚合大文件具体可存储在每块物理盘对应的基于对象的存储设备(object storage device,osd)中;如果读取的文件为普通文件,即读取的文件没有聚合属性,则走正常文件读取流程。
64.需要补充的是,在本发明中,内核客户端对文件常规操作时,需要对文件的元数据信息进行判断,增加对分级聚合文件操作的支持。元数据是描述文件属性的数据,包括聚合属性,对小文件的数据资源的描述性信息等。如图3所示,在接收文件读指令之前,还可以包括:打开小文件,利用元数据服务(metadata data service,mds)存储元数据信息,包含文件的属性信息,获取cap消息包含获取对文件的权限。cap消息是存放文件元数据信息的mds单元,返回的对文件操作的权限。读文件先要打开文件,还没走到读操作,打开文件的目的是获取文件是否包含聚合属性以及对文件的权限等操作。之后,就可以从文件属性信息中,判断文件是否有聚合属性,如果没有聚合属性,则走正常读流程;如果有聚合属性,则走读聚合大文件流程。
65.在本发明实施例提供的上述分布式系统数据处理方法中,内核客户端在进行文件操作时,一方面不会影响对不带有分级聚合属性文件的读操作,另一方面可以对文件分级聚合后的聚合大文件采用直读的方式进行读操作,进而通过间接操作聚合大文件达到操作小文件的目的,避免产生大文件的缓存。
66.在具体实施时,在本发明实施例提供的上述分布式系统数据处理方法中,步骤s105根据待读取文件的元数据打开对应的聚合大文件,具体可以包括:首先根据待读取文件的元数据确定对应的聚合大文件的索引节点(inode)编号;然后根据inode号打开聚合大文件。
67.需要了解的是,每个文件属性中都记录有聚合大文件的inode号,只是非聚合文件中的inode号为零,根据inode号可以找到文件所在的聚合大文件。并且在文件属性中记录的有小文件在聚合大文件中的位置偏移。
68.在具体实施时,在本发明实施例提供的上述分布式系统数据处理方法中,步骤s105在聚合大文件的相应位置读取待读取文件的数据,具体可以包括:首先查询待读取文件对应的小文件在聚合大文件中的偏移位置;然后根据该偏移位置,确定小文件;最后读取小文件中待读取文件的数据。
69.在实际应用中,大文件可以根据自身保存的元数据的描述信息对小文件进行识别。
70.在具体实施时,在本发明实施例提供的上述分布式系统数据处理方法中,由于用
户读取文件可以在文件中的任意位置读取,用户读取文件不一定读完,可以读文件中的某一段数据,因此,在读取小文件中待读取文件的数据之前,还可以包括:判断小文件的起始读取位置距离小文件头部的长度(offset)与待读取文件的长度(len,即用户读取数据所在文件的长度)之和是否大于小文件的总长度;若是,则自动更改待读取文件的长度;若否,则直接读取小文件中待读取文件的数据。如图3所示,检查传入的offset及len是否合法,即offset+len≤inode size是否成立;若不合法(不成立),则需要更改len。
71.需要指出的是,聚合大文件是由很多个聚合4m对象组成的,每个4m对象中包含很多个文件,读取1个文件时,如果offset+len大于文件的总长度,则证明读的数据已经超出了这个文件的长度,本发明要自动更改len以达到读取一个文件的目的。
72.进一步地,内核客户端对文件常规操作时,对文件的元数据信息进行判断,增加对分级聚合文件操作的支持,涉及的场景除了包括文件读取操作,还可以包括写入操作。因此,在具体实施时,在本发明实施例提供的上述分布式系统数据处理方法中,如图4所示,还可以包括:
73.s401、接收文件写指令;
74.s402、解析文件写指令,确定待写入文件的属性信息;
75.s403、判断待写入文件是否具有聚合属性;
76.若否,则执行步骤s404;若是,则执行步骤s405;
77.s404、直接对待写入文件进行写操作;
78.s405、根据待写入文件的元数据打开对应的聚合大文件,在聚合大文件的相应位置写入待写入文件的数据。
79.这样内核客户端在进行文件写操作时,一方面不会影响对不带有分级聚合属性文件的写操作,另一方面可以对文件分级聚合后的聚合大文件采用直写的方式进行写操作,进而通过间接操作聚合大文件达到操作小文件的目的,避免产生大文件的缓存。
80.在具体实施时,在本发明实施例提供的上述分布式系统数据处理方法中,步骤s405根据待写入文件的元数据打开对应的聚合大文件,具体可以包括:首先根据待写入文件的元数据确定对应的聚合大文件的inode号;然后根据inode号打开聚合大文件。
81.在具体实施时,在本发明实施例提供的上述分布式系统数据处理方法中,步骤s405在聚合大文件的相应位置写入待写入文件的数据,具体可以包括:判断待写入文件对应的小文件的起始写入位置距离小文件头部的长度(offset)与待写入文件的长度(len)之和是否大于小文件的总长度;若否,则直接在聚合大文件的相应位置写入待写入文件的数据;若是,则增加临时页和构造小文件的页缓存,将聚合大文件中的原有小文件数据填充到临时页,填充完成后将临时页中的数据拷贝到小文件的页缓存中并下刷,下刷完成后将待写入文件的数据直接写入小文件中。
82.具体地,如图5所示,分级聚合文件写入时将根据offset+len是否超出小文件大小分为修改写和追加写两种情况;当offset+len未超出小文件大小时,则执行修改写;当offset+len超出小文件大小时,则执行追加写,写入后分级聚合文件将变为普通文件。
83.修改写就是以直写方式到大文件相应位置写入数据。而追加写就是在聚合大文件中原有数据基础上追加写的,因为文件追加写后,将变成普通文件,需要在聚合大文件中删除掉,就需要先将原有数据再独一份出来,在“复制”的文件中进行追加写操作。追加写的具
体过程可以为:先根据offset及len申请一批临时页,将文件中原有的数据(即追加写前的数据)从聚合大文件中读入到临时页;再构造小文件的页缓存并将临时页中的数据拷贝到小文件的页缓存中并下刷;然后将用户态地址中的数据以直写方式写入小文件。需要说明的是,正常的读,一般是由用户发起的,此处的读不是由用户发起的,而是内部申请的地址,写入相当于复制一份数据出来,因为之前的文件在追加写后变成正常文件要被删除掉。
84.进一步地,在具体实施时,在本发明实施例提供的上述分布式系统数据处理方法中,在将待写入文件的数据直接写入小文件中之后,还可以包括:更新小文件的元数据信息告知mds变更为正常文件;更新聚合大文件的无效空间,并向聚合对象头的索引节点位图处写零。可以理解的是,聚合文件在追加写后将变成普通文件,普通文件的inode位图就是零;聚合大文件中的文件变为普通文件后,将被删除掉,那么文件所在的空间就变成了无效空间。
85.基于同一发明构思,本发明实施例还提供了一种分布式系统数据处理装置,由于该装置解决问题的原理与前述一种分布式系统数据处理方法相似,因此该装置的实施可以参见分布式系统数据处理方法的实施,重复之处不再赘述。
86.在具体实施时,本发明实施例提供的分布式系统数据处理装置,应用于内核客户端,如图6所示,具体包括:
87.指令接收模块11,用于接收文件读指令;
88.指令解析模块12,用于解析文件读指令,确定待读取文件的属性信息;
89.属性判断模块13,用于判断待读取文件是否具有聚合属性;
90.第一读操作模块14,用于当待读取文件不具有聚合属性时,直接对待读取文件进行读操作;
91.第二读操作模块15,用于当待读取文件具有聚合属性时,根据待读取文件的元数据打开对应的聚合大文件,在聚合大文件的相应位置读取待读取文件的数据。
92.在本发明实施例提供的上述分布式系统数据处理装置中,可以通过上述五个模块的相互作用,一方面不会影响对不带有分级聚合属性文件的读操作,另一方面可以对文件分级聚合后的聚合大文件采用直读的方式进行读操作,进而通过间接操作聚合大文件达到操作小文件的目的,避免产生大文件的缓存。
93.进一步地,在具体实施时,在本发明实施例提供的上述分布式系统数据处理装置中,第二读操作模块15,具体可以用于根据待读取文件的元数据确定对应的聚合大文件的inode号;根据inode号打开聚合大文件;具体还可以用于查询待读取文件对应的小文件在聚合大文件中的偏移位置;根据该偏移位置,确定小文件;读取小文件中待读取文件的数据。
94.进一步地,在具体实施时,在本发明实施例提供的上述分布式系统数据处理装置中,指令接收模块11,还用于接收文件写指令;
95.指令解析模块12,用于解析文件写指令,确定待写入文件的属性信息;
96.属性判断模块13,用于判断待写入文件是否具有聚合属性;
97.还可以包括:
98.第一写操作模块,用于当待写入文件不具有聚合属性时,直接对待写入文件进行写操作;
99.第二写操作模块,用于当待写入文件具有聚合属性时,根据待写入文件的元数据打开对应的聚合大文件,在聚合大文件的相应位置写入待写入文件的数据。
100.进一步地,在具体实施时,在本发明实施例提供的上述分布式系统数据处理装置中,第二写操作模块,具体可以用于根据待写入文件的元数据确定对应的聚合大文件的inode号;根据inode号打开聚合大文件;具体还可以用于判断待写入文件对应的小文件的起始写入位置距离小文件头部的长度与待写入文件的长度之和是否大于小文件的总长度;若否,则直接在聚合大文件的相应位置写入待写入文件的数据(即执行修改写);若是,则增加临时页和构造小文件的页缓存,将聚合大文件中的原有小文件数据填充到临时页,填充完成后将临时页中的数据拷贝到小文件的页缓存中并下刷,下刷完成后将待写入文件的数据直接写入小文件中(即执行追加写)。
101.关于上述各个模块更加具体的工作过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
102.相应地,本发明实施例还公开了一种分布式系统数据处理设备,包括处理器和存储器;其中,处理器执行存储器中存储的计算机程序时实现前述实施例公开的分布式系统数据处理方法。
103.关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
104.进一步地,本发明还公开了一种计算机可读存储介质,用于存储计算机程序;计算机程序被处理器执行时实现前述公开的分布式系统数据处理方法。
105.关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
106.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备、存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
107.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
108.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
109.综上,本发明实施例提供的一种分布式系统数据处理方法,应用于内核客户端,包括:接收文件读指令;解析文件读指令,确定待读取文件的属性信息;判断待读取文件是否具有聚合属性;若否,则直接对待读取文件进行读操作;若是,则根据待读取文件的元数据打开对应的聚合大文件,在聚合大文件的相应位置读取待读取文件的数据。这样内核客户
端在进行文件操作时,一方面不会影响对不带有分级聚合属性文件的读操作,另一方面可以对文件分级聚合后的聚合大文件采用直读的方式进行读操作,进而通过间接操作聚合大文件达到操作小文件的目的,避免产生大文件的缓存。此外,本发明还针对分布式系统数据处理方法提供了相应的装置、设备及计算机可读存储介质,进一步使得上述方法更具有实用性,该装置、设备及计算机可读存储介质具有相应的优点。
110.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
111.以上对本发明所提供的分布式系统数据处理方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1