CN110990339B - 分布式存储的文件读写方法、装置、平台及可读存储介质 - Google Patents
分布式存储的文件读写方法、装置、平台及可读存储介质 Download PDFInfo
- Publication number
- CN110990339B CN110990339B CN201910980132.8A CN201910980132A CN110990339B CN 110990339 B CN110990339 B CN 110990339B CN 201910980132 A CN201910980132 A CN 201910980132A CN 110990339 B CN110990339 B CN 110990339B
- Authority
- CN
- China
- Prior art keywords
- cluster
- file
- priority
- layer
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式存储的文件读写方法,该方法包括:当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态;若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群;根据所述写入请求,获取待写入文件,并将所述待写入文件写入所述第一目标集群。本发明还公开了一种分布式存储的文件读写装置、平台和计算机可读存储介质。本发明在集群处于backfill状态时,也可以实现写入功能,并且不会造成集群的不可用,提高了存储服务的可用性。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种分布式存储的文件读写方法、装置、平台及计算机可读存储介质。
背景技术
由于分布式对象存储***具有高可靠性,分布式对象存储***被普遍运用于各种存储场景中。ceph(ceph,分布式文件***)是实现对象存储的一种分布式对象存储***,基于ceph实现的分布式对象存储又是目前主流的存储方式。分布式对象存储***通过包括多个集群,当集群的存储量到达上限需要进行集群扩容、或集群中某个OSD(Object-basedStorage Device,对象存储)节点故障需要更换,服务方不可能让用户停止写入请求或读取请求。如果通过停止写入请求和读取请求的方式进行集群扩容或更换,这将无法保证存储服务的高可用性。
然而,当需要对集群扩容或集群中有OSD故障需要更换时,如果这段期间有写入请求,那将导致集群长时间处于回填偏差backfill状态中,随着写入请求增大,集群的响应时效性也会剧增,最终造成集群的不可用。
发明内容
本发明的主要目的在于提供一种分布式存储的文件读写方法、装置、平台及计算机可读存储介质,旨在解决由于分布式对象存储***中的集群长时间处于backfill状态,而导致集群不可用的技术问题。
为实现上述目的,本发明提供一种分布式存储的文件读写方法,所述分布式存储的文件读写方法包括以下步骤:
当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态;
若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群;
根据所述写入请求,获取待写入文件,并将所述待写入文件写入所述第一目标集群。
可选地,所述若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群的步骤包括:
从所述集群层中查找出未处于backfill状态的各个初始集群;
检测各个所述初始集群的第一优先级;
从所述初始集群中,查找出所述第一优先级最高的集群,以作为第一目标集群。
可选地,所述检测各个所述初始集群的第一优先级的步骤包括:
向所述初始集群发送检测请求;
获取所述初始集群基于所述检测请求反馈的权重信息;
根据所述权重信息,确定所述初始集群的第一优先级。
可选地,所述权重信息包括所述初始集群的可用性、所述初始集群的网络时延和/所述初始集群的异常等级;
所述根据所述权重信息,确定所述初始集群的第一优先级的步骤包括:
根据所述可用性、所述网络时延和/所述异常等级,确定所述初始集群的健康分数,其中,所述可用性越高,所述健康分数越高,所述网络时延越小,所述健康分数越高,所述异常等级越低,所述健康分数越高;
根据所述健康分数,确定所述初始集群的第一优先级;
其中,所述健康分数越高,所述初始集群的第一优先级越高。
可选地,所述从所述集群层中查找出未处于backfill状态的各个初始集群的步骤包括:
检测所述集群层中的各个集群的健康状态;
根据所述健康状态,确定所述集群是否处于backfill状态;
若所述集群未处于backfill状态,则获取所述未处于backfill状态的所述集群,以作为所述初始集群。
可选地,所述分布式存储的文件读写方法还包括:
当检测到用户层的读取请求后,确定所述读取请求的待读取文件,并检测所述集群层中各个集群的第二优先级;
依据所述第二优先级由高至低,依次确定各个所述集群是否存在所述待读取文件,直至查找出存在所述待读取文件的第二目标集群;
从所述第二目标集群中读取所述待读取文件,并反馈至所述用户层。
可选地,所述从所述第二目标集群中读取所述待读取文件,并反馈至所述用户层的步骤包括:
向所述第二目标集群发送所述待读取文件的下载请求;
获取所述第二目标集群基于所述下载请求反馈的所述待读取文件;
将所述待读取文件发送至所述用户层。
此外,为实现上述目的,本发明还提供一种分布式存储的文件读写装置,所述分布式存储的文件读写装置包括:
检测模块,用于当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态;
集群查找模块,用于若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群;
写入模块,用于根据所述写入请求,获取待写入文件,并将所述待写入文件写入所述第一目标集群。
此外,为实现上述目的,本发明还提供一种分布式存储的文件读写平台,所述分布式存储的文件读写平台包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的分布式存储的文件读写程序,其中所述分布式存储的文件读写程序被所述处理器执行时,实现如上述的分布式存储的文件读写方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有分布式存储的文件读写程序,其中所述分布式存储的文件读写程序被处理器执行时,实现如上述的分布式存储的文件读写方法的步骤。
本发明实施例针对在backfill状态下,只会在写入时才会导致集群不可用的特点,在集群层中预设某个集群作为优先级最高的,用于优先写入文件的优先集群。当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态;若检测到优先集群处于backfill状态,则从集群层中查找出优先级最高且未处于backfill状态的第一目标集群,以代替优先集群完成用户层的文件写入请求;并根据写入请求,获取待写入文件,并将待写入文件写入所述第一目标集群,从而实现用户层向集群层写入文件的功能,保证了当集群处于backfill状态时,也可以实现写入功能,并且不会造成集群的不可用,提高了存储服务的可用性;并且由于处于backfill状态的集群没有被停用,故处于backfill状态的集群仍然可以用于读取服务,提高了backfill状态的集群的可用性。
附图说明
图1为本发明分布式存储的文件读写方法第一实施例的流程示意图;
图2为本发明分布式存储的文件读写方法第二实施例中步骤S20的细化流程示意图;
图3为本发明分布式存储的文件读写方法第二实施例中步骤S22的细化流程示意图;
图4为本发明分布式存储的文件读写方法第四实施例的流程示意图;
图5为本发明分布式存储的文件读写装置第一实施例的功能模块示意图;
图6为本发明实施例方案涉及的分布式存储的文件读写平台的硬件结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种分布式存储的文件读写方法,参照图1,图1为本发明分布式存储的文件读写方法第一实施例的流程示意图。
本发明实施例提供了分布式存储的文件读写方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
分布式存储的文件读写方法应用于分布式存储的文件读写平台、服务器或者终端中,终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(PersonalDigital Assistant,PDA)等移动终端,以及诸如数字TV、台式计算机等固定终端。在分布式存储的文件读写方法的各个实施例中,为了便于描述,以分布式存储的文件读写平台为执行主体进行阐述各个实施例。
其中,本发明实施例中涉及用户层、服务层和集群层共三层,分布式存储的文件读写平台相当于设置于用户层与集群层之间的服务层;1、用户层,主要用于向服务层发送文件的读取请求或写入请求;2、集群层,包括多个ceph集群(后续简称集群),各个ceph集群用于被读取文件或写入文件;3、服务层,主要用于检测集群层的集群是否处于backfill状态、集群的优先级,并根据各个集群的状态和优先级,以及用户层的读写请求,从集群层的集群中读取文件或将文件写入集群层的集群中。
在本发明分布式存储的文件读写方法第一实施例中,分布式存储的文件读写方法包括:
步骤S10,当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态;
在本发明实施例中,针对在backfill状态下,只会在写入时才会导致集群不可用的特点,采取的写入策略为:优先级越高的集群,越优先写入;采取的读取策略为:先写先读,由于优先级越高越优先写入,因此读取时,优先级越高越优先读取。其中,读取策略具体实现为:依据集群优先级由高至低,服务层依次询问集群层的各个集群是否存在待读取的文件,直至查找出存在待读取的文件的集群,并从该集群中下载该文件,然后将所下载的文件反馈至用户层。
其中,集群层中的每个集群的优先级,由该集群的健康状态来确定,集群的健康状态由集群的可用性、集群的网络时延、集群的异常等级等信息确定,集群的可用性、集群的网络时延、集群的异常等级等信息决定集群的健康分数。在本实施例中,将集群的健康分数作为集群的优先级;集群的健康分数越高,集群的优先级越高。具体地,当需要检测集群层中的各个集群的优先级相对高低时,服务层向集群层的各个集群发起检测请求,然后获取各个集群基于检测请求反馈的权重信息,如集群的可用性、集群的网络时延、集群的异常等级等,然后根据每个集群的可用性、网络时延、异常等级等权重信息确定各个集群的健康分数越高,从而确定各个集群的优先级相对高低。
其中,写入请求,是指当用户层需要将文件写入集群层时,用户层向服务层发送的请求,以供服务层根据用户层的写入请求,将文件写入集群层的集群中。
优先集群,是指集群层中预设为优先级最高的,用于优先写入文件的集群;初始状态下(在集群的健康分数未发生变化的情况下),在集群层的各个集群中,预设的优先集群的健康分数最高,优先集群的优先级最高。
当检测到用户层的写入请求后,从所述集群层的各个集群中获取预设的优先集群;检测所述优先集群是否处于backfill状态。具体地,向集群层预设的优先集群发送健康检查请求,然后获取集群层的预设的优先集群在接收到健康检查请求后反馈的集群的可用性、集群的网络时延、集群的异常等级等健康信息,并根据优先集群反馈的健康信息,确定优先集群是否处于backfill状态。
步骤S20,若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群;
其中,第一目标集群,是指当集群层预设的优先集群处于backfill状态时,集群层中优先级最高且未处于backfill状态的集群。
由于在优先集群处于backfill状态时,将用户层请求写入的文件写入集群层的优先集群中,将会导致优先集群长时间处于backfill状态中而造成优先集群的不可用。因此,当优先集群处于backfill状态时,通过从集群层中,找出优先级最高且未处于backfill状态的集群,以代替优先集群执行用户层的文件写入请求。
具体地,一种实施方式为,如果用户层存在写入请求,并且检测到集群层预设的优先集群处于backfill状态,则从集群层的所有集群中,查找出所有未处于backfill状态的所有集群(各个集群是否处于backfill状态的检测方式与优先集群的检测方式类似,在此不再赘述)。例如,集群层有三个集群:ceph-1、ceph-2、ceph-3,其中ceph-3处于backfill状态,则从所有集群中查找出未处于backfill状态的所有集群为ceph-1、ceph-2。然后检测未处于backfill状态的每个集群的优先级,并按照优先级从高至低,将未处于backfill状态的所有集群进行排序。最后,从未处于backfill状态的各个集群中,查找出优先级最高的集群,以作为第一目标集群。
一种实施方式为,如果用户层存在写入请求,并且检测到集群层预设的优先集群处于backfill状态,则检测集群层每个集群的优先级,并按照优先级从高至低,将集群层所有集群进行排序。然后,从集群层各个集群中,查找出未处于backfill状态的所有集群(各个集群是否处于backfill状态的检测方式与优先集群的检测方式类似,在此不再赘述);最后未处于backfill状态的所有集群中,查找出优先级最高的集群,得到集群层中优先级最高且未处于backfill状态的集群,以作为第一目标集群。
如果用户层存在写入请求,但检测到集群层预设的优先集群未处于backfill状态,则根据用户层的写入请求,获取待写入文件,并将待写入文件写入优先集群中。
步骤S30,根据所述写入请求,获取待写入文件,并将所述待写入文件写入所述第一目标集群。
具体地,根据用户层的写入请求,确定并获取用户层的待写入文件,将用户层的待写入文件写入至集群层的第一目标集群中。
其中,待写入文件,是指根据用户层的写入请求确定的,用户层需要写入至集群层的文件。
在本实施例中,针对在backfill状态下,只会在写入时才会导致集群不可用的特点,在集群层中预设某个集群作为优先级最高的,用于优先写入文件的优先集群;并将集群层的集群的可用状态设置为:无论集群是否处于backfill状态,集群均不会被停用。当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态;若检测到优先集群处于backfill状态,则从集群层中查找出优先级最高且未处于backfill状态的第一目标集群,以代替优先集群完成用户层的文件写入请求;并根据写入请求,获取待写入文件,并将待写入文件写入所述第一目标集群,从而实现用户层向集群层写入文件的功能,保证了当集群处于backfill状态时,也可以实现写入功能,并且不会造成集群的不可用,提高了存储服务的可用性;并且由于处于backfill状态的集群没有被停用,故处于backfill状态的集群仍然可以用于读取服务,提高了backfill状态的集群的可用性。
进一步地,步骤S10之后还包括:
若检测到所述优先集群未处于backfill状态,则根据所述写入请求,获取待写入文件;
将所述待写入文件写入所述优先集群。
由于在优先集群未处于backfill状态时,将用户层请求写入的文件写入集群层的优先集群中,不会导致优先集群长时间处于backfill状态中而造成优先集群的不可用。如果用户层存在写入请求,且检测到集群层预设的优先集群未处于backfill状态,根据用户层的写入请求,获取待写入文件,并将待写入文件写入优先集群中。
当优先集群处于backfill状态时,通过从集群层中,查找出优先级最高且未处于backfill状态的集群,以代替优先集群执行用户层的文件写入请求,并根据用户层的写入请求,获取待写入文件,将待写入文件写入该集群。
在本实施例中,针对优先集群未处于backfill状态时,将用户层请求写入的文件写入集群层的优先集群中,不会导致优先集群长时间处于backfill状态中而造成优先集群的不可用。当优先集群未处于backfill状态时,若检测到用户层存在写入请求,则将用户请求写入的文件写入优先集群中,保证了优先集群的高可用性。
进一步地,参照图2,图2为本发明分布式存储的文件读写方法第二实施例中步骤S20的细化流程示意图。基于上述第一实施例,提出本发明分布式存储的文件读写方法第二实施例,步骤S20包括:
步骤S21,若检测到所述优先集群处于backfill状态,则从所述集群层中查找出未处于backfill状态的各个初始集群;
如果用户层存在写入请求,并且检测到集群层预设的优先集群处于backfill状态,则从集群层的所有集群中,查找出所有未处于backfill状态的所有集群。具体地,向集群层各个集群发送健康检查请求,然后获取集群层各个集群在接收到健康检查请求后反馈的集群的可用性、集群的网络时延、集群的异常等级等健康信息,并根据优先集群反馈的健康信息,确定各个集群是否处于backfill状态。
然后从各个集群中,获取未处于backfill状态的各个集群,以作为初始集群。
其中,初始集群,是指当优先集群处于backfill状态时,集群层中未处于backfill状态的集群。
步骤S22,检测各个所述初始集群的第一优先级;
具体地,向各个初始集群发起检测请求,然后获取每个初始集群基于检测请求反馈的权重信息,如集群的可用性、集群的网络时延、集群的异常等级等,然后根据每个初始集群的可用性、网络时延、异常等级等权重信息确定每个初始集群的优先级,以作为初始集群的第一优先级。同理,得出各个初始集群的第一优先级。
其中,第一优先级,是指初始集群的优先级,即初始集群的健康分数。
具体地,参照图3,图3为本发明分布式存储的文件读写方法第二实施例中步骤S22的细化流程示意图,步骤S22包括:
步骤A1,向所述初始集群发送检测请求;
其中,检测请求,是指服务层向集群层的集群发起的,用于检测集群的可用性、集群的网络时延、集群的异常等级等健康信息的请求。
步骤A2,获取所述初始集群基于所述检测请求反馈的权重信息;
在向各个初始集群发送检测请求后,获取每个初始集群基于检测请求反馈的集群自身的权重信息。
其中,权重信息,是指初始基于检测请求反馈的,初始集群自身的可用性、网络时延、异常等级等健康信息。
步骤A3,根据所述权重信息,确定所述初始集群的第一优先级。
进一步地,所述权重信息包括所述初始集群的可用性、所述初始集群的网络时延和/所述初始集群的异常等级;
所述根据所述权重信息,确定所述初始集群的第一优先级的步骤包括:
根据所述可用性、所述网络时延和/所述异常等级,确定所述初始集群的健康分数,其中,所述可用性越高,所述健康分数越高,所述网络时延越小,所述健康分数越高,所述异常等级越低,所述健康分数越高;
根据所述健康分数,确定所述初始集群的第一优先级;
其中,所述健康分数越高,所述初始集群的第一优先级越高。
具体地,根据每个初始集群的权重信息(集群自身的可用性、网络时延、异常等级等健康信息),确定每个初始集群的健康分数,并将每个初始集群的健康分数作为每个初始集群的第一优先级。同理,得出各个初始集群的第一优先级。其中,初始集群的可用性越高,初始集群的健康分数越高,初始集群的优先级也越高;集群的网络时延越小,初始集群的健康分数越高,集群的优先级越高;集群的异常等级越低,初始集群的健康分数越高,集群的优先级越高。
在本实施例中,通过向未处于backfill状态的初始集群发送检测请求,以检测初始集群的健康状态,并根据初始集群的健康状态确定初始集群的优先级,并将健康状态最好的初始集群作为优先级最高的集群,保证了后续所选取的第一目标集群的健康状态最好、可用性最高,提高了后续采用第一目标集群代替优先集群与服务层进行交互,完成用户层的写入请求的可用性。
步骤S23,从所述初始集群中,查找出所述第一优先级最高的集群,以作为第一目标集群。
具体地,按照第一优先级从高至低,将未处于backfill状态的初始集群进行排序,并从各个初始集群中,获取排序最靠前的初始集群,以作为第一目标集群。
在本实施例中,当优先集群处于backfill状态时,通过在集群层中查找出优先级最高且未处于backfill状态的集群,作为第一目标集群。并通过将优先级最高且未处于backfill状态的第一目标集群,代替优先集群,与服务层进行交互,完成用户层的写入请求,由于第一目标集群的优先级最高且未处于backfill状态,从而保证了写入功能的高可用性。
进一步地,基于上述第二实施例,提出本发明分布式存储的文件读写方法第三实施例,步骤S23包括:
步骤B1,检测所述集群层中的各个集群的健康状态;
具体地,向集群层各个集群发送健康检查请求,然后获取集群层各个集群在接收到健康检查请求后反馈的集群的可用性、集群的网络时延、集群的异常等级等状态。其中,健康状态,是指集群的可用性、集群的网络时延、集群的异常等级等状态。
步骤B2,根据所述健康状态,确定所述集群是否处于backfill状态;
然后,从每个集群的可用性、网络时延、异常等级等状态中,查找并根据与形成backfill状态相关的状态,确定每个集群是否处于backfill状态。同理,确定,集群层的每个集群是否处于backfill状态。
步骤B3,若所述集群未处于backfill状态,则获取所述未处于backfill状态的所述集群,以作为所述初始集群。
如果集群未处于backfill状态,则获取未处于backfill状态的所述集群,以作为所述初始集群。
由于获取集群的最终目的是:从初始集群中查找出优先级最高的集群,代替优先集群执行用户层的文件写入请求。而当集群处于backfill状态时,将用户层请求写入的文件写入该集群中,将会导致该集群长时间处于backfill状态中而造成集群的不可用。因此,如果集群处于backfill状态,则不获取该集群。
在本实施例中,通过检测各个集群的状态(可用性、网络时延、异常等级等),并根据集群的状态确定集群是否处于backfill状态,精准地确定了各个集群是否处于backfill状态,保证了后续所选取的第一目标集群不是处于backfill状态的集群。
进一步地,参照图4,图4为本发明分布式存储的文件读写方法第四实施例的流程示意图,基于上述第一实施例、第二实施例或第三实施例,提出本发明分布式存储的文件读写方法第四实施例,分布式存储的文件读写方法还包括:
步骤S40,当检测到用户层的读取请求后,确定所述读取请求的待读取文件,并检测所述集群层中各个集群的第二优先级;
由于
当检测到用户层的读取请求后,从用户层的读取请求中获取用户层请求的信息,从而确定用户层的读取请求对应的待读取文件。例如,用户层发起读取“图片A”的读取请求后,服务层将检测用户层的读取请求,并根据用户层的读取请求,确定用户层的读取请求对应的待读取文件为“图片A”。并向集群层中每个集群发起检测请求,然后获取每个集群基于检测请求反馈的权重信息,如集群的可用性、集群的网络时延、集群的异常等级等,然后根据每个集群的可用性、网络时延、异常等级等权重信息确定每个集群的优先级,以作为集群的第二优先级。同理,得出各个集群的第二优先级。其中,集群的可用性越高,集群的健康分数越高,集群的优先级也越高;集群的网络时延越小,集群的健康分数越高,集群的优先级越高;集群的异常等级越低,集群的健康分数越高,集群的优先级越高。
其中,读取请求,是指当用户层需要从集群层读取文件时,用户层向服务层发送的请求,以供服务层根据用户层的读取请求,从群层的集群中查找出存在用户层请求读取的文件的集群,并向该集群发送下载请求并从集群层读取文件反馈至用户层,从而实现用户层从集群层读取文件的功能。
待读取文件,是指根据用户层的写入请求确定的,用户层需要从集群层读取的文件。
第二优先级,是指当优先集群未处于backfill状态时,集群层中的集群的优先级,即当优先集群未处于backfill状态时,集群层中的集群的健康分数。第一优先级与第二优先级都是指集群层的集群的优先级(即健康状态),不同的是第一优先是指优先集群处于backfill状态时,集群层中未处于backfill状态的集群的优先级;第二优先级是指优先集群未处于backfill状态时,集群层中的集群的优先级。
步骤S50,依据所述第二优先级由高至低,依次确定各个所述集群是否存在所述待读取文件,直至查找出存在所述待读取文件的第二目标集群;
首先,依据第二优先级由高至低,将集群层的各个集群进行排序,得到集群序列。然后,向集群序列中最靠前的集群发起询问请求(用于询问该集群中是否存在待读取文件),以供该集群在接收到询问请求时检测该集群自身是否存在待读取文件。
接着,获取该集群基于询问请求反馈的回复信息(用于确定该集群中是否存在待读取文件),再根据该集群基于询问请求反馈的回复信息,判断该集群中是否存在待读取文件。如果该集群中存在待读取文件,则将该集群作为第二目标集群。如果该集群中不存在待读取文件,则向集群序列中紧接该集群的后一个集群发起询问请求(用于询问该后一个集群中是否存在待读取文件),以供该后一个集群在接收到询问请求时检测该后一个集群自身是否存在待读取文件。
获取该后一个集群基于询问请求反馈的回复信息(用于确定该后一个集群中是否存在待读取文件),再根据该后一个集群基于询问请求反馈的回复信息,判断该后一个集群中是否存在待读取文件。如果该后一个集群中存在待读取文件,则将该后一个集群作为第二目标集群。如果该后一个集群中不存在待读取文件,则同理,再向集群序列中紧接该后一个集群后的一个集群发起询问请求,直至查找出存在待读取文件的第二目标集群。
其中,第二目标集群,是指当检测到用户层的读取请求时,集群层中存在与读取请求对应的待读取文件的集群。第一目标集群与第二目标集群的不同之处在于,第一目标集群是用于写入用户层请求写入的文件的集群,第二目标集群是用于读取用户层请求读取的文件的集群。
步骤S60,从所述第二目标集群中读取所述待读取文件,并反馈至所述用户层。
向所述第二目标集群中发送待读取文件的下载请求,获取第二目标集群基于下载请求反馈的待读取文件,将待读取文件发送至用户层。
在本实施例中,针对在backfill状态下,只会在写入时才会导致集群不可用,在读取时不会导致集群不可用的特点,将集群层的集群的可用状态设置为:无论集群是否处于backfill状态,集群均不会被停用。当检测到用户层的读取请求后,依据集群层各个集群的优先级由高至低,依次询问各个集群是否存在用户层请求读取的文件,直至查找出存在用户层请求读取的文件的目标集群;然后从目标集群读取用户层请求读取的文件,并将用户层请求读取的文件反馈至用户层,从而实现用户层向集群层读取文件的功能。由于处于backfill状态的集群没有被停用,故处于backfill状态的集群仍然可以用于读取服务;所以无论集群是否处于backfill状态,均可实现用户层向集群层读取文件的功能,提高了处于backfill状态的集群的可用性。
具体地,步骤S60包括:
步骤C1,向所述第二目标集群发送所述待读取文件的下载请求;
其中,下载请求,是指当用户层需要从集群层读取文件时,服务层向集群层的第二目标集群发送的请求,以供第二目标集群根据服务层的下载请求,将第二目标集群中保存的待读取文件反馈至服务层,服务层将待读取文件反馈至用户层,从而实现用户层从集群层读取文件的功能。
步骤C2,获取所述第二目标集群基于所述下载请求反馈的所述待读取文件;
向第二目标集群中发送待读取文件的下载请求,以供第二目标集群根据服务层的下载请求,将第二目标集群中保存的待读取文件反馈至服务层。然后,获取集群层的第二目标集群反馈的待读取文件。
步骤C3,将所述待读取文件发送至所述用户层。
最后,将集群层的第二目标集群反馈的待读取文件发送至用户层,从而完成用户层从集群层读取文件的功能。
在本实施例中,通过向集群层的第二目标集群发送文件的下载请求,以供第二目标集群根据服务层的下载请求反馈用户层请求读取的文件,并获取第二目标集群基于下载请求反馈的待读取文件;保证了服务层可以完成从集群层获取用户层请求读取的文件,并反馈至用户层,进而实现用户层向集群层读取文件的功能。
其中,步骤S40至步骤S60可以处于步骤S10、步骤S20以及步骤S30中任意一个步骤的步骤之前或者步骤之后执行,即步骤S40至步骤S60的执行不受步骤S10、步骤S20以及步骤S30执行的影响。
此外,本发明还提供一种分布式存储的文件读写装置。
参照图5,图5为本发明分布式存储的文件读写装置第一实施例的功能模块示意图。
本实施例中,所述分布式存储的文件读写装置包括:
检测模块10,用于当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态;
集群查找模块20,用于若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群;
写入模块30,用于根据所述写入请求,获取待写入文件,并将所述待写入文件写入所述第一目标集群。
进一步的,所述集群查找模块20还包括:
第一查找单元,用于从所述集群层中查找出未处于backfill状态的各个初始集群;
检测单元,用于检测各个所述初始集群的第一优先级;
第二查找单元,用于从所述初始集群中,查找出所述第一优先级最高的集群,以作为第一目标集群。
进一步的,所述检测单元还包括:
请求子单元,用于向所述初始集群发送检测请求;
信息获取子单元,用于获取所述初始集群基于所述检测请求反馈的权重信息;
优先级确定子单元,用于根据所述权重信息,确定所述初始集群的第一优先级。
进一步的,所述权重信息包括所述初始集群的可用性、所述初始集群的网络时延和/所述初始集群的异常等级;
所述优先级确定子单元还包括:
健康分数确定单元,用于根据所述可用性、所述网络时延和/所述异常等级,确定所述初始集群的健康分数,其中,所述可用性越高,所述健康分数越高,所述网络时延越小,所述健康分数越高,所述异常等级越低,所述健康分数越高;
优先级确定单元,用于根据所述健康分数,确定所述初始集群的第一优先级;
其中,所述健康分数越高,所述初始集群的第一优先级越高。
进一步的,所述第一查找单元还包括:
检测子单元,用于检测所述集群层中的各个集群的健康状态;
状态确定子单元,用于根据所述健康状态,确定所述集群是否处于backfill状态;
集群确定子单元,用于若所述集群未处于backfill状态,则获取所述未处于backfill状态的所述集群,以作为所述初始集群。
进一步的,所述分布式存储的文件读写装置还包括:
优先级确定模块,用于当检测到用户层的读取请求后,确定所述读取请求的待读取文件,并检测所述集群层中各个集群的第二优先级;
集群确定模块,用于依据所述第二优先级由高至低,依次确定各个所述集群是否存在所述待读取文件,直至查找出存在所述待读取文件的第二目标集群;
读取模块,用于从所述第二目标集群中读取所述待读取文件,并反馈至所述用户层。
进一步的,所述读取模块还包括:
请求单元,用于向所述第二目标集群发送所述待读取文件的下载请求;
文件获取单元,用于获取所述第二目标集群基于所述下载请求反馈的所述待读取文件;
发送单元,用于将所述待读取文件发送至所述用户层。
进一步的,所述写入模块,还用于若检测到所述优先集群未处于backfill状态,则根据所述写入请求,获取待写入文件;
将所述待写入文件写入所述优先集群。
其中,分布式存储的文件读写装置中的各个实施例与上述分布式存储的文件读写方法的各实施例基本相同,在此不再详细赘述。
此外,本发明还提供一种分布式存储的文件读写平台。如图6所示,图6是本发明实施例方案涉及的分布式存储的文件读写平台的硬件运行环境的结构示意图。
需要说明的是,图6即可为分布式存储的文件读写平台的硬件运行环境的结构示意图。本发明实施例分布式存储的文件读写平台可以是PC,便携计算机等终端设备。
如图6所示,分布式存储的文件读写平台可以包括处理器1001(例如CPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口);存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,该分布式存储的文件读写平台还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。
本领域技术人员可以理解,图6中示出的分布式存储的文件读写平台的硬件结构并不构成对分布式存储的文件读写平台的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图6,图6中作为一种计算机可读存储介质的存储器1005可以包括操作***、网络通信模块以及分布式存储的文件读写程序。
在图6中,网络通信模块主要用于连接数据库,与数据库进行数据通信;而处理器1001可以调用存储器1005中存储的分布式存储的文件读写程序,并执行如上所述的分布式存储的文件读写方法的步骤。
本发明分布式存储的文件读写平台具体实施方式与上述分布式存储的文件读写方法各实施例基本相同,在此不再赘述。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有分布式存储的文件读写程序,所述分布式存储的文件读写程序被处理器执行时实现如下步骤:
当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态;
若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群;
根据所述写入请求,获取待写入文件,并将所述待写入文件写入所述第一目标集群。
进一步地,所述若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群的步骤包括:
从所述集群层中查找出未处于backfill状态的各个初始集群;
检测各个所述初始集群的第一优先级;
从所述初始集群中,查找出所述第一优先级最高的集群,以作为第一目标集群。
进一步地,所述检测各个所述初始集群的优先级的步骤包括:
向所述初始集群发送检测请求;
获取所述初始集群基于所述检测请求反馈的权重信息;
根据所述权重信息,确定所述初始集群的第一优先级。
进一步地,所述权重信息包括所述初始集群的可用性、所述初始集群的网络时延和/所述初始集群的异常等级;
所述根据所述权重信息,确定所述初始集群的第一优先级的步骤包括:
根据所述可用性、所述网络时延和/所述异常等级,确定所述初始集群的健康分数,其中,所述可用性越高,所述健康分数越高,所述网络时延越小,所述健康分数越高,所述异常等级越低,所述健康分数越高;
根据所述健康分数,确定所述初始集群的第一优先级;
其中,所述健康分数越高,所述初始集群的第一优先级越高。
进一步地,所述从所述集群层中查找出未处于backfill状态的各个初始集群的步骤包括:
检测所述集群层中的各个集群的健康状态;
根据所述健康状态,确定所述集群是否处于backfill状态;
若所述集群未处于backfill状态,则获取所述未处于backfill状态的所述集群,以作为所述初始集群。
进一步地,所述分布式存储的文件读写方法还包括:
当检测到用户层的读取请求后,确定所述读取请求的待读取文件,并检测所述集群层中各个集群的第二优先级;
依据所述第二优先级由高至低,依次确定各个所述集群是否存在所述待读取文件,直至查找出存在所述待读取文件的第二目标集群;
从所述第二目标集群中读取所述待读取文件,并反馈至所述用户层。
进一步地,所述从所述第二目标集群中读取所述待读取文件,并反馈至所述用户层的步骤包括:
向所述第二目标集群发送所述待读取文件的下载请求;
获取所述第二目标集群基于所述下载请求反馈的所述待读取文件;
将所述待读取文件发送至所述用户层。
进一步地,所述当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态的步骤之后还包括:
若检测到所述优先集群未处于backfill状态,则根据所述写入请求,获取待写入文件;
将所述待写入文件写入所述优先集群。
本发明计算机可读存储介质具体实施方式与上述分布式存储的文件读写方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种分布式存储的文件读写方法,其特征在于,所述分布式存储的文件读写方法包括以下步骤:
当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态;
若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群;
根据所述写入请求,获取待写入文件,并将所述待写入文件写入所述第一目标集群;
所述若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群的步骤包括:
若检测到所述优先集群处于backfill状态,则从所述集群层中查找出未处于backfill状态的各个初始集群;
检测各个所述初始集群的第一优先级;
按照第一优先级从高至低,将未处于backfill状态的初始集群进行排序,获取排序最靠前的所述初始集群,以作为第一目标集群;
所述从所述集群层中查找出未处于backfill状态的各个初始集群的步骤包括:
检测所述集群层中的各个集群的健康状态;
根据所述健康状态,确定所述集群是否处于backfill状态;
若所述集群未处于backfill状态,则获取所述未处于backfill状态的所述集群,以作为所述初始集群。
2.如权利要求1所述的分布式存储的文件读写方法,其特征在于,所述检测各个所述初始集群的第一优先级的步骤包括:
向所述初始集群发送检测请求;
获取所述初始集群基于所述检测请求反馈的权重信息;
根据所述权重信息,确定所述初始集群的第一优先级。
3.如权利要求2所述的分布式存储的文件读写方法,其特征在于,所述权重信息包括所述初始集群的可用性、所述初始集群的网络时延和/所述初始集群的异常等级;
所述根据所述权重信息,确定所述初始集群的第一优先级的步骤包括:
根据所述可用性、所述网络时延和/或所述异常等级,确定所述初始集群的健康分数,其中,所述可用性越高,所述健康分数越高;所述网络时延越小,所述健康分数越高;所述异常等级越低,所述健康分数越高;
根据所述健康分数,确定所述初始集群的第一优先级;
其中,所述健康分数越高,所述初始集群的第一优先级越高。
4.如权利要求1至3任一项所述的分布式存储的文件读写方法,其特征在于,所述分布式存储的文件读写方法还包括:
当检测到用户层的读取请求后,确定所述读取请求的待读取文件,并检测所述集群层中各个集群的第二优先级;
依据所述第二优先级由高至低,依次确定各个所述集群是否存在所述待读取文件,直至查找出存在所述待读取文件的第二目标集群;
从所述第二目标集群中读取所述待读取文件,并反馈至所述用户层。
5.如权利要求4所述的分布式存储的文件读写方法,其特征在于,所述从所述第二目标集群中读取所述待读取文件,并反馈至所述用户层的步骤包括:
向所述第二目标集群发送所述待读取文件的下载请求;
获取所述第二目标集群基于所述下载请求反馈的所述待读取文件;
将所述待读取文件发送至所述用户层。
6.一种分布式存储的文件读写装置,其特征在于,所述分布式存储的文件读写装置包括:
检测模块,用于当检测到用户层的写入请求后,检测集群层中预设的优先集群是否处于回填偏差backfill状态;
集群查找模块,用于若检测到所述优先集群处于backfill状态,则从所述集群层中查找出优先级最高且未处于backfill状态的第一目标集群;
写入模块,用于根据所述写入请求,获取待写入文件,并将所述待写入文件写入所述第一目标集群;
其中,所述集群查找模块,还用于若检测到所述优先集群处于backfill状态,则从所述集群层中查找出未处于backfill状态的各个初始集群;检测各个所述初始集群的第一优先级;按照第一优先级从高至低,将未处于backfill状态的初始集群进行排序,获取排序最靠前的所述初始集群,以作为第一目标集群;
其中,所述集群查找模块,还用于检测所述集群层中的各个集群的健康状态;根据所述健康状态,确定所述集群是否处于backfill状态;若所述集群未处于backfill状态,则获取所述未处于backfill状态的所述集群,以作为所述初始集群。
7.一种分布式存储的文件读写平台,其特征在于,所述分布式存储的文件读写平台包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的分布式存储的文件读写程序,其中所述分布式存储的文件读写程序被所述处理器执行时,实现如权利要求1至5中任一项所述的分布式存储的文件读写方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有分布式存储的文件读写程序,其中所述分布式存储的文件读写程序被处理器执行时,实现如权利要求1至5中任一项所述的分布式存储的文件读写方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910980132.8A CN110990339B (zh) | 2019-10-15 | 2019-10-15 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
PCT/CN2020/093105 WO2021073111A1 (zh) | 2019-10-15 | 2020-05-29 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910980132.8A CN110990339B (zh) | 2019-10-15 | 2019-10-15 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990339A CN110990339A (zh) | 2020-04-10 |
CN110990339B true CN110990339B (zh) | 2023-09-19 |
Family
ID=70082023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910980132.8A Active CN110990339B (zh) | 2019-10-15 | 2019-10-15 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110990339B (zh) |
WO (1) | WO2021073111A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990339B (zh) * | 2019-10-15 | 2023-09-19 | 平安科技(深圳)有限公司 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
CN114189547B (zh) * | 2022-02-14 | 2022-05-03 | 北京安盟信息技术股份有限公司 | 一种集群下ssl隧道快速切换方法 |
CN115292247B (zh) * | 2022-09-28 | 2022-12-06 | 北京鼎轩科技有限责任公司 | 一种文件读取方法、装置、电子设备和存储介质 |
CN115733771B (zh) * | 2022-11-04 | 2024-06-25 | 平安银行股份有限公司 | 存储模块检测方法、装置、设备和存储介质 |
CN116662017B (zh) * | 2023-07-27 | 2023-10-10 | 山东溯源安全科技有限公司 | 一种工控服务器读写顺序确定方法、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247729A (zh) * | 2017-05-03 | 2017-10-13 | ***股份有限公司 | 一种文件处理方法和装置 |
CN109981741A (zh) * | 2019-02-26 | 2019-07-05 | 启迪云计算有限公司 | 一种分布式存储***的维护方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750324A (zh) * | 2012-05-28 | 2012-10-24 | 华为技术有限公司 | 文件存储***、装置及文件存取方法 |
CN107341041B (zh) * | 2017-06-27 | 2020-08-11 | 南京邮电大学 | 基于优先队列的云任务多维约束回填调度方法 |
CN110990339B (zh) * | 2019-10-15 | 2023-09-19 | 平安科技(深圳)有限公司 | 分布式存储的文件读写方法、装置、平台及可读存储介质 |
-
2019
- 2019-10-15 CN CN201910980132.8A patent/CN110990339B/zh active Active
-
2020
- 2020-05-29 WO PCT/CN2020/093105 patent/WO2021073111A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247729A (zh) * | 2017-05-03 | 2017-10-13 | ***股份有限公司 | 一种文件处理方法和装置 |
CN109981741A (zh) * | 2019-02-26 | 2019-07-05 | 启迪云计算有限公司 | 一种分布式存储***的维护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110990339A (zh) | 2020-04-10 |
WO2021073111A1 (zh) | 2021-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990339B (zh) | 分布式存储的文件读写方法、装置、平台及可读存储介质 | |
US20170034309A1 (en) | Software upgrade method and terminal | |
KR101828903B1 (ko) | 로밍 네트워크 액세스 방법 및 장치 | |
US20050289534A1 (en) | Method for upgrading software version of mobile terminal using integrated difference files | |
US8825991B2 (en) | FOTA based data update method and mobile terminal supporting the same | |
WO2007020735A1 (ja) | 競合解決装置 | |
CN107861832B (zh) | 数据验证方法、装置及可读存储介质 | |
CN110933733B (zh) | 配网方法、装置、计算机设备和存储介质 | |
CN111290773B (zh) | ***升级方法、设备及可读存储介质 | |
CN113592209A (zh) | 一种模型训练任务管理方法、装置、终端和存储介质 | |
CN114257532B (zh) | 服务端状态探测方法及装置 | |
CN112328701B (zh) | 数据同步方法、终端设备及计算机可读存储介质 | |
CN114780019A (zh) | 电子设备的管理方法、装置、电子设备及存储介质 | |
KR20130023567A (ko) | 파일 복사 수행 방법 및 장치 | |
CN110321251B (zh) | 基于网络块设备的数据备份方法、装置、设备和存储介质 | |
CN114880003A (zh) | 智能终端的***升级方法、智能终端及存储介质 | |
US20210354713A1 (en) | Agent control device, agent control method, and storage medium storing agent control program | |
CN113422791B (zh) | 云服务配置方法和装置、电子设备以及计算机可读存储介质 | |
CN111930626B (zh) | 基于PaaS云服务的自动化测试方法及装置 | |
CN115314480A (zh) | 一种终端远程在线升级的方法和装置 | |
CN109412873B (zh) | 配置更新方法及装置、终端设备及计算机存储介质 | |
CN103001889A (zh) | 控制终端访问的方法、装置及终端 | |
CN112950370A (zh) | 业务处理方法、装置、设备及存储介质 | |
CN113296945A (zh) | 一种持续集成方法、***、设备及计算机可读存储介质 | |
CN108170549B (zh) | 移动终端重启定位方法、移动终端及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40020233 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |