一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Ceph分布式对象存储检索方法及装置与流程

2022-03-09 07:57:29 来源:中国专利 TAG:

一种基于ceph分布式对象存储检索方法及装置
技术领域
1.本发明涉及分布式存储技术领域,尤其涉及一种基于ceph分布式对象存储检索方法及装置。


背景技术:

2.目前在ceph对象存储中,客户端发来的readdir请求无论本层目录对象数目多少,每次从osd中读取的对象个数都固定为默认max=1000-attempt,所以,这样做的缺点有二:
3.若本层目录下对象均为文件或大部分为文件,当文件数较少时,读取速度比较快,但当文件数非常大时,比如上万甚至十几万文件的情况下,一次读取只能读取近9000文件,客户端和ceph端之间需要发送多次请求才能全部读完,且ceph端内的rgw与rados层的osd之间的交互在每次readdir请求下都需要交互至少9次,这种频繁的交互是非常耗时的,这种情况下,1000这个指标过小,希望max越大越好,attempt也越大越好,目的是减少各模块间的交互次数。
4.若本层目录下对象均为目录或大部分为目录,每次读取时会读取max=1000-attempt个目录最底层的对象,同上,也是进行最多9次后从所有对象结果中提取本层所在的目录,然后返回上层再进行下次readdir请求。当本层目录下,目录数较少或适中时,由于只需要本层目录,也就是只需要从osd读取本层目录最底层的一个对象就可以提取出本层目录,不需要多余的999-attempt个对象,所以这种情况下,希望max值越小越好,attempt值越大越好。当本层目录下,目录数非常多时,max又不宜过小,否则发往osd的请求就会过多,希望可以一次性尽可能多的读取到本层的目录,所以这种情况下,希望max值越大越好,attemp值也越大越好。
5.以上两点的问题主要是max值固定,无法根据目录还是文件的情况随时变换max的值,导致无法做到灵活调整,所以在对象数较多时,检索效率低。


技术实现要素:

