一种数据存储方法及装置与流程

文档序号:11176748阅读:472来源:国知局
一种数据存储方法及装置与流程

本发明涉及存储技术领域,具体而言,涉及一种数据存储方法及装置。



背景技术:

随着存储业务的不断扩展,目前,一个存储系统中接入上万个待存储终端已经是一种趋势。由于存储系统的接入性能依赖于元数据服务器自身的硬件配置,随着待存储终端接入数量的增多,元数据服务器的性能必然随之下降并最终达到一个极限,同时,随着元数据服务器性能的下降,元数据服务器的对外提供的服务能力也随之下降,届时会出现网络延时、存储调度响应延时、元数据同步出现异常等情况,进而影响存储业务的连续性。因此,如何提高接入性能,提高存储业务的连续性是目前亟待解决和考虑的问题。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种数据存储方法及装置。

第一方面,本发明实施例提供一种数据存储方法,应用于存储系统中的待存储终端,所述存储系统包括至少一个待存储终端、至少一个元数据服务器及多个存储服务器,所述多个存储服务器构成多个域,每个域内的其中一个存储服务器为该域内的域内管理服务器,所述方法包括:待存储终端查询是否已存储其所属域内的所述域内管理服务器的信息;如果没有存储,所述待存储终端向所述元数据服务器发出第一查询请求;接收所述元数据服务器返回的第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息;向所述域内管理服务器发出第二查询请求;如果已存储,则直接向所述域内管理服务器发出所述第二查询请求;接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器;将待存储数据发送至所述目标存储服务器。

第二方面,本发明实施例提供一种数据存储方法,应用于存储系统中的元数据服务器,所述存储系统包括至少一个待存储终端、至少一个元数据服务器及多个存储服务器,所述多个存储服务器构成多个域,每个域内的其中一个存储服务器为该域内的域内管理服务器,所述方法包括:所述元数据服务器接收待存储终端发送的第一查询请求;向所述待存储终端返回第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息,以使所述待存储终端向所述域内管理服务器发出第二查询请求,接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,并将所述待存储数据发送至所述目标存储服务器。

第三方面,本发明实施例提供一种数据存储方法,应用于存储系统中的域内管理服务器,所述存储系统包括至少一个待存储终端、至少一个元数据服务器及多个存储服务器,所述多个存储服务器构成多个域,每个域内的其中一个存储服务器为该域内的域内管理服务器,所述方法包括:所述域内管理服务器接收所述待存储终端的第二查询请求;向所述待存储终端返回第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,以使所述待存储终端将待存储数据发送至所述目标存储服务器。

第四方面,本发明实施例提供一种数据存储装置,运行于待存储终端,所述装置包括:查询模块,用于查询是否已存储待存储终端所属域内的域内管理服务器的信息;第一处理模块,用于如果没有存储,向元数据服务器发出第一查询请求;接收所述元数据服务器返回的第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息;向所述域内管理服务器发出第二查询请求;如果已存储,则直接向所述域内管理服务器发出所述第二查询请求;第二处理模块,用于接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器;将待存储数据发送至所述目标存储服务器。

第五方面,本发明实施例提供一种数据存储装置,运行于元数据服务器,所述装置包括:第一接收模块,用于接收待存储终端发送的第一查询请求;第三处理模块,用于向所述待存储终端返回第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息,以使所述待存储终端向所述域内管理服务器发出第二查询请求,接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,并将所述待存储数据发送至所述目标存储服务器。

第六方面,本发明实施例提供一种数据存储装置,运行于域内管理服务器,所述装置包括:第二接收模块,用于接收待存储终端的第二查询请求;第四处理模块,用于向所述待存储终端返回第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,以使所述待存储终端将待存储数据发送至所述目标存储服务器。

