CN115934006A - Io接入点和数据处理任务管理方法、装置、设备和介质 - Google Patents

Io接入点和数据处理任务管理方法、装置、设备和介质 Download PDF

Info

Publication number
CN115934006A
CN115934006A CN202310238936.7A CN202310238936A CN115934006A CN 115934006 A CN115934006 A CN 115934006A CN 202310238936 A CN202310238936 A CN 202310238936A CN 115934006 A CN115934006 A CN 115934006A
Authority
CN
China
Prior art keywords
access point
request
data processing
storage service
processing task
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.)
Granted
Application number
CN202310238936.7A
Other languages
English (en)
Other versions
CN115934006B (zh
Inventor
何育华
徐文豪
王弘毅
张凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhiling Haina Technology Co ltd
Original Assignee
SmartX Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SmartX Inc filed Critical SmartX Inc
Priority to CN202310238936.7A priority Critical patent/CN115934006B/zh
Publication of CN115934006A publication Critical patent/CN115934006A/zh
Application granted granted Critical
Publication of CN115934006B publication Critical patent/CN115934006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种IO接入点和数据处理任务管理方法、装置、设备和介质,第一存储服务子节点接收对数据对象的第一IO请求或者数据处理任务管理请求,向元数据服务发送查询请求,元数据服务查询和操作数据对象的IO接入点记录,将IO接入点记录发送给第一存储服务子节点,使其对第一IO请求进行处理,或者将第一IO请求转发至IO接入点记录对应的第二存储服务子节点中完成,实现IO链路的可控;或者元数据服务将数据处理任务管理请求发送至第二存储服务子节点中进行处理,保证了处理数据对象IO请求的存储服务子节点唯一,处理IO请求和数据处理任务管理请求的存储服务子节点为同一个,从而保证数据处理任务对IO进行追踪处理的可能。

Description

IO接入点和数据处理任务管理方法、装置、设备和介质
技术领域
本发明涉及分布式存储技术领域,尤其涉及一种IO接入点和数据处理任务管理方法、装置、设备和介质。
背景技术
传统的集中式存储***使用单一的存储服务器存放所有数据,存储服务器的单一节点处理性能和单点的数据容量上限很容易成为***性能的瓶颈,并且在单点故障发生时,一般无法保证用户数据的安全性和稳定性,在这种情况下,分布式***应运而生。
分布式存储***是一种利用多个服务器进行数据存储和处理的***,可以利用多台存储服务器分担输入(Input, I)输出(Output,O)处理压力,可以通过添加节点的方式进行集群存储容量的扩容,同时,分布式***的元数据管理服务,可以为用户提供多副本、迁移以及恢复能力。分布式***在数据的可用性,安全性和存储服务的可扩展性上都具有优势。在现有的分布式***中,用户对分布式存储***下数据的访问和接入,一般会分散在多个数据处理服务器上,其优点是可以利用到整个集群所有服务器处理器性能,容忍单点故障,并且提升存储***整体的并发性能。
然而,在分布式存储***中,用户对某数据对象的 IO (即对数据对象的输入输出动作)一般应由单个存储服务子节点进行处理,否则很难处理由多个存储服务子节点同时对同一数据对象IO 引起的 IO 乱序问题,以及由此引发的数据正确性问题。此外,分布式存储***下有需要针对实时用户IO进行追踪、感知或进行二次处理的数据处理任务需求,当某存储服务子节点需要处理此类数据处理任务时,很难追踪和处理分散在各个存储服务子节点的数据对象IO。
发明内容
本发明提供IO接入点和数据处理任务管理方法、装置、设备和介质,用以解决现有技术中分布式存储***很难处理由多个存储服务子节点同时对同一数据对象IO引起的IO乱序问题和由此引发的数据正确性问题,以及分布式存储***很难追踪和处理分散在各个存储服务子节点的数据对象IO的缺陷,实现了数据对象的IO链路的可控,保证了最终处理数据对象IO请求的存储服务子节点唯一,并且能够支持分布式存储***中数据处理任务对用户实时IO请求的追踪处理需求。
本发明提供一种IO接入点和数据处理任务管理方法,应用于元数据服务端,包括:
S3、接收对数据对象的查询请求,或者接收对数据对象的查询请求和数据处理任务管理请求;所述查询请求和所述数据处理任务管理请求均由第一存储服务子节点发送;
S4、根据所述查询请求查询数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;所述IO接入点记录中包含有接入点信息,一个所述接入点信息对应一个存储服务子节点;
S5、将所述IO接入点记录发送给所述第一存储服务子节点,以使所述第一存储服务子节点根据所述IO接入点记录处理第一IO请求,或将所述第一IO请求发送至所述接入点信息对应的第二存储服务子节点,由所述第二存储服务子节点完成所述第一IO请求后将所述第一IO请求原路返回给所述客户端;
或者,
根据所述IO接入点记录,拒绝所述数据处理任务管理请求,或向所述接入点信息对应的第二存储服务子节点发送所述数据处理任务管理请求,以使所述第二存储服务子节点接收并执行所述数据处理任务管理请求;
S8、在收到第二存储服务子节点发送的对所述数据处理任务管理请求的执行结果之后,返回所述执行结果至所述客户端。
根据本发明提供的一种IO接入点和数据处理任务管理方法,根据所述IO接入点记录的数量对所述IO接入点记录进行操作,具体包括:
所述数据对象不存在所述IO接入点记录时,为所述数据对象分配一个存储服务子节点,创建所述IO接入点记录,并将所述存储服务子节点的所述接入点信息记录于所述IO接入点记录内。
根据本发明提供的一种IO接入点和数据处理任务管理方法,所述为数据对象分配一个存储服务子节点,具体包括以下各项方式之一:
为所述数据对象随机分配一个存储服务子节点;
根据所述客户端与各个存储服务子节点的延迟数据为所述数据对象分配一个延迟最低的存储服务子节点;
根据数据对象的存储位置信息,为所述数据对象分配一个与所述客户端距离最近的存储服务子节点。
根据本发明提供的一种IO接入点和数据处理任务管理方法,所述数据处理任务管理请求具体包括以下各项请求之一:
数据处理任务的创建;
已有的数据处理任务的暂停或者恢复;
已有的数据处理任务的取消或者删除。
根据本发明提供的一种IO接入点和数据处理任务管理方法,
当所述数据处理任务管理请求为所述已有的数据处理任务的取消或者删除的情况下,在收到第二存储服务子节点发送的对所述数据处理任务管理请求的执行结果之后,且在返回所述执行结果至所述客户端之前,还包括:
当所述数据对象的所述IO接入点记录为所述已有的数据处理任务所产生时,删除所述IO接入点记录。
根据本发明提供的一种IO接入点和数据处理任务管理方法,所述向接入点信息对应的所述第二存储服务子节点发送所述数据处理任务管理请求之后,还包括:
当所述已有的数据处理任务尚未被执行完毕,且第三存储服务子节点的客户端接收到对所述数据对象的第二IO请求时,接收由所述第三存储服务子节点发送的注册请求,为所述数据对象创建与所述第三存储服务子节点对应的所述IO接入点记录;
接收由所述第三存储服务子节点发送的查询请求,查询所述数据对象的所述IO接入点记录,当所述数据对象存在多个所述IO接入点记录时,向正在执行所述已有的数据处理任务的存储服务子节点发送取消执行的通知;当所述数据对象仅存在一个所述IO接入点记录时,对比创建所述第三存储服务子节点对应的所述IO接入点记录前后,所述IO接入点记录中的所述接入点信息发生的变化,在所述接入点信息发生变化的情况下,向正在执行所述已有的数据处理任务的所述存储服务子节点发送取消执行的通知。
本发明还提供另一种IO接入点和数据处理任务管理方法,应用于存储服务器,包括:
S1、第一存储服务子节点的客户端接收对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求;
S2、所述第一存储服务子节点向元数据服务发送查询请求,或者向元数据服务发送查询请求和所述数据处理任务管理请求,以使所述元数据服务接收所述查询请求,或者接收所述查询请求和所述数据处理任务管理请求,根据所述查询请求查询所述数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;
S6、所述第一存储服务子节点接收所述元数据服务发送的所述IO接入点记录,根据所述IO接入点记录处理所述第一IO请求,或将所述第一IO请求发送给所述IO接入点记录中的接入点信息对应的第二存储服务子节点;
或者,所述IO接入点记录中的接入点信息对应的第二存储服务子节点接收所述元数据服务发送的所述数据处理任务管理请求;
S7、所述第二存储服务子节点接收到所述第一IO请求后,完成所述第一IO请求,并将所述第一IO请求原路返回给所述客户端;
或者,所述第二存储服务子节点收到所述数据处理任务管理请求后,执行所述数据处理任务管理请求,执行完毕后向所述元数据服务发送执行结果。
根据本发明提供的一种IO接入点和数据处理任务管理方法,根据所述IO接入点记录处理所述第一IO请求,或将所述第一IO请求发送给所述IO接入点记录中的接入点信息对应的第二存储服务子节点,具体包括:
当所述IO接入点记录唯一,且所述IO接入点记录中的所述接入点信息对应的所述第二存储服务子节点为所述第一存储服务子节点时,所述第一存储服务子节点完成所述第一IO请求;
当所述IO接入点记录唯一,且所述IO接入点记录中的所述接入点信息对应的所述第二存储服务子节点并非所述第一存储服务子节点时,所述第一存储服务子节点向所述第二存储服务子节点发送所述第一IO请求;
当所述IO接入点记录多于一个时,所述第一存储服务子节点拒绝所述第一IO请求。
根据本发明提供的一种IO接入点和数据处理任务管理方法,在执行所述数据处理任务管理请求之后,还包括:
当第三存储服务子节点的客户端接收到对所述数据对象的第二IO请求时,所述第三存储服务子节点向所述元数据服务发送所述查询请求和注册请求,以使所述元数据服务接收所述注册请求,为所述数据对象创建与所述第三存储服务子节点对应的所述IO接入点记录,以及使所述元数据服务接收所述查询请求,根据所述查询请求查询所述数据对象的所述IO接入点记录。
本发明还提供一种IO接入点和数据处理任务管理装置,包括:
第一接收模块,用于接收对数据对象的查询请求,或者接收对数据对象的查询请求和数据处理任务管理请求;所述查询请求和所述数据处理任务管理请求均由第一存储服务子节点发送;
第一处理模块,用于根据所述查询请求查询所述数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;所述IO接入点记录中包含有接入点信息,一个所述接入点信息对应一个存储服务子节点;
第一发送模块,用于将所述IO接入点记录发送给所述第一存储服务子节点,以使所述第一存储服务子节点根据所述IO接入点记录处理第一IO请求,或将所述第一IO请求发送至所述接入点信息对应的第二存储服务子节点,由所述第二存储服务子节点完成所述第一IO请求后将所述第一IO请求原路返回给所述客户端;
所述第一发送模块还用于向所述接入点信息对应的所述第二存储服务子节点发送所述数据处理任务管理请求,以使所述第二存储服务子节点接收并执行所述数据处理任务管理请求,再接收由所述第二存储服务子节点发送的执行结果;
所述第一处理模块还用于根据所述IO接入点记录拒绝所述数据处理任务管理请求;
所述第一接收模块还用于接收由所述第二存储服务子节点发送的所述执行结果。
本发明还提供另一种IO接入点和数据处理任务管理装置,包括:
客户端模块,用于接收对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求;
第二发送模块,用于向元数据服务发送查询请求,或者向元数据服务发送查询请求和所述数据处理任务管理请求,以使所述元数据服务接收所述查询请求,或者接收所述查询请求和所述数据处理任务管理请求,根据所述查询请求查询所述数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;
第二接收模块,用于接收所述元数据服务发送的所述IO接入点记录,或者用于接收所述元数据服务发送的所述数据处理任务管理请求;
所述第二发送模块还用于将所述第一IO请求发送给所述IO接入点记录中的接入点信息对应的所述IO接入点和数据处理任务管理装置;
所述第二接收模块还用于接收其他的所述IO接入点和数据处理任务管理装置发送的所述第一IO请求;
第二处理模块,用于根据所述IO接入点记录处理所述第一IO请求,或者用于执行所述数据处理任务管理请求;所述第二处理模块还用于完成所述第一IO请求;
所述第二发送模块还用于将所述第一IO请求原路返回给所述客户端模块,或者向所述元数据服务发送执行所述数据处理任务管理请求的执行结果。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的IO接入点和数据处理任务管理方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的IO接入点和数据处理任务管理方法。
本发明提供的一种IO接入点和数据处理任务管理方法、装置、设备和介质,通过第一存储服务子的客户端接收对数据对象的第一IO请求或者数据处理任务管理请求,向元数据服务发送查询该数据对象的IO接入点记录的请求;元数据服务能够查询和操作数据对象的IO接入点记录,并将IO接入点记录发送给第一存储服务子节点,以使第一存储服务子节点能够处理第一IO请求或者将第一IO请求转发至IO接入点记录中的接入点信息对应的第二存储服务子节点中完成,实现了IO链路的可控;或者,元数据服务能够将数据处理任务管理请求发送至IO接入点记录中的接入点信息对应的第二存储服务子节点中进行处理;上述策略保证了处理数据对象IO请求的存储服务子节点唯一,解决了同一数据对象多接入点导致的IO处理时序性问题,同时还保证了处理IO请求的存储服务子节点同时为处理数据处理任务管理请求的存储服务子节点,从而保证了数据处理任务对IO进行追踪处理的可能。接入点信息对应的存储服务子节点完成第一IO请求后将第一IO请求原路返回客户端,或者将数据处理任务管理请求执行完毕后向元数据服务发送执行结果。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的IO接入点和数据处理任务管理方法的总体流程示意图;
图2是本发明提供的IO接入点和数据处理任务管理方法中的IO接入点管理的流程示意图;
图3是本发明提供的IO接入点和数据处理任务管理方法中的数据处理任务管理的流程示意图;
图4是本发明实施例中的分布式存储下的ISCSI数据链路的IO接入点管理的流程示意图;
图5是本发明实施例中的分布式存储下的ISCSI数据链路的IO接入点管理的***结构图;
图6是本发明实施例中的分布式存储下的vHost数据链路的IO接入点管理的流程示意图;
图7是本发明实施例中的分布式存储下的vHost数据链路的IO接入点管理的***结构图;
图8本发明提供的IO接入点和数据处理任务管理方法中的数据处理任务的创建的流程示意图;
图9本发明提供的IO接入点和数据处理任务管理方法中的数据处理任务的暂停或恢复的流程示意图;
图10本发明提供的IO接入点和数据处理任务管理方法中的数据处理任务的取消和删除的流程示意图;
图11是本发明提供的IO接入点和数据处理任务管理方法中对存在数据处理任务的数据对象进行IO时的处理流程示意图;
图12是本发明提供的一种IO接入点和数据处理任务管理装置的结构示意图;
图13是本发明提供的电子设备的结构示意图;
图14是本发明提供的应用于元数据服务器端的IO接入点和数据处理任务管理方法的流程图;
图15是本发明提供的应用于存储服务器端的IO接入点和数据处理任务管理方法的流程图;
图16是本发明提供的另一种IO接入点和数据处理任务管理装置的结构示意图。
附图标记:
121:第一接收模块;122:第一处理模块;123:第一发送模块;161:第二接收模块;162:第二处理模块;163:第二发送模块;164:客户端模块。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例中的元数据服务即分布式***中的元数据管理服务,元数据服务可以由分布式存储***中的元数据服务器提供,也可以运行在分布式存储***中的任意服务器节点上,比如运行在存储服务器上。因此,本申请中所述的元数据服务端为运行元数据服务的任意服务器节点。元数据服务可以为多个,也可以为一个,如果是多个元数据服务,并运行在专门的元数据服务器上,则一般需要在多个元数据服务器上运行;如果是运行在存储服务器上,则一般在多个存储服务器内运行。当分布式***内运行有多个元数据服务时,多个元数据服务通常会组成一个元数据服务集群,以一个整体的形式对外提供服务。多个本发明实施例中的存储服务子节点即分布式存储***中的存储服务器。本实施例中所述的第一IO请求和第二IO请求均为IO请求。
图14示出了本发明一实施例提供的一种应用于元数据服务端的IO接入点和数据处理任务管理方法的流程示意图,如图14所示,该方法包括:
S3、接收对数据对象的查询请求,或者接收对数据对象的查询请求和数据处理任务管理请求。所述查询请求为查询数据对象的IO接入点记录的请求。在该步骤中,查询请求和数据处理任务管理请求均由第一存储服务子节点发送,其中,数据处理任务的管理请求由第一存储服务子节点的客户端发送,每个存储服务子节点下均存在客户端,客户端是存储服务子节点的一部分。应当理解的是,本实施例中所述的第一存储服务子节点并非特指某一固定的存储服务器,而是指分布式存储***下,其客户端接收到对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求的存储服务器。例如,存储服务子节点1的客户端接收到了对数据对象的第一IO请求,则存储服务子节点1即为此次IO请求任务中的第一存储服务子节点;存储服务子节点2的客户端接收到了对数据对象的数据处理任务管理请求,则存储服务子节点2即为此次数据处理任务管理请求任务中的第一存储服务子节点。
本发明实施例中的对数据对象的数据处理任务管理请求具体可包括以下各项请求之一:
数据处理任务的创建;
已有的数据处理任务的暂停或者恢复;
已有的数据处理任务的取消或者删除。
需要说明的是,当数据处理任务管理请求为数据处理任务的创建时,某一存储服务子节点执行数据处理任务管理请求,即在该存储服务子节点内创建并执行数据处理任务。
S4、根据查询请求查询数据对象的IO接入点记录,并根据IO接入点记录的数量对IO接入点记录进行操作。当某个存储服务子节点正在对数据对象进行IO或者正在对数据对象执行数据处理任务时,数据对象会存在一个与该存储服务子节点对应的IO接入点记录,IO接入点记录中保存有该存储服务子节点对应的接入点信息。每个IO接入点记录中均保存有一个接入点信息,一个接入点信息对应一个存储服务子节点,例如,接入点信息可以包括存储服务子节点的ID,通过接入点信息即可确定当前正在对数据对象进行IO或者正在对数据对象执行数据处理任务的存储服务子节点,并且可根据接入点信息与对应的存储服务子节点进行交互。当数据对象存在一个IO接入点记录时,表示当前所有对此数据对象的IO和数据处理任务管理请求应由IO接入点记录中的接入点信息对应的存储服务子节点,即接入点进行处理。每个数据对象均可以存在数量不定的IO接入点记录。
在该步骤中,元数据服务查询数据对象的IO接入点记录,根据IO接入点记录的数量对IO接入点记录进行操作,具体包括:
数据对象不存在IO接入点记录时,元数据服务为数据对象分配一个存储服务子节点,创建IO接入点记录,并将该存储服务子节点的接入点信息记录于IO接入点记录内。
应当说明的是,元数据服务为数据对象分配一个存储服务子节点,具体包括以下各项方式之一:
(1)元数据服务为数据对象随机分配一个存储服务子节点;
(2)元数据服务根据客户端与各个存储服务子节点的延迟数据为数据对象分配一个延迟最低的存储服务子节点的作为最优的存储服务子节点;
(3)元数据服务根据数据对象的存储位置信息,为数据对象分配一个距离客户端最近的存储服务子节点作为最优的存储服务子节点。应当理解的是,在分布式存储***中,数据对象可能在多个存储服务器上均存在有副本,即存在多个不同存储位置的数据对象,因此元数据服务可通过查询保存有副本的多个存储服务器各自与客户端之间的距离,并选择与客户端距离最近的一个保存有副本的存储服务器作为最优接入点,应当理解的是,此处的距离指的是网络拓补视角下的距离,例如,距离客户端最近的,为客户端所在的本地存储服务器;次之,为同机架同交换机下的存储服务器;再次之,为同机架不同交换机下的存储服务器;再次之,为不同机架下不同交换机的存储服务器。
S5、将IO接入点记录发送给第一存储服务子节点,或者,根据IO接入点记录,拒绝数据处理任务管理请求,或向IO接入点记录中的接入点信息对应的第二存储服务子节点发送数据处理任务管理请求。
在该步骤中,元数据服务需要根据第一存储服务子节点的客户端接收到的请求类型执行对应的操作。如图2所示,当第一存储服务子节点接收到的是对数据对象的第一IO请求,则将IO接入点记录发送给第一存储服务子节点,使得第一存储服务子节点根据IO接入点记录中的接入点信息对第一IO请求进行处理,或者将第一IO请求转发给接入点信息对应的第二存储服务子节点,由第二存储服务子节点完成第一IO请求。具体的,当IO接入点记录仅有一个,且接入点信息对应的第二存储服务子节点为第一存储服务子节点时,第一存储服务子节点不对第一IO请求进行发送;当IO接入点记录仅有一个,且接入点信息对应的第二存储服务子节点与第一存储服务子节点不同时,由第一存储服务子节点将第一IO请求发送给第二存储服务子节点;当数据对象存在多于一个的IO接入点记录时,第一存储服务子节点拒绝该第一IO请求。
如图3所示,当第一存储服务子节点接收到的是对数据对象的数据处理任务管理请求时,元数据服务需要根据数据对象的IO接入点记录的数量进行对应的操作。当数据对象的IO接入点记录仅有一个时,元数据服务向IO接入点记录中的接入点信息对应的存储服务子节点发送该数据处理任务管理请求;当数据对象的IO接入点记录多于一个时,元数据服务拒绝该数据处理任务管理请求。
S8、元数据服务接收由第二存储服务子节点发送的执行结果之后,返回执行结果至客户端。
在该步骤中,元数据服务接收到执行结果后,向客户端返回执行结果。到此,一个针对目标数据对象的数据处理任务管理请求的生命周期结束。通过上述对IO接入点的管理和对数据处理任务管理,保证了处理IO请求的存储服务子节点同时为数据处理任务管理请求的存储服务子节点,从而保证了数据处理任务对IO请求进行追踪处理的可能。
图15示出了本发明一实施例提供的应用于存储服务器端的IO接入点和数据处理任务管理方法的流程示意图,如图15所示,该方法包括:
S1、第一存储服务子节点的客户端接收对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求。
应当理解的是,本实施例中所述的第一存储服务子节点并非特指某一固定的存储服务器,而是指分布式存储***下,其客户端接收到对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求的存储服务器。例如,存储服务子节点1的客户端接收到了对数据对象的第一IO请求,则存储服务子节点1即为此次IO请求任务中的第一存储服务子节点;存储服务子节点2的客户端接收到了对数据对象的数据处理任务管理请求,则存储服务子节点2即为此次数据处理任务管理请求任务中的第一存储服务子节点。
本发明实施例中的对数据对象的数据处理任务管理请求具体可包括以下各项请求之一:
数据处理任务的创建;
已有的数据处理任务的暂停或者恢复;
已有的数据处理任务的取消或者删除。
需要说明的是,当数据处理任务管理请求为数据处理任务的创建时,某一存储服务子节点执行数据处理任务管理请求,即在该存储服务子节点内创建并执行数据处理任务。
S2、第一存储服务子节点向元数据服务发送查询请求,或者向元数据服务发送查询请求和所述数据处理任务管理请求。
具体的,如图2和图3所示,当第一存储服务子节点的客户端接收到的是对数据对象的第一IO请求时,第一存储服务子节点向元数据服务发送查询请求;当第一存储服务子节点的客户端接收到的是对数据对象的数据处理任务管理请求时,由第一存储服务子节点向元数据服务发送查询请求,并且由第一存储服务子节点的客户端向元数据服务发送数据处理任务管理请求,使得元数据服务接收查询数据对象的IO接入点记录的请求,或者接收所述查询所述数据对象的IO接入点记录的请求和所述数据处理任务管理请求,查询数据对象的IO接入点记录,根据IO接入点记录的数量对第一IO请求或者IO接入点记录进行操作。元数据服务查询数据对象的IO接入点记录,根据IO接入点记录的数量对第一IO请求或者IO接入点记录进行操作,具体包括:
若所述数据对象仅存在一个所述IO接入点记录,则不对所述IO接入点记录进行操作;
若数据对象存在两个及以上的IO接入点记录,则拒绝第一IO请求;
若数据对象不存在IO接入点记录,则元数据服务为数据对象分配一个存储服务子节点,创建IO接入点记录,并将该存储服务子节点的接入点信息记录于IO接入点记录内。
当数据对象存在一个IO接入点记录时,表示当前所有对此数据对象的IO请求和数据处理任务管理请求应由IO接入点记录中的接入点信息对应的存储服务子节点,即接入点进行处理。每个数据对象均可以存在数量不定的IO接入点记录,每个IO接入点记录中均包含一个接入点信息。一个接入点信息对应一个存储服务子节点。
数据对象存在IO接入点记录时,表明此时存在对该数据对象进行IO或者执行数据处理任务管理请求的存储服务子节点;若数据对象不存在IO接入点记录,则表明当前没有对该数据对象进行IO或者执行数据处理任务管理请求的存储服务子节点,因此元数据服务需要为该数据对象分配一个存储服务子节点,创建一个IO接入点记录,并将分配的存储服务子节点的接入点信息记录于该IO接入点记录内。
应当说明的是,元数据服务为数据对象分配一个存储服务子节点,具体包括以下各项方式之一:
(1)元数据服务为数据对象随机分配一个存储服务子节点;
(2)元数据服务根据客户端与各个存储服务子节点的延迟数据为数据对象分配一个延迟最低的存储服务子节点的作为最优的存储服务子节点;
(3)元数据服务根据数据对象的存储位置信息,为数据对象分配一个距离客户端最近的存储服务子节点作为最优的存储服务子节点。应当理解的是,在分布式存储***中,数据对象可能在多个存储服务器上均存在有副本,即存在多个不同存储位置的数据对象,因此元数据服务可通过查询保存有副本的多个存储服务器各自与客户端之间的距离,并选择与客户端距离最近的一个保存有副本的存储服务器作为最优接入点,应当理解的是,此处的距离指的是网络拓补视角下的距离,例如,距离客户端最近的,为客户端所在的本地存储服务器;次之,为同机架同交换机下的存储服务器;再次之,为同机架不同交换机下的存储服务器;再次之,为不同机架下不同交换机的存储服务器。
S6、第一存储服务子节点接收元数据服务发送的IO接入点记录,根据IO接入点记录处理第一IO请求,或将第一IO请求发送给IO接入点记录中的接入点信息对应的第二存储服务子节点;或者,IO接入点记录中的接入点信息对应的第二存储服务子节点接收元数据服务发送的数据处理任务管理请求。
元数据服务需要根据第一存储服务子节点的客户端接收到的请求类型执行对应的操作。如图2所示,当客户端接收到的是对数据对象的第一IO请求时,在该步骤中,第一存储服务子节点接收元数据服务发送的IO接入点记录,根据IO接入点记录处理第一IO请求或者将第一IO请求发送给第二存储服务子节点,第二存储服务子节点为IO接入点记录中的接入点信息对应的存储服务子节点。具体的,当IO接入点记录仅有一个,且接入点信息对应的第二存储服务子节点为第一存储服务子节点时,第一存储服务子节点不对第一IO请求进行发送;当IO接入点记录仅有一个,且接入点信息对应的第二存储服务子节点与第一存储服务子节点不同时,由第一存储服务子节点将第一IO请求发送给第二存储服务子节点;当数据对象存在多于一个的IO接入点记录时,为了避免多个存储服务子节点同时对数据对象进行IO造成的IO乱序问题,第一存储服务子节点拒绝该第一IO请求。
如图3所示,当客户端接收到的是对数据对象的数据处理任务的管理请求时,在该步骤中,第二存储服务子节点接收元数据服务发送的数据处理任务的管理请求,第二存储服务子节点为IO接入点记录中的接入点信息对应的存储服务子节点。
S7、第二存储服务子节点接收到第一IO请求后,完成第一IO请求,并将第一IO请求原路返回给所述客户端;或者,第二存储服务子节点收到数据处理任务管理请求时,执行数据处理任务管理请求,执行完毕后向元数据服务发送执行结果。
具体的,如图2所示,当第一存储服务子节点的客户端接收到的是对数据对象的第一IO请求时,在该步骤中,当IO接入点记录仅有一个,且接入点信息对应的第二存储服务子节点为第一存储服务子节点时,由第一存储服务子节点完成第一IO请求,再将第一IO请求原路返回至客户端;当IO接入点记录仅有一个,且接入点信息对应的第二存储服务子节点与第一存储服务子节点不同时,第二存储服务子节点接收到第一存储服务子节点发送的第一IO请求后完成该第一IO请求,再将第一IO请求原路返回至第一存储服务子节点的客户端。例如,存储服务子节点1的客户端A接收到了发送的对数据对象的第一IO请求,并根据元数据服务发送的IO接入点记录将IO转发给存储服务子节点2进行处理,存储服务子节点2完成该第一IO请求后,将第一IO请求返回给存储服务子节点1,再由存储服务子节点1将第一IO请求返回给客户端A。元数据服务感知到客户端A断开连接后,删除为了完成该第一IO请求所产生的数据对象的IO接入点记录。
如图3所示,当客户端发送给第一存储服务子节点的是对数据对象的数据处理任务管理请求时,在该步骤中,第二存储服务子节点收到数据处理任务管理请求时,执行数据处理任务管理请求,执行完毕后向元数据服务发送执行结果。元数据服务接收到执行结果后,向客户端返回执行结果。通过上述对IO接入点的管理和对数据处理任务管理,保证数据对象的IO链路可控,并且保证了最终处理数据对象IO请求的存储服务子节点唯一,避免了由多个存储服务子节点同时对同一数据对象IO 引起的 IO 乱序问题和由此引发的数据正确性问题,还保证了处理IO请求的存储服务子节点同时为数据处理任务管理请求的存储服务子节点,从而保证了数据处理任务对IO进行追踪处理的可能。
上述两种IO接入点和数据处理任务管理方法共同运用于分布式存储***中,构成如图1所示的针对数据对象的IO请求或者数据处理任务管理请求的完整处理流程,该流程包括具备前后顺序的步骤S1-S8,其中S1-S2、S6-S7为存储服务器端所执行的步骤,S3-S5、S8为元数据服务端所执行的步骤。
对于上述的IO接入点和数据处理任务管理方法,由于用户发起IO请求的连接方式可能存在多种类型的链路,以下分别详细展开说明两种常用的用户介入链路类型下子存储服务节点在接收到数据对象的接入点信息后的转发方式:
类型一:分布式存储下的ISCSI数据链路的IO接入点管理
互联网小型计算机***接口(Internet Small Computer System Interface,iSCSI)是一种在互联网协议上,特别是以太网上进行数据块传输的开放标准,采用客户端-服务端模式进行设计,分布式存储***可以通过提供iSCSI服务端接口提供数据对象的IO能力。iSCSI协议通过传输控制(Transmission Control Protocol,TCP)协议传输控制指令和数据,iSCSI客户端(initiator)通过与iSCSI服务端(Target Server)的一个存储资源(iSCSI Target)建立iSCSI会话,将iSCSI逻辑单元号(Logical Unit Number,LUN)映射为具体数据对象,然后进行IO。
在iSCSI接入链路下,用户向某数据对象发起IO前需要首先进行客户端和服务端认证握手,在认证完成后initiator方能向iSCSI Target server返回的数据对象地址发起IO。
如图4和图5所示,iSCSI接入模式下分布式存储***的IO接入点管理流程如下:
1、用户的iSCS Iinitiator向某存储服务子节点的iSCSI接入服务尝试进行认证握手。
2、该存储服务子节点iSCSI存储接入服务通过认证请求中的数据对象信息向分布式***元数据服务查询该数据对象的IO接入点信息,具体的:
如果该数据对象有IO接入点信息,则直接返回对应接入点的连接信息;
如果该数据对象没有IO接入点信息,元数据服务优先将当前处理iSCSIinitiator请求的存储服务子节点作为IO接入点,如果该存储服务子节点不健康,则在剩余的健康接入点中通过哈希(Hash)的方式选择一个IO接入点;
3、iSCSI接入服务得到数据对象的IO接入点信息后,将接入点信息地址回复iSCSIinitiator。
4、用户iSCSI initiator连接IO接入点对应的iSCSI存储服务子节点后进行IO。
类型二:分布式***下的vHost数据链路的IO接入点管理
vHost据链路是一种针对linux操作***下虚拟化***优化的进程间IO链路,为客户端/服务端模式,vHost客户端通过进程间通信套接字(Unix domain socket)与vHost服务端进行连接和通信,由于不存在网络层消耗,并且IO可以绕过***内核,所以是一种更为高性能的IO链路方案。vHost服务端(server)一般作为模块集成在子节点的存储服务中。vHost数据链路的实现方式决定了vHost客户端和服务端必须在同一个物理子节点上。
在vHost接入链路下,其连接特性要求IO接入点必须保证为当前节点,IO接入点管理流程被简化为一种排他性、抢占式的管理方法,如图6和图7所示,其详细流程如下:
1、用户的vHost 客户端(client)进程在创建时,需要使用当前所在存储节点信息以及vHost client的ID信息向分布式存储的元数据服务注册数据对象IO接入许可。
2、元数据服务需要更新IO接入许可,并向所有存储服务子节点通知接入许可通知,只有被许可的存储服务子节点及当前vhost client发起的该数据对象IO请求将会被处理,其他存储服务子节点接收到的或本存储服务子节点接收到的其他vhost client对该数据对象发起的IO请求将会被拒绝。其中:
如果有该数据对象的接入点信息已经存在并与申请信息不同,则使用当前接入申请信息覆盖旧有介入信息,并向所有存储服务子节点同步,并返回接受许可。
否则,元数据服务记录IO接入许可信息,并向所有存储服务子节点的存储服务同步该信息,同步完成后返回接受许可。
3、用户vHost client在完成本地IO接入注册后可以直接与本地存储***进行IO通信。
下面,本实施例以数据处理任务的创建、数据处理任务的暂停或恢复、数据处理任务的取消和删除这三个方面对本发明的IO接入点和数据处理任务管理方法中的数据处理任务管理部分进行具体说明:
1、数据处理任务的创建。
如图8所示,数据处理任务的创建需要经过以下步骤:
(1)第一存储服务子节点的客户端接收到对数据对象的数据处理任务创建请求,随后客户端向元数据服务发送该数据处理任务创建请求和对数据对象的IO接入点记录查询请求。
(2)元数据服务接收该数据处理任务创建请求。
(3)元数据服务检索数据处理任务的目标数据对象,并查询该数据对象是否存在IO接入点记录,即判断数据对象是否存在接入点。
如果数据对象仅存在一个IO接入点记录,即仅存在一个接入点,则满足创建条件,进入步骤(4);
如果数据对象不存在IO接入点记录,则元数据管理服务为该数据对象分配接入点,创建该数据对象的IO接入点记录,并将接入点的接入点信息记录于IO接入点记录内,然后进入步骤(4);
如果数据对象的IO接入点记录多于一个,则拒绝创建请求。
(4)元数据服务向IO接入点记录中的接入点信息对应的第二存储服务子节点发送数据处理任务创建请求。
(5)IO接入点记录中的接入点信息对应的第二存储服务子节点执行数据处理任务,向元数据服务响应任务创建成功的通知。
2、数据处理任务的暂停或恢复。
数据处理任务的暂停或恢复即对存储服务子节点中已有的数据处理任务进行暂停或者恢复。
如图9所示,数据处理任务的暂停或恢复需要经过以下步骤:
(1)第一存储服务子节点的客户端接收到数据处理任务的暂停或恢复请求,客户端向元数据服务发送该数据处理任务的暂停或恢复请求。
(2)元数据服务接收该数据处理任务的暂停或恢复请求。
(3)元数据服务检索数据处理任务的目标数据对象,并查询该数据对象是否存在IO接入点记录。
如果数据对象仅存在一个IO接入点记录,则满足创建条件,进入步骤(4);
如果数据对象不存在IO接入点记录,则元数据管理服务为该数据对象分配接入点,创建该数据对象的IO接入点记录,并将接入点的接入点信息记录于IO接入点记录内,然后进入步骤(4);
如果数据对象的IO接入点记录多于一个,则拒绝该数据处理任务的暂停或恢复请求。
(4)元数据服务向IO接入点记录中的接入点信息对应的第二存储服务子节点发送数据处理任务的暂停或恢复请求。
(5)IO接入点记录中的接入点信息对应的第二存储服务子节点执行对已有的数据处理任务的暂停或恢复,向元数据服务发送处理结果。
(6)元数据服务向客户端返回数据处理任务的暂停或恢复请求的执行结果。
3、数据处理任务的取消和删除。
数据处理任务的取消和删除即对存储服务子节点中已有的数据处理任务进行取消和删除。当数据处理任务管理请求为已有的数据处理任务的取消或者删除的情况下,在上述IO接入点和数据处理任务管理方法中的步骤S8中,在收到第二存储服务子节点发送的对所述数据处理任务管理请求的执行结果之后,且在返回执行结果至客户端之前,还包括:当数据对象的IO接入点记录为已有的数据处理任务所产生时,元数据服务删除IO接入点记录。
具体的,如图10所示,数据处理任务的取消和删除需要经过以下步骤:
(1)第一存储服务子节点的客户端接收到数据处理任务的取消和删除请求,客户端向元数据服务发送该数据处理任务的取消和删除请求。
(2)元数据服务接收该数据处理任务的取消和删除请求。
(3)元数据服务检索数据处理任务的目标数据对象,并查询该数据对象是否存在IO接入点记录。
如果数据对象仅存在一个IO接入点记录,则满足创建条件,进入步骤(4);
如果数据对象不存在IO接入点记录,则元数据管理服务为该数据对象分配接入点,创建该数据对象的IO接入点记录,并将接入点的接入点信息记录于IO接入点记录内,然后进入步骤(4);
如果数据对象的IO接入点记录多于一个,则拒绝该数据处理任务的取消和删除。
(4)元数据服务向IO接入点记录中的接入点信息对应的第二存储服务子节点发送数据处理任务的取消和删除请求。
(5)IO接入点记录中的接入点信息对应的第二存储服务子节点执行对已有的数据处理任务的取消和删除,向元数据服务发送处理结果。
(6)当上述已有的数据处理任务已经被取消和删除后,元数据服务需要检查数据对象的IO接入点记录中的接入点信息是否为上述已有的数据处理任务产生的接入点信息,若是,则元数据服务删除该接入点信息。
在分布式***中,数据处理任务一般为长期任务,在已有的数据处理任务执行期间可能会有第三存储服务子节点(即任一存储服务子节点)尝试对数据对象进行第二IO请求(第二IO请求指的是数据对象存在数据处理任务时对其进行的IO请求),此时,在上述IO接入点和数据处理任务管理方法中的步骤S5中,向接入点信息对应的第二存储服务子节点发送数据处理任务管理请求之后,还包括:
当已有的数据处理任务尚未被执行完毕,且第三存储服务子节点的客户端接收到对数据对象的第二IO请求时,接收由第三存储服务子节点发送的注册请求,为数据对象创建与第三存储服务子节点对应的IO接入点记录;
接收由第三存储服务子节点发送的查询请求,查询数据对象的IO接入点记录,当数据对象存在多个IO接入点记录时,向正在执行已有的数据处理任务的存储服务子节点发送取消执行的通知;当数据对象仅存在一个IO接入点记录时,对比创建第三存储服务子节点对应的IO接入点记录前后,IO接入点记录中的接入点信息发生的变化,在接入点信息发生变化的情况下,向正在执行已有的数据处理任务的存储服务子节点发送取消执行的通知。
具体的,如图11所示,在已有的数据处理任务执行期间有新的存储服务子节点尝试对数据对象进行IO请求时,执行以下步骤:
(1)若针对某一数据线对象的已有的数据处理任务尚未被执行完毕,且第三存储服务子节点的客户端接收到发送的对该数据对象的IO时,第三存储服务子节点向元数据服务发送查询请求和注册请求;
(2)元数据服务接收由第三存储服务子节点发送的注册请求,为数据对象创建与该存储服务子节点对应的IO接入点记录;
(3)元数据服务根据接收到的查询请求,查询数据对象的IO接入点记录,若数据对象存在多个IO接入点记录(即从一个变为了多个),则元数据服务向正在执行已有的数据处理任务的存储服务子节点发送取消对该数据对象的已有的数据处理任务的通知。数据对象存在多个IO接入点记录,表明此时正在执行对数据对象的IO的存储服务子节点与正在对数据对象执行数据处理任务的存储服务子节点并非同一个,因此需要取消当前对数据对象的数据处理任务,避免同一数据对象多接入点导致的IO处理时序性问题。
(4)若IO接入点记录的数量仅为一个,则元数据服务对比创建该存储服务子节点对应的IO接入点记录前后,该数据对象的IO接入点记录中的接入点信息是否发生变化,若是,则元数据服务向正在执行已有的数据处理任务的存储服务子节点发送取消对该数据对象的已有的数据处理任务的通知。在该步骤中,数据对象的IO接入点记录仅为一个,表明此时正在执行对数据对象的IO的存储服务子节点与正在对数据对象执行数据处理任务的存储服务子节点为同一个,由于对数据对象的IO访问的优先级高于对数据对象的数据处理任务,因此需要取消当前对数据对象的数据处理任务,优先执行对数据对象的IO。
基于相同的发明构思,本发明又一实施例提供了一种IO接入点和数据处理任务管理装置,下面对本发明提供的IO接入点和数据处理任务管理装置进行描述,下文描述的IO接入点和数据处理任务管理装置与上文描述的IO接入点和数据处理任务管理方法可相互对应参照。
如图12所示,本发明提供的IO接入点和数据处理任务管理装置包括第一接收模块121、第一处理模块122和第一发送模块123。
第一接收模块121,用于接收对数据对象的查询请求,或者接收对数据对象的查询请求和数据处理任务管理请求;查询请求和数据处理任务管理请求均由存储服务子节点发送。
第一处理模块122,用于根据查询请求查询数据对象的IO接入点记录,并根据IO接入点记录的数量对IO接入点记录进行操作;IO接入点记录中包含有接入点信息,一个接入点信息对应一个存储服务子节点。
第一发送模块123,用于将IO接入点记录发送给第一存储服务子节点,以使第一存储服务子节点根据IO接入点记录处理第一IO请求,或将第一IO请求发送至接入点信息对应的第二存储服务子节点,由第二存储服务子节点完成第一IO请求后将第一IO请求原路返回给客户端;还用于向接入点信息对应的第二存储服务子节点发送数据处理任务管理请求,以使第二存储服务子节点接收并执行数据处理任务管理请求,再接收由第二存储服务子节点发送的执行结果。
第一处理模块122还用于根据IO接入点记录拒绝数据处理任务管理请求。
第一接收模块121还用于接收由第二存储服务子节点发送的执行结果。
基于相同的发明构思,本发明又一实施例提供了另一种IO接入点和数据处理任务管理装置,下面对本发明提供的IO接入点和数据处理任务管理装置进行描述,下文描述的IO接入点和数据处理任务管理装置与上文描述的IO接入点和数据处理任务管理方法可相互对应参照。
如图16所示,本发明提供的IO接入点和数据处理任务管理装置包括第二接收模块161、第二处理模块162、第二发送模块163和客户端模块164。
客户端模块164,用于接收对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求。
第二发送模块163,用于向元数据服务发送查询请求,或者向元数据服务发送查询请求和数据处理任务管理请求,以使元数据服务接收对数据对象的查询请求,或者接收对数据对象的查询请求和数据处理任务管理请求,根据查询请求查询数据对象的IO接入点记录,并根据IO接入点记录的数量对IO接入点记录进行操作。
第二接收模块161还用于接收元数据服务发送的IO接入点记录,或者用于接收元数据服务发送的数据处理任务管理请求。
第二发送模块163还用于将第一IO请求发送给IO接入点记录中的接入点信息对应的IO接入点和数据处理任务管理装置。
第二接收161模块,用于接收其他的IO接入点和数据处理任务管理装置发送的第一IO请求。
第二处理模块162,用于根据IO接入点记录处理第一IO请求,或者用于执行数据处理任务管理请求,还用于完成第一IO请求。
第二发送模块163,还用于将第一IO请求原路返回给客户端模块164,或者向元数据服务发送执行结果。
基于相同的发明构思,本发明又一实施例提供了一种电子设备。图13示例了一种电子设备的实体结构示意图,如图13所示,该电子设备可以包括:处理器(processor)131、通信接口(Communications Interface)132、存储器(memory)133和通信总线134,其中,处理器131,通信接口132,存储器133通过通信总线134完成相互间的通信。处理器131可以调用存储器133中的逻辑指令,以执行IO接入点和数据处理任务管理方法,该方法包括:
S3、接收对数据对象的查询请求,或者接收对数据对象的查询请求和数据处理任务管理请求;所述查询请求和所述数据处理任务管理请求均由第一存储服务子节点发送;
S4、根据所述查询请求查询数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;所述IO接入点记录中包含有接入点信息,一个所述接入点信息对应一个存储服务子节点;
S5、将所述IO接入点记录发送给所述第一存储服务子节点,以使所述第一存储服务子节点根据所述IO接入点记录处理第一IO请求,或将所述第一IO请求发送至所述接入点信息对应的第二存储服务子节点,由所述第二存储服务子节点完成所述第一IO请求后将所述第一IO请求原路返回给所述客户端;
或者,
根据所述IO接入点记录,拒绝所述数据处理任务管理请求,或向所述接入点信息对应的第二存储服务子节点发送所述数据处理任务管理请求,以使所述第二存储服务子节点接收并执行所述数据处理任务管理请求;
S8、在收到第二存储服务子节点发送的对所述数据处理任务管理请求的执行结果之后,返回所述执行结果至客户端;
或者,
处理器131可以调用存储器133中的逻辑指令,以执行IO接入点和数据处理任务管理方法,该方法包括:
S1、第一存储服务子节点的客户端接收对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求;
S2、所述第一存储服务子节点向元数据服务发送查询请求,或者向元数据服务发送查询请求和所述数据处理任务管理请求,以使所述元数据服务接收所述查询请求,或者接收所述查询请求和所述数据处理任务管理请求,根据所述查询请求查询所述数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;
S6、所述第一存储服务子节点接收所述元数据服务发送的所述IO接入点记录,根据所述IO接入点记录处理所述第一IO请求,或将所述第一IO请求发送给所述IO接入点记录中的接入点信息对应的第二存储服务子节点;
或者,所述IO接入点记录中的接入点信息对应的第二存储服务子节点接收所述元数据服务发送的所述数据处理任务管理请求;
S7、所述第二存储服务子节点接收到所述第一IO请求后,完成所述第一IO请求,并将所述第一IO请求原路返回给所述客户端;
或者,所述第二存储服务子节点收到所述数据处理任务管理请求后,执行所述数据处理任务管理请求,执行完毕后向所述元数据服务发送执行结果。
此外,上述的存储器133中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,计算机程序被处理器执行时,计算机能够执行上述的一种IO接入点和数据处理任务管理方法,该方法包括:
S3、接收对数据对象的查询请求,或者接收对数据对象的查询请求和数据处理任务管理请求;所述查询请求和所述数据处理任务管理请求均由第一存储服务子节点发送;
S4、根据所述查询请求查询数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;所述IO接入点记录中包含有接入点信息,一个所述接入点信息对应一个存储服务子节点;
S5、将所述IO接入点记录发送给所述第一存储服务子节点,以使所述第一存储服务子节点根据所述IO接入点记录处理第一IO请求,或将所述第一IO请求发送至所述接入点信息对应的第二存储服务子节点,由所述第二存储服务子节点完成所述第一IO请求后将所述第一IO请求原路返回给所述客户端;
或者,
根据所述IO接入点记录,拒绝所述数据处理任务管理请求,或向所述接入点信息对应的第二存储服务子节点发送所述数据处理任务管理请求,以使所述第二存储服务子节点接收并执行所述数据处理任务管理请求;
S8、在收到第二存储服务子节点发送的对所述数据处理任务管理请求的执行结果之后,返回所述执行结果至客户端;
或者,
计算机程序被处理器执行时,计算机能够执行上述的另一种IO接入点和数据处理任务管理方法,该方法包括:
S1、第一存储服务子节点的客户端接收对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求;
S2、所述第一存储服务子节点向元数据服务发送查询请求,或者向元数据服务发送查询请求和所述数据处理任务管理请求,以使所述元数据服务接收所述查询请求,或者接收所述查询请求和所述数据处理任务管理请求,根据所述查询请求查询所述数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;
S6、所述第一存储服务子节点接收所述元数据服务发送的所述IO接入点记录,根据所述IO接入点记录处理所述第一IO请求,或将所述第一IO请求发送给所述IO接入点记录中的接入点信息对应的第二存储服务子节点;
或者,所述IO接入点记录中的接入点信息对应的第二存储服务子节点接收所述元数据服务发送的所述数据处理任务管理请求;
S7、所述第二存储服务子节点接收到所述第一IO请求后,完成所述第一IO请求,并将所述第一IO请求原路返回给所述客户端;
或者,所述第二存储服务子节点收到所述数据处理任务管理请求后,执行所述数据处理任务管理请求,执行完毕后向所述元数据服务发送执行结果。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述提供的一种IO接入点和数据处理任务管理方法,该方法包括:
S3、接收对数据对象的查询请求,或者接收对数据对象的查询请求和数据处理任务管理请求;所述查询请求和所述数据处理任务管理请求均由第一存储服务子节点发送;
S4、根据所述查询请求查询数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;所述IO接入点记录中包含有接入点信息,一个所述接入点信息对应一个存储服务子节点;
S5、将所述IO接入点记录发送给所述第一存储服务子节点,以使所述第一存储服务子节点根据所述IO接入点记录处理第一IO请求,或将所述第一IO请求发送至所述接入点信息对应的第二存储服务子节点,由所述第二存储服务子节点完成所述第一IO请求后将所述第一IO请求原路返回给所述客户端;
或者,
根据所述IO接入点记录,拒绝所述数据处理任务管理请求,或向所述接入点信息对应的第二存储服务子节点发送所述数据处理任务管理请求,以使所述第二存储服务子节点接收并执行所述数据处理任务管理请求;
S8、在收到第二存储服务子节点发送的对所述数据处理任务管理请求的执行结果之后,返回所述执行结果至客户端;
或者,
该计算机程序被处理器执行时实现以执行上述提供的另一种IO接入点和数据处理任务管理方法,该方法包括:
S1、第一存储服务子节点的客户端接收对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求;
S2、所述第一存储服务子节点向元数据服务发送查询请求,或者向元数据服务发送查询请求和所述数据处理任务管理请求,以使所述元数据服务接收所述查询请求,或者接收所述查询请求和所述数据处理任务管理请求,根据所述查询请求查询所述数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;
S6、所述第一存储服务子节点接收所述元数据服务发送的所述IO接入点记录,根据所述IO接入点记录处理所述第一IO请求,或将所述第一IO请求发送给所述IO接入点记录中的接入点信息对应的第二存储服务子节点;
或者,所述IO接入点记录中的接入点信息对应的第二存储服务子节点接收所述元数据服务发送的所述数据处理任务管理请求;
S7、所述第二存储服务子节点接收到所述第一IO请求后,完成所述第一IO请求,并将所述第一IO请求原路返回给所述客户端;
或者,所述第二存储服务子节点收到所述数据处理任务管理请求后,执行所述数据处理任务管理请求,执行完毕后向所述元数据服务发送执行结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (13)

1.一种IO接入点和数据处理任务管理方法,其特征在于,应用于元数据服务端,该方法包括:
S3、接收对数据对象的查询请求,或者接收对数据对象的查询请求和数据处理任务管理请求;所述查询请求和所述数据处理任务管理请求均由第一存储服务子节点发送;
S4、根据所述查询请求查询数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;所述IO接入点记录中包含有接入点信息,一个所述接入点信息对应一个存储服务子节点;
S5、将所述IO接入点记录发送给所述第一存储服务子节点,以使所述第一存储服务子节点根据所述IO接入点记录处理第一IO请求,或将所述第一IO请求发送至所述接入点信息对应的第二存储服务子节点,由所述第二存储服务子节点完成所述第一IO请求后将所述第一IO请求原路返回给所述第一存储服务子节点的客户端;
或者,
根据所述IO接入点记录,拒绝所述数据处理任务管理请求,或向所述接入点信息对应的第二存储服务子节点发送所述数据处理任务管理请求,以使所述第二存储服务子节点接收并执行所述数据处理任务管理请求;
S8、在收到第二存储服务子节点发送的对所述数据处理任务管理请求的执行结果之后,返回所述执行结果至所述客户端。
2.根据权利要求1所述的IO接入点和数据处理任务管理方法,其特征在于,根据所述IO接入点记录的数量对所述IO接入点记录进行操作,具体包括:
所述数据对象不存在所述IO接入点记录时,为所述数据对象分配一个存储服务子节点,创建所述IO接入点记录,并将所述存储服务子节点的所述接入点信息记录于所述IO接入点记录内。
3.根据权利要求2所述的IO接入点和数据处理任务管理方法,其特征在于,为所述数据对象分配一个存储服务子节点,具体包括以下各项方式之一:
为所述数据对象随机分配一个存储服务子节点;
根据所述客户端与各个存储服务子节点的延迟数据为所述数据对象分配一个延迟最低的存储服务子节点;
根据数据对象的存储位置信息,为所述数据对象分配一个与所述客户端距离最近的存储服务子节点。
4.根据权利要求1所述的IO接入点和数据处理任务管理方法,其特征在于,所述数据处理任务管理请求具体包括以下各项请求之一:
数据处理任务的创建;
已有的数据处理任务的暂停或者恢复;
已有的数据处理任务的取消或者删除。
5.根据权利要求4所述的IO接入点和数据处理任务管理方法,其特征在于,当所述数据处理任务管理请求为所述已有的数据处理任务的取消或者删除的情况下,在收到第二存储服务子节点发送的对所述数据处理任务管理请求的执行结果之后,且在返回所述执行结果至所述客户端之前,还包括:
当所述数据对象的所述IO接入点记录为所述已有的数据处理任务所产生时,删除所述IO接入点记录。
6.根据权利要求4所述的IO接入点和数据处理任务管理方法,其特征在于,向所述接入点信息对应的所述第二存储服务子节点发送所述数据处理任务管理请求之后,还包括:
当所述已有的数据处理任务尚未被执行完毕,且第三存储服务子节点的客户端接收到对所述数据对象的第二IO请求时,接收由所述第三存储服务子节点发送的注册请求,为所述数据对象创建与所述第三存储服务子节点对应的所述IO接入点记录;
接收由所述第三存储服务子节点发送的查询请求,查询所述数据对象的所述IO接入点记录,当所述数据对象存在多个所述IO接入点记录时,向正在执行所述已有的数据处理任务的存储服务子节点发送取消执行的通知;当所述数据对象仅存在一个所述IO接入点记录时,对比创建所述第三存储服务子节点对应的所述IO接入点记录前后,所述IO接入点记录中的所述接入点信息发生的变化,在所述接入点信息发生变化的情况下,向正在执行所述已有的数据处理任务的所述存储服务子节点发送取消执行的通知。
7.一种IO接入点和数据处理任务管理方法,其特征在于,应用于存储服务器,该方法包括:
S1、第一存储服务子节点的客户端接收对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求;
S2、所述第一存储服务子节点向元数据服务发送查询请求,或者向元数据服务发送查询请求和所述数据处理任务管理请求,以使所述元数据服务接收所述查询请求,或者接收所述查询请求和所述数据处理任务管理请求,根据所述查询请求查询所述数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;
S6、所述第一存储服务子节点接收所述元数据服务发送的所述IO接入点记录,根据所述IO接入点记录处理所述第一IO请求,或将所述第一IO请求发送给所述IO接入点记录中的接入点信息对应的第二存储服务子节点;
或者,所述IO接入点记录中的接入点信息对应的第二存储服务子节点接收所述元数据服务发送的所述数据处理任务管理请求;
S7、所述第二存储服务子节点接收到所述第一IO请求后,完成所述第一IO请求,并将所述第一IO请求原路返回给所述客户端;
或者,所述第二存储服务子节点收到所述数据处理任务管理请求后,执行所述数据处理任务管理请求,执行完毕后向所述元数据服务发送执行结果。
8.根据权利要求7所述的IO接入点和数据处理任务管理方法,其特征在于,根据所述IO接入点记录处理所述第一IO请求,或将所述第一IO请求发送给所述IO接入点记录中的接入点信息对应的第二存储服务子节点,具体包括:
当所述IO接入点记录唯一,且所述IO接入点记录中的所述接入点信息对应的所述第二存储服务子节点为所述第一存储服务子节点时,所述第一存储服务子节点完成所述第一IO请求;
当所述IO接入点记录唯一,且所述IO接入点记录中的所述接入点信息对应的所述第二存储服务子节点并非所述第一存储服务子节点时,所述第一存储服务子节点向所述第二存储服务子节点发送所述第一IO请求;
当所述IO接入点记录多于一个时,所述第一存储服务子节点拒绝所述第一IO请求。
9.根据权利要求7所述的IO接入点和数据处理任务管理方法,其特征在于,在执行所述数据处理任务管理请求之后,还包括:
当第三存储服务子节点的客户端接收到对所述数据对象的第二IO请求时,所述第三存储服务子节点向所述元数据服务发送所述查询请求和注册请求,以使所述元数据服务接收所述注册请求,为所述数据对象创建与所述第三存储服务子节点对应的所述IO接入点记录,以及使所述元数据服务接收所述查询请求,根据所述查询请求查询所述数据对象的所述IO接入点记录。
10.一种IO接入点和数据处理任务管理装置,其特征在于,包括:
第一接收模块,用于接收对数据对象的查询请求,或者接收对数据对象的查询请求和数据处理任务管理请求;所述查询请求和所述数据处理任务管理请求均由第一存储服务子节点发送;
第一处理模块,用于根据所述查询请求查询所述数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;所述IO接入点记录中包含有接入点信息,一个所述接入点信息对应一个存储服务子节点;
第一发送模块,用于将所述IO接入点记录发送给所述第一存储服务子节点,以使所述第一存储服务子节点根据所述IO接入点记录处理第一IO请求,或将所述第一IO请求发送至所述接入点信息对应的第二存储服务子节点,由所述第二存储服务子节点完成所述第一IO请求后将所述第一IO请求原路返回给所述第一存储服务子节点的客户端;
所述第一发送模块还用于向所述接入点信息对应的所述第二存储服务子节点发送所述数据处理任务管理请求,以使所述第二存储服务子节点接收并执行所述数据处理任务管理请求,再接收由所述第二存储服务子节点发送的执行结果;
所述第一处理模块还用于根据所述IO接入点记录拒绝所述数据处理任务管理请求;
所述第一接收模块还用于接收由所述第二存储服务子节点发送的所述执行结果。
11.一种IO接入点和数据处理任务管理装置,其特征在于,包括:
客户端模块,用于接收对数据对象的第一IO请求或者对数据对象的数据处理任务管理请求;
第二发送模块,用于向元数据服务发送查询请求,或者向元数据服务发送查询请求和所述数据处理任务管理请求,以使所述元数据服务接收所述查询请求,或者接收所述查询请求和所述数据处理任务管理请求,根据所述查询请求查询所述数据对象的IO接入点记录,并根据所述IO接入点记录的数量对所述IO接入点记录进行操作;
第二接收模块,用于接收所述元数据服务发送的所述IO接入点记录,或者用于接收所述元数据服务发送的所述数据处理任务管理请求;
所述第二发送模块还用于将所述第一IO请求发送给所述IO接入点记录中的接入点信息对应的所述IO接入点和数据处理任务管理装置;
所述第二接收模块还用于接收其他的所述IO接入点和数据处理任务管理装置发送的所述第一IO请求;
第二处理模块,用于根据所述IO接入点记录处理所述第一IO请求,或者用于执行所述数据处理任务管理请求;所述第二处理模块还用于完成所述第一IO请求;
所述第二发送模块还用于将所述第一IO请求原路返回给所述客户端模块,或者向所述元数据服务发送执行所述数据处理任务管理请求的执行结果。
12.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6任一项所述IO接入点和数据处理任务管理方法,或者实现如权利要求7-9任一项所述的IO接入点和数据处理任务管理方法。
13.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述IO接入点和数据处理任务管理方法,或者实现如权利要求7-9任一项所述的IO接入点和数据处理任务管理方法。
CN202310238936.7A 2023-03-14 2023-03-14 Io接入点和数据处理任务管理方法、装置、设备和介质 Active CN115934006B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310238936.7A CN115934006B (zh) 2023-03-14 2023-03-14 Io接入点和数据处理任务管理方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310238936.7A CN115934006B (zh) 2023-03-14 2023-03-14 Io接入点和数据处理任务管理方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN115934006A true CN115934006A (zh) 2023-04-07
CN115934006B CN115934006B (zh) 2023-05-12

Family

ID=85825495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310238936.7A Active CN115934006B (zh) 2023-03-14 2023-03-14 Io接入点和数据处理任务管理方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN115934006B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166611A1 (en) * 2010-12-24 2012-06-28 Kim Mi-Jeom Distributed storage system including a plurality of proxy servers and method for managing objects
CN104050249A (zh) * 2011-12-31 2014-09-17 北京奇虎科技有限公司 分布式查询引擎***和方法及元数据服务器
CN104050250A (zh) * 2011-12-31 2014-09-17 北京奇虎科技有限公司 一种分布式键-值查询方法和查询引擎***
US20170220598A1 (en) * 2016-01-29 2017-08-03 Vmware, Inc. Fine-Grained Metadata Management in a Distributed File System
CN112486074A (zh) * 2020-12-03 2021-03-12 上海哔哩哔哩科技有限公司 数据处理***、方法及装置
CN115599300A (zh) * 2022-10-21 2023-01-13 济南浪潮数据技术有限公司(Cn) 一种任务分配方法、装置、设备及介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166611A1 (en) * 2010-12-24 2012-06-28 Kim Mi-Jeom Distributed storage system including a plurality of proxy servers and method for managing objects
CN104050249A (zh) * 2011-12-31 2014-09-17 北京奇虎科技有限公司 分布式查询引擎***和方法及元数据服务器
CN104050250A (zh) * 2011-12-31 2014-09-17 北京奇虎科技有限公司 一种分布式键-值查询方法和查询引擎***
US20170220598A1 (en) * 2016-01-29 2017-08-03 Vmware, Inc. Fine-Grained Metadata Management in a Distributed File System
CN112486074A (zh) * 2020-12-03 2021-03-12 上海哔哩哔哩科技有限公司 数据处理***、方法及装置
CN115599300A (zh) * 2022-10-21 2023-01-13 济南浪潮数据技术有限公司(Cn) 一种任务分配方法、装置、设备及介质

Also Published As

Publication number Publication date
CN115934006B (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
US11687555B2 (en) Conditional master election in distributed databases
JP6334643B2 (ja) Smb2スケールアウト
US9659075B2 (en) Providing high availability in an active/active appliance cluster
TWI736657B (zh) 虛擬互聯網協定位址的切換方法及裝置
US10146848B2 (en) Systems and methods for autonomous, scalable, and distributed database management
US20030200325A1 (en) Multi-protocol communication subsystem controller
CN100359508C (zh) 用于处理集群计算机***的合并协议的方法和装置
JP4549408B2 (ja) ファイルサーバのクラスタノード制御プログラム,クラスタノード制御方法及びクラスタノード制御装置
CN106506490B (zh) 一种分布式计算控制方法以及分布式计算***
JP6357587B2 (ja) 獲得ロック要求を処理するための方法及びサーバ
JPH0450780B2 (zh)
CN111400112A (zh) 分布式集群的存储***的写入方法、装置及可读存储介质
CN111352716B (zh) 一种基于大数据的任务请求方法、装置、***及存储介质
EP4068725A1 (en) Load balancing method and related device
US9760370B2 (en) Load balancing using predictable state partitioning
CN111158949A (zh) 容灾架构的配置方法、切换方法及装置、设备和存储介质
US11706298B2 (en) Multichannel virtual internet protocol address affinity
WO2017185992A1 (zh) 一种请求消息传输方法及装置
KR20140047230A (ko) 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
US20110153826A1 (en) Fault tolerant and scalable load distribution of resources
KR102119456B1 (ko) 분산 클라우드 환경에서의 분산 브로커 코디네이터 시스템 및 방법
CN115934006B (zh) Io接入点和数据处理任务管理方法、装置、设备和介质
US10001939B1 (en) Method and apparatus for highly available storage management using storage providers
US20190387054A1 (en) Method, electronic device and computer program product for searching for node
CN110572290B (zh) 主设备确定方法、装置、电子设备、存储介质及网络***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100086

Patentee after: Beijing Zhiling Haina Technology Co.,Ltd.

Country or region after: China

Address before: 100086 8th floor, block a, Yingdu building, No.48, Zhichun Road, Haidian District, Beijing

Patentee before: Beijing zhilinghaina Technology Co.,Ltd.

Country or region before: China