6.有鉴于此,本发明提供了一种基于ceph分布式对象存储检索方法及装置,用以解决现有基于ceph分布式对象检索过程中,由于max值固定,无法根据目录还是文件的情况随时变换max的值,导致无法做到灵活调整,所以在对象数较多时,检索效率低的问题。具体方案如下:
7.一种基于ceph分布式对象存储检索方法,应用于ceph系统,所述ceph系统包括:ceph-radosgw、librados和rados,所述方法包括:
8.接收客户端发起的检索对象请求,基于所述检索对象请求确定s_max;
9.判断与当前检索对象相邻的上次检索对象是文件还是目录;
10.在所述上次检索对象为目录的情况下,基于所述s_max确定max,基于所述max读取所述当前检索对象预设次数,调整所述max为预设数量,基于所述预设数量继续读取直至本层目录读完,其中,所述本层目录为当前目录;
11.在所述上次检索对象为文件的情况下,基于所述s_max确定max,基于所述当前检索对象的文件数量调整所述max,基于所述max读取所述当前检索对象直至本层目录读完,其中,所述文件数量与所述max成正相关。
12.上述的方法,可选的,接收客户端发起的检索对象请求,基于所述检索对象请求确定s_max,包括:
13.判断所述检索对象请求是否初次执行;
14.若是,将所述s_max设置为1;
15.若否,在全局容器中查找所述检索对象请求中的对象名,若找到,将所述对象名对应的历史s_max作为所述s_max,若未找到,将所述s_max设置为1。
16.上述的方法,可选的,基于所述max读取所述当前检索对象直至本层目录读完,包括:
17.在所述当前检索对象读取完成的情况下,将当前检索结果存储至全局容器中,同时将预设读取标识反馈至客户端;
18.读取所述预设读取标识,在所述预设读取标识满足预设取值的情况下,判定所述本层目录读完。
19.上述的方法,可选的,所述方法还包括通过nfs-ganesha挂载所述ceph系统,具体表现为:
20.在检测到通过nfs-ganesha挂载的客户端在存储目录下进行1s操作的情况下,获取检索目录的maker值,基于所述maker值确定s_maxs;
21.调用所述rados中的osd读取对象,将得到的检索结果存储到所述全局容器中;
22.回调所述nfs-ganesha后,调用lookup请求,查询所述当前检索对象对应的元数据信息;
23.基于所述元数据信息创建句柄,将所述句柄反馈给客户端。
24.上述的方法,可选的,调用lookup请求,查询所述当前检索对象对应的元数据信息,包括:
25.若所述当前检索对象为目录的情况下,读取所述全局容器中对应的元数据信息;
26.若所述当前检索对象为文件的情况下,调用get请求下载所述当前检索对象对应的元数据信息。
27.一种基于ceph分布式对象存储检索装置,应用于ceph系统,所述ceph系统包括:ceph-radosgw、librados和rados,所述装置包括:
28.确定模块,用于接收客户端发起的检索对象请求,基于所述检索对象请求确定s_max;
29.判断模块,用于判断与当前检索对象相邻的上次检索对象是文件还是目录;
30.第一判定模块,用于在所述上次检索对象为目录的情况下,基于所述s_max确定max,基于所述max读取所述当前检索对象预设次数,调整所述max为预设数量,基于所述预设数量继续读取直至本层目录读完,其中,所述本层目录为当前目录;
31.第二判定模块,用于在所述上次检索对象为文件的情况下,基于所述s_max确定max,基于所述当前检索对象的文件数量调整所述max,基于所述max读取所述当前检索对象直至本层目录读完,其中,所述文件数量与所述max成正相关。
32.上述的装置,可选的,所述确定模块包括:
33.判断单元,用于判断所述检索对象请求是否初次执行;
34.第一设置单元,用于若是,将所述s_max设置为1;
35.第二设置单元,用于若否,在全局容器中查找所述检索对象请求中的对象名,若找到,将所述对象名对应的历史s_max作为所述s_max,若未找到,将所述s_max设置为1。
36.上述的装置,可选的,所述第一判定模块包括:
37.存储和反馈单元,用于在所述当前检索对象读取完成的情况下,将当前检索结果存储至全局容器中,同时将预设读取标识反馈至客户端;
38.读取和判定单元,用于读取所述预设读取标识,在所述预设读取标识满足预设取值的情况下,判定所述本层目录读完。
39.上述的装置,可选的,所述装置还包括:
40.获取和确定模块,用于在检测到通过nfs-ganesha挂载的客户端在存储目录下进行1s操作的情况下,获取检索目录的maker值,基于所述maker值确定s_maxs;
41.调用和存储模块,用于调用所述rados中的osd读取对象,将得到的检索结果存储到所述全局容器中;
42.调用和查询模块,用于回调所述nfs-ganesha后,调用lookup请求,查询所述当前检索对象对应的元数据信息;
43.创建和反馈模块,用于基于所述元数据信息创建句柄,将所述句柄反馈给客户端。
44.上述的装置,可选的,所述调用和查询模块包括:
45.读取单元,用于若所述当前检索对象为目录的情况下,读取所述全局容器中对应的元数据信息;
46.下载单元,用于若所述当前检索对象为文件的情况下,调用get请求下载所述当前检索对象对应的元数据信息。
47.与现有技术相比,本发明包括以下优点:
48.本发明公开了一种基于ceph分布式对象存储检索方法及装置,应用于ceph系统,接收客户端发起的检索对象请求,基于检索对象请求确定s_max;判断与当前检索对象相邻的上次检索对象是文件还是目录;在为目录的情况下,基于s_max确定max,基于max读取当前检索对象预设次数,调整max为预设数量,基于预设数量继续读取直至本层目录读完;在为文件的情况下,基于当前检索对象的文件数量调整max,基于max读取当前检索对象直至本层目录读完,文件数量与所述max成正相关。上述过程,对当前检索对象的类型进行区分,在其为文件或者目录时采用不同的max进行灵活调整,在检索对象较多的情况下,可以提高检索效率。
附图说明
49.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1为本发明实施例公开的一种基于ceph分布式对象存储检索方法流程图;
51.图2为本发明实施例公开的一种基于ceph分布式对象存储检索装置结构框图。
具体实施方式
52.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
53.本发明公开了一种基于ceph分布式对象存储检索方法及装置,应用对ceph系统中对象的检索过程中,ceph是具有高性能、高可用、高可扩展且特性丰富的分布式存储系统,支持文件存储、对象存储及块存储。其中,在对象存储中,ceph提供的rgw组件(rados gateway),可以支持对接s3协议和switch协议,客户端通过协议进行对象(文件)的上传/下载/删除/检索等功能。同时,ceph对象存储支持使用nfs-ganesha对桶进行挂载,并以类似于文件存储的方式访问对象存储的内容,极大的提高了访问对象存储的方便性。
54.ceph对象存储的基本处理流程如下:
55.客户端有多种类型,对接s3协议的最常用客户端为s3cmd,当客户端发起任意请求后,先到达ceph端的radosgw模块,即对象存储网关模块。
56.radosgw模块内会进行请求类型判断、各种参数初始化及复杂的处理,然后调用到librados模块。
57.librados模块主要是对底层rados对象存储系统的封装,提供统一接口给rgw或其他模块,通过librados调用到rados中。
58.rados对象存储系统包含mon、osd模块,其中osd是负责对象数据/元数据存放的守护进程,请求从osd中获取完成后,原路返回结果到最上层的客户端。
59.目前在ceph对象存储中,直接使用客户端如s3cmd检索某个桶/目录对象下子目录时,也就是执行s3cmdls指令时,目录数较小和适中时,检索时间正常,但当目录数量过大时耗时非常久,大约1000个目录需要30s左右的时间才可以显示结果。当使用nfs-ganesha挂载到客户端后,通过客户端以文件存储的方式进行目录检索时(执行ls相关命令),耗时更久,1000个目录的情况下,几乎是不可用状态。
60.基于上述的问题,本发明提供了一种基于ceph分布式对象存储检索方法,应用于ceph系统,所述ceph系统包括:ceph-radosgw、librados和rados,所述检索方法的执行流程如图1所示,包括步骤:
61.s101、接收客户端发起的检索对象请求,基于所述检索对象请求确定s_max;
62.本发明实施例中,客户端发起s3cmd ls检索对象的请求,在所述ceph端属于readdir请求,判断所述检索对象请求是否是初次执行,具体的判断过程如下:初次执行的判断方式是客户端传入的检索请求url中,字段cur_marker为空。若非初次执行,则cur_marker将是上一次检索的最后一个结果。
63.如果是初次执行,readdir请求到达ceph-radosgw,rgw会根据客户端的类型创建相应的handler,创建时传入s_max为1,创建list_bucket对象(检索对象类),记录本次检索最后一次的对象s_max到全局容器中,list_bucket对象创建完成后进入list_object流程中。
64.若不是初次执行,基于truncate判断是否检索完,若检索完成,接续上次执行,则先到全局容器中查找上次检索结尾的对象是否存在,如果找到,readdir请求到达ceph-radosgw,根据客户端的类型创建handler获取上次执行的s_max值传入handler中,创建list_bucket对象(检索对象类),记录本次检索最后一次的对象s_max到全局容器中,若全局容器长度超过10则删除最早的记录。进一步的,,list_bucket对象创建完成后进入list_object流程中。若未找到,则按新请求传s_max为1处理。若未检索完成,依据初次执行进行处理
65.handler创建后调用到listbucket层进行对象检索的具体事务。
66.s102、判断与当前检索对象相邻的上次检索对象是文件还是目录;
67.本发明实施例中,在检索过程中,设置最大读取次数,其中,所述最大读取次数可以基于经验或者具体情况进行设定,本发明实施例中,不进行具体限定,优选的,本发明实施例中以所述最大读取次数为51为例进行说明,设置完所述最大读取次数后,判断attemp是否为1,若是,进行对象读取操作max=1,save_max=max,attempt ,下到rados层中,最终下到osd层中进行,若否,判断所述当前检索对象是文件还是目录,具体的判断过程如下:
68.读取到时目录的情况,可以通过判断读取结果结尾是否带有“/”,带“/”则表示为目录,不带“/”则表示为非目录,即文件。
69.s103、在所述上次检索对象为目录的情况下,基于所述s_max确定max,基于所述max读取所述当前检索对象预设次数,调整所述max为预设数量,基于所述预设数量继续读取直至本层目录读完,其中,所述本层目录为当前目录;
70.本发明实施例中,在所述上次检索对象为目录的情况下,则max恒为1。在attempt小于31的情况下,进行对象读取操作,max=1,save_max=max,max_items=1000,attempt ,下到rados层中,最终下到osd中进行读取,直到attempt》31(可通过守护进程修改)之后,max改为300000,save_max=max,max_items=1000,attempt ,下到rados层中,最终下到osd中进行读取。
71.最终检索完成后将结果记录到result中,并将最后一个结果记录到全局容器中,如果没有读完,记truncate为1,返回上层直到客户端。客户端判断truncate为1会继续发来新的readdir请求,接着上次的结果继续遍历,如此反复直到本层目录读完,truncate为0,检索结束。
72.s104、在所述上次检索对象为文件的情况下,基于所述s_max确定max,基于所述当前检索对象的文件数量调整所述max,基于所述max读取所述当前检索对象直至本层目录读完,其中,所述文件数量与所述max成正相关。
73.本发明实施例中,在所述上次检索对象为文件的情况下,则max会随着文件数的增加而一直递增,从1-》100-》1000-》10000,在s_max=1情况下,进行对象的读取操作,max=100,save_max=max,max_items=1000,attempt ,下到rados层中,最终下到osd中进行读取;在s_max=100情况下,进行对象的读取操作,max=1000,save_max=max,max_items=1000,attempt ,下到rados层中,最终下到osd中进行读取;在s_max=1000情况下,进行对象的读取操作,max=10000,save_max=max,max_items=1000,attempt ,下到rados层中,最终下到osd中进行读取。
74.最终检索完成后将结果记录到result中,并将最后一个结果记录到全局容器中,
如果没有读完,记truncate为1,返回上层直到客户端。客户端判断truncate为1会继续发来新的readdir请求,接着上次的结果继续遍历,如此反复直到本层目录读完,truncate为0,检索结束。
75.本发明公开了一种基于ceph分布式对象存储检索方法,应用于ceph系统,接收客户端发起的检索对象请求,基于检索对象请求确定s_max;判断与当前检索对象相邻的上次检索对象是文件还是目录;在为目录的情况下,基于s_max确定max,基于max读取当前检索对象预设次数,调整max为预设数量,基于预设数量继续读取直至本层目录读完;在为文件的情况下,基于当前检索对象的文件数量调整max,基于max读取当前检索对象直至本层目录读完,文件数量与所述max成正相关。上述过程,对当前检索对象的类型进行区分,在其为文件或者目录时采用不同的max进行灵活调整,在检索对象较多的情况下,可以提高检索效率。
76.本发明实施例中,现有技术中,nfs-ganesha对接ceph对象存储改造的具体处理过程如下:
77.a1.当使用nfs-ganesha挂载的linux客户端在某对象存储目录下进行ls操作时,nfs-ganesha收到请求后经过线程池调度会先进入到nfs4_compound流程中再走到fsal_readdir中进行一系列初始化以及访问性检查等工作,其中,初始化过程包括:进行nfs的各项参数校验,各种变量的提取和赋值。访问性检查一般就是对本次请求要访问的服务端进行访问权的检查,比如是否有读写权限,是否在黑名单等等,只有具有相应权限,才可以走下去,发给服务端进行请求处理。完成之后,在初次检索的情况下,最终调用到ceph-radosgw中。
78.b1.走rgw_readdir2流程,同时传入回调函数,用于对最终结果进行句柄查询和创建工作。
79.c1.在rgw_readdir2流程内,先判断出当前的读取对象所在层是否是桶所在目录(即根目录),具体的判断过程如下:判断是否是桶所在目录,即判断当前目录是否是挂载目录。举例:挂载目录是/bucket1,那么如果readdir检索的是s3://bucket1,那么就属于是查询桶所在目录,若是,则进行桶查询的工作,若不是,则会新建一个rgwreaddirrequest对象,它就是前面所述的ceph-radosgw检索流程的子类,进入执行函数中excute_reg进行一系列初始化和验证操作。
80.d1.进入到list_object流程,其中,list_object流程就是ceph-radosgw端改造中的那套流程。也就是说nfs-ganesha对接ceph对象存储改造是基于第一部分改造后进行的。调用和前面所述的ceph-radosgw检索对象流程下到osd中读取对象,检索完成后,结果位于result中,会将所有的检索结果一个一个的进行回调操作,判断result.count是否大于0,若否,返回句柄给nfs-ganesha,ganesha判断是否检索完成,若是,进入nfs-ganesha,收到请求后经过线程池调度会先进入到nfs4_compound流程中若否,调用ceph-radosgw端
81.e1.若result.count大于0,发送response给nfs-ganesha,回调回nfs-ganesha后,ganesha调用lookup请求,查询该检索对象的各项元数据信息,lookup请求再次回到ceph-radosgw端,如果是目录,则又一次调用到list_object中下到osd中检索一遍,然后提取详细的元数据信息后返回给nfs-ganesha,如果是文件,则调用rgwget请求下载该对象,将下载的对象元数据信息返回给nfs-ganesha。
82.f1.ganesha根据这些元数据创建句柄,同时ganesha会判断是否已经遍历完毕,如果未遍历完成,会再次下发readdir请求到ceph-radosgw,接续上次的结果继续检索,若遍历完成,则将句柄返回给linux客户端,客户端以文件系统的方式最终显示给用户。
83.本发明实施例中,改造后nfs-ganesha对接ceph对象存储时发起检索请求的流程,对上述处理过程中的lookup过程进行改进,改进后的方案如下:
84.a2.当使用nfs-ganesha挂载的linux客户端在某对象存储目录下进行ls操作时,nfs-ganesha收到请求后经过线程池调度会先进入到nfs4_compound流程中再走到fsal_readdir中进行一系列初始化以及访问性检查等工作,其中,初始化过程包括:进行nfs的各项参数校验,各种变量的提取和赋值。访问性检查一般就是对本次请求要访问的服务端进行访问权的检查,比如是否有读写权限,是否在黑名单等等,只有具有相应权限,才可以走下去,发给服务端进行请求处理。完成之后,在初次检索的情况下,最终调用到ceph-radosgw中。
85.b2.走rgw_readdir2流程,同时传入回调函数,用于对最终结果进行句柄查询和创建工作。
86.c1.在rgw_readdir2流程内,先判断出当前的读取对象所在层是否是桶所在目录(即根目录),具体的判断过程如下:判断是否是桶所在检索目录,即判断当前检索目录是否是挂载目录。举例:挂载目录是/bucket1,那么如果readdir检索的是s3://bucket1,那么就属于是查询桶所在检索目录,若是,则进行桶查询的工作,若不是,基于maker判断是否是初次检索,若maker不为0,判定不是初次检索,也就是属于接续检索的情况,就会先从全局容器中查找是否有上次检索的对象名,若成功找到,则可判断是目录或文件,目录的情况s_max仍为1,文件的情况s_max取上次的s_max值传入。若maker等于0,判定为第一次检索,则取s_max为1传入,则会新建一个rgwreaddirrequest对象,它就是前面所述的ceph-radosgw检索流程的子类,进入执行函数中excute_reg进行一系列初始化和验证操作。
87.d2.进入到list_object流程,调用和前面所述的ceph-radosgw检索对象流程下到osd中读取对象,但检索逻辑变为上面改造过的检索逻辑,检索完成后,会将所有的检索结果一个一个的进行回调操作。检索之后将结果存入全局列表中,并将最后一个结果存入全局容器中。
88.e2.回调回nfs-ganesha后,ganesha调用lookup请求,查询该检索对象的各项元数据信息,当检索结果为目录时,不再重新到osd中检索一遍,而是直接取用全局列表中记录的结果,就地提取元数据组成句柄返回给nfs-ganesha,省去了大量再次检索的时间。针对文件未作变动,因为文件的lookup实际是调用get请求,经过前面检索对象的操作,对象已经建立了缓存,不需要下到osd中读取,所以文件不需要做修改。
89.f2.ganesha根据这些元数据创建句柄,同时ganesha会依据truncate判断是否已经遍历完毕,如果未遍历完成,会再次下发readdir请求到ceph-radosgw,接续上次的结果继续检索,若遍历完成,则将句柄返回给linux客户端,客户端以文件系统的方式最终显示给用户。
90.本发明实施例中,针对上述处理过程,在ceph-radosgw端改造过程中中,原检索流程不区分文件/目录,且从osd中读取对象数目固定,导致无法做到灵活调整,所以在对象数较多时,客户端体验不佳。改造后的检索流程中,在当目录数较少或适中时,可以减少读多
余的对象减少一次读取所耗的时间;在目录数很多时,可以减少与osd和客户端的交互的次数减少交互过多引起的额外处理及网络通信的时间;在文件数较多时可以增加一次性读取的文件以减少rgw与osd和客户端的交互。
91.在nfs-ganesha对接ceph对象存储改造中,由于核心的检索流程替换为改造后的检索流程,所以从本质上提升了检索对象的速率。在此基础上,针对创建句柄的操作,省去了重复检索的步骤,利用第一次检索的结果进行创建,提升了大量的处理效率。
92.基于上述的一种基于ceph分布式对象存储检索方法,本发明实施例中还提供了一种基于ceph分布式对象存储检索装置,应用于ceph系统,所述ceph系统包括:ceph-radosgw、librados和rados,所述装置的结构框图如图2所示,包括:
93.确定模块201、判断模块202、第一判定模块203和第二判定模块204。
94.其中,
95.所述确定模块201,用于接收客户端发起的检索对象请求,基于所述检索对象请求确定s_max;
96.所述判断模块202,用于判断与当前检索对象相邻的上次检索对象是文件还是目录;
97.所述第一判定模块203,用于在所述上次检索对象为目录的情况下,基于所述s_max确定max,基于所述max读取所述当前检索对象预设次数,调整所述max为预设数量,基于所述预设数量继续读取直至本层目录读完,其中,所述本层目录为当前目录;
98.所述第二判定模块204,用于在所述上次检索对象为文件的情况下,基于所述s_max确定max,基于所述当前检索对象的文件数量调整所述max,基于所述max读取所述当前检索对象直至本层目录读完,其中,所述文件数量与所述max成正相关。
99.本发明公开了一种基于ceph分布式对象存储检索方法及装置,应用于ceph系统,接收客户端发起的检索对象请求,基于检索对象请求确定s_max;判断与当前检索对象相邻的上次检索对象是文件还是目录;在为目录的情况下,基于s_max确定max,基于max读取当前检索对象预设次数,调整max为预设数量,基于预设数量继续读取直至本层目录读完;在为文件的情况下,基于当前检索对象的文件数量调整max,基于max读取当前检索对象直至本层目录读完,文件数量与所述max成正相关。上述过程,对当前检索对象的类型进行区分,在其为文件或者目录时采用不同的max进行灵活调整,在检索对象较多的情况下,可以提高检索效率。
100.本发明实施例中,所述确定模块201包括:
101.判断单元205、第一设置单元206和第二设置单元207。
102.其中,
103.所述判断单元205,用于判断所述检索对象请求是否初次执行;
104.所述第一设置单元206,用于若是,将所述s_max设置为1;
105.所述第二设置单元207,用于若否,在全局容器中查找所述检索对象请求中的对象名,若找到,将所述对象名对应的历史s_max作为所述s_max,若未找到,将所述s_max设置为1。
106.本发明实施例中,其特征在于,所述第一判定模块203包括:
107.检索和反馈单元208和读取和判定单元209。
108.其中,
109.所述存储和反馈单元208,用于在所述当前检索对象读取完成的情况下,将当前检索结果存储至全局容器中,同时将预设读取标识反馈至客户端;
110.所述读取和判定单元209,用于读取所述预设读取标识,在所述预设读取标识满足预设取值的情况下,判定所述本层目录读完。
111.本发明实施例中,所述装置还包括:
112.获取和确定模块210、调用和存储模块211、调用和查询模块212和创建和反馈模块212。
113.其中,
114.所述获取和确定模块210,用于在检测到通过nfs-ganesha挂载的客户端在存储目录下进行1s操作的情况下,获取检索目录的maker值,基于所述maker值确定s_maxs;
115.所述调用和存储模块211,用于调用所述rados中的osd读取对象,将得到的检索结果存储到所述全局容器中;
116.所述调用和查询模块212,用于回调所述nfs-ganesha后,调用lookup请求,查询所述当前检索对象对应的元数据信息;
117.所述创建和反馈模块213,用于基于所述元数据信息创建句柄,将所述句柄反馈给客户端。
118.本发明实施例中,所述调用和查询模块212包括:
119.读取单元214和下载单元215。
120.其中,
121.所述读取单元214,用于若所述当前检索对象为目录的情况下,读取所述全局容器中对应的元数据信息;
122.所述下载单元216,用于若所述当前检索对象为文件的情况下,调用get请求下载所述当前检索对象对应的元数据信息。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
123.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
124.以上对本发明所提供的一种基于ceph分布式对象存储检索方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献