与现有技术相比,本发明实施例提供的数据存储方法及装置,通过待存储终端查询是否已存储其所属域内的所述域内管理服务器的信息,如果没有存储,所述待存储终端向所述元数据服务器发出第一查询请求,接收所述元数据服务器返回的第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息,向所述域内管理服务器发出第二查询请求,接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,将待存储数据发送至所述目标存储服务器;如果已存储,则直接向所述域内管理服务器发出所述第二查询请求,本方案使得待存储终端接入该存储系统中时,不再仅通过查询元数据服务器来获取目标存储服务器的信息,而是当已存储其所属域内的所述域内管理服务器的信息时,直接向所述域内管理服务器发出所述第二查询请求以获取目标存储服务器的信息,这样使得整个存储系统的接入能力不再仅依赖于元数据服务器的硬件性能,使得元数据服务器的接入压力大大减少,从而提高了待存储终端存储业务的连续性。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本发明实施例提供的存储系统的示意图。

图2是本发明实施例提供的存储系统的逻辑分层结构示意图。

图3是本发明第一实施例提供的一种数据存储方法的流程图。

图4是本发明第二实施例提供的一种数据存储方法的流程图。

图5是本发明第二实施例提供的一种数据存储方法的第一部分流程图。

图6是本发明第二实施例提供的一种数据存储方法的第二部分流程图。

图7是本发明第三实施例提供的一种数据存储方法的流程图。

图8是本发明第三实施例提供的一种数据存储方法的第一部分流程图。

图9是本发明第三实施例提供的一种数据存储方法的第二部分流程图。

图10是本发明第三实施例提供的一种数据存储方法的第三流程图。

图11是本发明第四实施例提供的一种数据存储装置的功能模块示意图。

图12是本发明第五实施例提供的一种数据存储装置的功能模块示意图。

图13是本发明第六实施例提供的一种数据存储装置的功能模块示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或时间先后。

图1示出了本发明实施例提供的存储系统的示意图。该存储系统中包括至少一个待存储终端(图中仅示出一个待存储终端100)、至少一个元数据服务器(图示仅示出两个元数据服务器,分别为201及202)及多个存储服务器(图中所示301至306)。

所述待存储终端100可以是网络摄像机、个人电脑(personalcomputer,pc)、穿戴设备等。当该待存储终端100为网络摄像机(不仅仅是网络摄像机,其他部署有cds客户端的存储中断均可以通过用户态iscsi协议将数据写入存储服务器)时,该待存储终端100可以通过用户态iscsi协议将码流直接写入存储服务器(图中所示301至306)中。

所述元数据服务器(图中所示201及202)可以是视频监控服务器vm、网络服务器、数据库服务器等。其中,两个元数据服务器(图中所示201及202)中的其中一个元数据服务器(图中所示201)为主元数据服务器,另一个元数据服务器(图中所示202)为从元数据服务器。

所述存储服务器(图中所示301至306)可以是网络硬盘录像机nvr、网络服务器、数据库服务器等。进一步的,该存储系统的各个存储服务器的存储性能可以相同,也可以不同。多个存储服务器(图中所示301至306)构成了多个域,每个域内的其中一个存储服务器为该域内的域内管理服务器(图中所示301为域1的域内管理服务器,图中所示304为域n的域内管理服务器)。

两个元数据服务器(图中所示201及202)之间通过网络进行通信连接,以完成数据的备份存储以及主从状态的切换。多个所述存储服务器(图中所示301至306)之间通过网络进行通信连接,以进行数据通信或交互。多个所述存储服务器(图中所示301至306)分别通过网络与主元数据服务器(图中所示201)进行通信连接,以进行数据通信或交互。待存储终端100通过网络与该存储系统中的主元数据服务器(图中所示201)或该待存储终端100所属域内域内管理服务器(图中所示301)的进行通信连接,以进行数据通信或交互。

请参阅图2,图2示出了本发明实施例提供的存储系统的逻辑分层结构示意图。

每个存储服务器(图中所示存储服务器1至存储服务器6)中均部署了元数据服务模块及数据节点模块。当某个域内(如图中所示域1)的其中一个存储服务器(如图中存储服务器1)被选定为该域内的域内管理服务器时,其对应的元数据服务器模块为该域内的主元数据服务模块,而该域内其它存储服务器(如图中存储服务器2及存储服务器3)对应的元数据存储模块为从元数据服务模块。进一步的,当该域内管理服务器发生切换时,其对应的元数据服务模块的主从关系也会发生变化。例如,若域1的域内管理服务器从存储服务器1切换为存储服务器2时,此时,存储服务器2的元数据服务器模块切换为主元数据服务器模块,而存储服务器1的元数据服务器模块切换为从元数据服务器模块。

该域内各个存储服务器的元数据服务模块共同构成了该域的业务接入服务层。通过该业务接入层中的元数据服务模块,对外提供待存储终端的存储业务接入服务,负责管理该域内的数据节点模块及元数据配置文件,并调度数据节点模块进行数据存储以实现数据节点模块间的负载均衡。该数据节点模块主要负责数据存储及ipsan(storageareanetwork,存储局域网络)资源管理等。

进一步的,每个元数据服务器(图中所示主元数据服务器及从元数据服务器)上均部署了元数据集群服务模块。主元数据服务器及从元数据服务器中包括的元数据集群服务模块共同构成了集群管理服务层,通过集群管理服务层中的元数据集群服务模块,管理各个域的元数据配置文件,并负责单域内域内管理服务器的切换,其中,每个域中的管理互不干扰。

本发明实施例提供的数据存储方法及装置,通过待存储终端查询是否已存储其所属域内的所述域内管理服务器的信息,如果没有存储,所述待存储终端向所述元数据服务器发出第一查询请求,接收所述元数据服务器返回的第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息,向所述域内管理服务器发出第二查询请求,接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,将待存储数据发送至所述目标存储服务器;如果已存储,则直接向所述域内管理服务器发出所述第二查询请求。

于本发明实施例中,元数据服务器中预先存了元数据配置文件,该元数据配置文件中包括静态配置文件及动态配置文件。其中,静态配置文件的内容包括但不限于对各个域的划分,各个域对应的域内管理服务器的信息、以及各个存储服务器所属域的情况等。动态配置文件是指动态增加的内容,例如,新增的网络摄像机的接入日期及存储情况等。当各个域的域管理服务器确定后,元数据服务器将该元数据配置文件同步到各个域内的域管理服务器中。当待存储终端首次需要将待存储数据存储进该存储系统时,元数据服务器可以通过查询该元数据配置文件,获取到该待存储终端所属域,并将该待存储终端所属域的域内管理服务器的信息发送给待存储终端,待存储终端接收并存储该域内管理服务器的信息。

于本发明实施例中,待存储终端100中安装有客户端,该客户端可以是第三方应用软件,与元数据服务器(图中所示201及202)或存储服务器(图中所示301至306)中安装的服务器(server)端相对应,共同遵循同一套数据协议,使得服务端跟客户端能够互相解析出对方的数据,提供待存储终端接入及存储服务。

本发明实施例提供的数据存储方法及装置,使得待存储终端接入该存储系统中时,不再仅通过查询元数据服务器来获取目标存储服务器的信息,而是当已存储其所属域内的所述域内管理服务器的信息时,直接向所述域内管理服务器发出所述第二查询请求以获取目标存储服务器的信息,这样使得整个存储系统的接入能力不再仅依赖于元数据服务器的硬件性能,使得元数据服务器的接入压力大大减少,从而提高了待存储终端存储业务的连续性。

下面将结合附图对本发明实施例中的数据存储方法及装置进行更详细的描述。

图3示出了本发明第一实施例提供的一种数据存储方法的流程图,请参阅图3,本实施例描述的是待存储终端的处理流程,所述方法包括:

步骤s401,待存储终端查询是否已存储其所属域内的所述域内管理服务器的信息。

当待存储终端产生待存储数据时,触发待存储终端查询是否已存储其所属域内的所述域内管理服务器的信息。

作为一种实施方式,待存储终端从内存中查询是否已存储其所属域内的主元数据服务模块的信息。该主元数据服务模块的信息可以是该主元数据服务模块对应的网络地址及端口地址。其中,该网络地址可以是该主元数据服务模块对应的域内管理服务器的ip地址或mac地址。

若待存储终端查询未存储其所属域内的所述域内管理服务器的信息,执行步骤s402;若待存储终端查询已存储其所属域内的所述域内管理服务器的信息,直接执行步骤s404。

步骤s402,向所述元数据服务器发出第一查询请求。

当若待存储终端查询未存储其所属域内的域内管理服务器的信息时,向元数据服务器发出第一查询请求,以获取待存储终端所属域内的域内管理服务器的信息。其中,该第一查询请求可以包括该待存储终端的网络地址信息。

步骤s403,接收所述元数据服务器返回的第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息。

当元数据服务器接收到该第一查询请求时,可以查询预存储的元数据配置文件中包括的各个域的配置信息,通过该第一查询请求中包括的待存储终端的网络地址信息,来确定该待存储终端所属域。当确定该待存储终端所属域后,查询该域内的域内管理服务器的信息并返回给待存储终端。所述域内管理服务器的信息包括该域内管理服务器的网络地址信息。

步骤s404,向所述域内管理服务器发出第二查询请求。

当待存储终端接收到该第一响应信息后,根据第一响应信息中包括的域内管理服务器的网络地址信息,向域内管理服务器的主元数据服务模块发送第二查询请求,第二查询请求中包括但不限于待存储数据的大小。

步骤s405,接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器。

当域内管理服务器接收到第二查询请求,会根据第二查询请求中包括的待存储数据的大小进行存储调度,选择该域内适合该待存储终端进行存储的目标存储服务器。当目标存储服务器选定后,域内管理服务器向待存储终端返回第二响应信息,所述第二响应信息中包括目标存储服务器的信息。其中,目标存储服务器的信息包括目标存储服务器的网络地址信息。当然,也可以包括目标存储服务器的存储能力等。

步骤s406,将待存储数据发送至所述目标存储服务器。

当接收到该第二响应信息后,待存储终端根据目标存储服务器的网络地址信息,将将待存储数据发送至所述目标存储服务器。作为一种实施方式,若该待存储终端为网络摄像机,则网络摄像机直接通过用户态iscsi协议将录像数据写入目标存储服务器的数据节点模块,直到一个录像数据写完。

当待存储终端正在存储数据时,若待存储终端与元数据服务器之间出现断网的情况,此时由于待存储终端本地已经保存有域管理服务器的主元数据服务模块的信息,待存储终端无需再次向元数据服务器请求主元数据服务模块的信息,因此存储业务不会出现中断的情况,当待存储终端与元数据服务器之间的网络恢复后,也没有任何特殊的操作和影响,能实现无缝恢复。

若元数据服务器出现宕机的情况下,主元数据服务模块的主从状态也保持不变,并且正常存储时待存储终端已经保存有主元数据服务模块的信息,因此元数据服务器即使出现宕机,存储亦可正常,不会停止。

本发明实施例提供的数据存储方法,通过待存储终端查询是否已存储其所属域内的所述域内管理服务器的信息,如果没有存储,所述待存储终端向所述元数据服务器发出第一查询请求,接收所述元数据服务器返回的第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息,向所述域内管理服务器发出第二查询请求,接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,将待存储数据发送至所述目标存储服务器;如果已存储,则直接向所述域内管理服务器发出所述第二查询请求,本方案使得待存储终端接入该存储系统中时,不再仅通过查询元数据服务器来获取目标存储服务器的信息,而是当已存储其所属域内的所述域内管理服务器的信息时,直接向所述域内管理服务器发出所述第二查询请求以获取目标存储服务器的信息,这样使得整个存储系统的接入能力不再仅依赖于元数据服务器的硬件性能,使得元数据服务器的接入压力大大减少,从而提高了待存储终端存储业务的连续性。

图4示出了本发明第二实施例提供的一种数据存储方法的流程图,请参阅图4,本实施例描述的是元数据服务器的处理流程,所述方法包括:

步骤s501,元数据服务器接收待存储终端发送的第一查询请求。

步骤s502,所述待存储终端返回第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息,以使所述待存储终端向所述域内管理服务器发出第二查询请求,接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,并将所述待存储数据发送至所述目标存储服务器。

作为一种实施方式,请参阅图5,所述方法还包括:

步骤s503,所述元数据服务器接收所述存储服务器发送的注册信息。

存储服务器中的元数据服务模块会周期性的发送保活消息到元数据服务器,该保活消息用于上报元数据服务模块的主从状态。

步骤s504,若所述注册信息为所述元数据服务器接收到的所述存储服务器所属域内的第一个注册信息,则将所述存储服务器作为所述存储服务器所属域内的域内管理服务器。

并将该域内管理服务器的元数据服务模块置为主元数据服务模块,并发送通知消息到该域内管理服务器的元数据服务模块,以使该元数据服务模块将自己的状态置为主状态。

步骤s505,发送同步信息到所述域内管理服务器,以使所述域内管理服务器完成元数据配置文件的同步,其中,所述同步信息中包括元数据配置文件。

当域内管理服务器接收到该元数据配置文件后,完成元数据配置文件的同步。

步骤s506,分别发送通知信息到所述存储服务器所属域内的其它存储服务器,以使该域内的其它所述存储服务器向所述域内管理服务器上报其存储能力。

具体的,分别发送通知信息到所述存储服务器所属域内的其它存储服务器的数据节点模块,该通知信息中包括域内管理服务器的主元数据服务模块的信息。进一步的,该主元数据服务模块的信息包括域内管理服务器的ip地址和端口号。

其中,存储服务器上报的存储能力包括该存储服务器的存储容量及存储路数等。

作为一种实施方式,请参阅图6,所述方法还包括:

步骤s507,当所述元数据服务器与所述域内管理服务器断开连接时,所述元数据服务器重新从所述域内管理服务器所属域内选择一个存储服务器作为新域内管理服务器。

请参阅图2,若域1的原域内管理服务器为存储服务器1,当所述元数据服务器与存储服务器1断开连接时,元数据服务器重新从域1内选出一个存储服务器,例如存储服务器3,将存储服务器3作为新域内管理服务器。

步骤s508,发送同步信息到所述新域内管理服务器,以使所述新域内管理服务器完成元数据配置文件的同步,其中,所述同步信息中包括元数据配置文件。

并同时发送通知信息到该属域内的其它存储服务器,以使该域内的其它所述存储服务器向新的域内管理服务器上报其存储能力。

继续以上例进行说明,元数据服务器将元数据配置文件发送到新域内管理服务器,即存储服务器3,当存储服务器3接收到该元数据配置文件,完成元数据配置文件的同步。元数据服务器同时发送通知到域1内的所有存储服务器中的数据节点模块,使得所有数据节点模块均向存储服务器3的主元数据服务模块上报其存储能力。

作为一种实施方式,所述方法还包括:当所述元数据服务器与所述域内管理服务器恢复连接时,所述元数据服务器向所述域内管理服务器发送切换通知,所述切换通知中包括新域内管理服务器的信息,以使所述域内管理服务器切换为存储服务器,并将其存储能力上报到所述新域内管理服务器。

作为一种实施方式,所述方法还包括:当所述元数据服务器内存储的元数据配置文件发生变化时,发送增量同步信息到所述域内管理服务器,以使所述域内管理服务器完成元数据配置文件的同步,其中,所述增量同步信息包括所述元数据配置文件中发生变化的内容。

其中,当新增了待存储终端的配置元数据时,元数据服务器内存储的元数据配置文件发生变化。

通过这种增量同步的方式,能够保证主元数据服务器中存储的元数据配置文件与域内管理服务器的主元数据服务器模块存储的元数据配置文件始终保持同步。并且当元数据服务器将主元数据服务器模块信息通知给该域内的各个数据节点模块后,各个数据节点模块便周期性将其存储能力上报给主元数据服务器模块,给主元数据服务器模块在存储负载均衡决策上提供准确的数据。

由于当前主元数据服务模块的信息只在待存储中的内存中保存,且由于元数据服务器选择主元数据服务模块的策略是第一个注册的元数据服务模块,即为主元数据服务模块,因此,当元数据服务器出现异常且恢复后,例如,元数据服务器出现宕机或是网络中断等异常且恢复后,主元数据服务模块可能会发生切换,此时,当待存储终端存储完待存储数据后,重新从所述元数据服务器处获取所述待存储终端所属域内的域内管理服务器的信息,但是,不会出现存储中断的情况,保证了存储的连续性。

本发明实施例提供的数据存储方法,通过待存储终端查询是否已存储其所属域内的所述域内管理服务器的信息,如果没有存储,所述待存储终端向所述元数据服务器发出第一查询请求,接收所述元数据服务器返回的第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息,向所述域内管理服务器发出第二查询请求,接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,将待存储数据发送至所述目标存储服务器;如果已存储,则直接向所述域内管理服务器发出所述第二查询请求,本方案使得待存储终端接入该存储系统中时,不再仅通过查询元数据服务器来获取目标存储服务器的信息,而是当已存储其所属域内的所述域内管理服务器的信息时,直接向所述域内管理服务器发出所述第二查询请求以获取目标存储服务器的信息,这样使得整个存储系统的接入能力不再仅依赖于元数据服务器的硬件性能,使得元数据服务器的接入压力大大减少,从而提高了待存储终端存储业务的连续性。

图7示出了本发明第三实施例提供的一种数据存储方法的流程图,请参阅图7,本实施例描述的是域内管理服务器的处理流程,所述方法包括:

步骤s601,所述域内管理服务器接收所述待存储终端的第二查询请求。

步骤s602,向所述待存储终端返回第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,以使所述待存储终端将待存储数据发送至所述目标存储服务器。

作为一种实施方式,请参阅图8,在所述域内管理服务器接收所述待存储终端的第二查询请求之前,所述方法还包括:

步骤s603,向所述元数据服务器发送注册信息。

步骤s604,接收所述元数据服务器返回的同步信息,所述同步信息中包括元数据配置文件。

步骤s605,根据所述同步信息,完成元数据配置文件的同步。

作为一种实施方式,请参阅图9,所述方法还包括:

步骤s606,接收所述元数据服务器发送的增量同步信息,所述增量同步信息包括所述元数据配置文件中发生变化的内容。

步骤s607,根据所述增量同步信息,完成元数据配置文件的同步。

作为一种实施方式,请参阅图10,所述方法还包括:

步骤s608,当所述域内管理服务器与所述元数据服务器从断开连接到恢复连接时,所述域内管理服务器接收所述元数据服务器发送的切换通知,所述切换通知中包括新域内管理服务器的信息。

若出现域管理服务器与元数据服务器之间出现网络异常后,域管理服务器中的主元数据服务模块向元数据服务器上报状态的链路会断开,在一个上报周期内元数据服务器没有收到域管理服务器的主元数据服务模块上报的信息,则元数据服务器认为该主元数据服务模块发送异常,便从元数据服务模块管理列表中剔除,从剩余的从元数据服务模块中重新选择一个内存中靠前的从元数据服务模块作为主元数据服务模块。

步骤s609,所述域内管理服务器将状态切换为存储服务器,并将其存储能力上报到所述新域内管理服务器。

请参阅图2,假设元数据服务器选择了存储服务器3中的从元数据服务模块作为主元数据服务模块,此时,元数据服务器发送通知到所有存储服务器中的数据节点模块,该通知中包括新的主元数据服务模块的信息,以使各个数据节点模块将自己的存储能力上报给新的主元数据服务模块。

由于原来的域管理服务器与元数据服务器之间的网络出现了异常,因此数据节点模块1还是向原来的域管理服务器上的主元数据服务模块上报能力。此时待存储终端所属域中出现了两个主元数据服务模块,但是由于待存储终端与原域管理服务器中的主元数据服务模块之间网络正常,并且本地保存的主元数据服务模块信息为原有的元数据服务模块,因此,待存储终端的存储业务继续由原主元数据服务模块调度,但由于其他数据节点模块存储能力都上报给新的主元数据服务模块,因此,原有待存储终端只能存储在原主元数据服务模块所在的数据节点模块上,此时新配置的待存储终端存储由新主元数据服务模块进行调度。

因此,若出现域管理服务器与元数据服务器之间出现网络异常,该异常情况不影响原有的待存储终端和新配置的待存储终端的存储,只对存储的负载均衡有一定影响。网络恢复后,原主元数据服务模块将变为从元数据服务模块,原主元数据服务模块所在的数据节点模块将向新的主元数据服务模块上报存储能力,加入存储调度队列中。原主元数据服务模块调度的待存储终端均切换到新主元数据服务模块上进行存储调度,其恢复的过程也不会发生存储的中断。

本发明实施例提供的数据存储方法,通过待存储终端查询是否已存储其所属域内的所述域内管理服务器的信息,如果没有存储,所述待存储终端向所述元数据服务器发出第一查询请求,接收所述元数据服务器返回的第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息,向所述域内管理服务器发出第二查询请求,接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,将待存储数据发送至所述目标存储服务器;如果已存储,则直接向所述域内管理服务器发出所述第二查询请求,本方案使得待存储终端接入该存储系统中时,不再仅通过查询元数据服务器来获取目标存储服务器的信息,而是当已存储其所属域内的所述域内管理服务器的信息时,直接向所述域内管理服务器发出所述第二查询请求以获取目标存储服务器的信息,这样使得整个存储系统的接入能力不再仅依赖于元数据服务器的硬件性能,使得元数据服务器的接入压力大大减少,从而提高了待存储终端存储业务的连续性。

请参阅图11,是本发明第四实施例提供的一种数据存储装置700的功能模块示意图。所述数据存储装置700运行于待存储终端100中。所述数据存储装置700包括查询模块710、第一处理模块720、以及第二处理模块730。

查询模块710,用于查询是否已存储待存储终端所属域内的域内管理服务器的信息。

第一处理模块720,用于如果没有存储,向元数据服务器发出第一查询请求;接收所述元数据服务器返回的第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息;向所述域内管理服务器发出第二查询请求;如果已存储,则直接向所述域内管理服务器发出所述第二查询请求。

第二处理模块730,用于接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器;将待存储数据发送至所述目标存储服务器。

以上各模块可以是由软件代码实现,也同样可以由硬件例如集成电路芯片实现。

请参阅图12,是本发明第五实施例提供的一种数据存储装置800的功能模块示意图。所述数据存储装置800运行于元数据服务器(图中所示201至202)中。所述数据存储装置800包括第一接收模块810、及第三处理模块820。

第一接收模块810,用于接收待存储终端发送的第一查询请求。

第三处理模块820,用于向所述待存储终端返回第一响应信息,所述第一响应信息中包括所述待存储终端所属域内的域内管理服务器的信息,以使所述待存储终端向所述域内管理服务器发出第二查询请求,接收所述域内管理服务器返回的第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,并将所述待存储数据发送至所述目标存储服务器。

以上各模块可以是由软件代码实现,也同样可以由硬件例如集成电路芯片实现。

请参阅图13,是本发明第六实施例提供的一种数据存储装置900的功能模块示意图。所述数据存储装置900运行于域内管理服务器(图中所示301及304)中。所述数据存储装置900包括第二接收模块910、及第四处理模块920。

第二接收模块910,用于接收待存储终端的第二查询请求。

第四处理模块920,用于向所述待存储终端返回第二响应信息,所述第二响应信息中包括目标存储服务器的信息,所述目标存储服务器为所述待存储终端所属域内的其中一个存储服务器,以使所述待存储终端将待存储数据发送至所述目标存储服务器。

以上各模块可以是由软件代码实现,也同样可以由硬件例如集成电路芯片实现。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本发明实施例所提供的数据存储装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1