数据写入、读取方法及装置、云存储系统转让专利

申请号 : CN201610088973.4

文献号 : CN107092437B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金平林起芊

申请人 : 杭州海康威视数字技术股份有限公司

摘要 :

本发明实施例提供了一种数据写入、读取方法及装置、云存储系统,所述数据写入方法包括:接入节点接收数据写入请求;当无法获取到可用管理节点时,识别所述数据写入请求中包含的域标识信息,并根据所述域标识信息,查询预先保存的索引,其中,所述索引包含资源池与域标识信息的对应关系;识别与所述域标识信息匹配的目标资源池,其中,每个资源池中包含至少一个存储服务器;从所述目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,并将待写入数据写入所述目标存储服务器。本实施方式能够保证在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常运行,且不需要增加额外的成本。

权利要求 :

1.一种基于云存储系统的数据写入方法,所述云存储系统至少包括:接入节点、至少一个管理节点以及至少一个存储服务器,其特征在于,所述方法包括:所述接入节点接收数据写入请求;

当无法获取到可用管理节点时,识别所述数据写入请求中包含的域标识信息,并根据所述域标识信息,查询预先保存的索引,其中,所述索引包含资源池与域标识信息的对应关系;

识别与所述域标识信息匹配的目标资源池,其中,每个资源池中包含至少一个存储服务器;

从所述目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,并将待写入数据写入所述目标存储服务器。

2.根据权利要求1所述的方法,其特征在于,所述确定其中一个存储服务器为目标存储服务器,包括:获取每个存储服务器的当前负载量;

识别当前负载量最小的存储服务器,将其作为目标存储服务器。

3.根据权利要求1所述的方法,其特征在于,所述无法获取到可用管理节点包括:每个管理节点均出现故障或管理节点集群网络异常。

4.根据权利要求1-3任一所述的方法,其特征在于,构建所述索引的过程包括:向每个管理节点发送获取每个资源池与域标识信息的对应关系的请求,并接收所述每个管理节点发送的每个资源池与域标识信息的对应关系;

在索引中保存所述每个资源池与域标识信息的对应关系。

5.根据权利要求4所述的方法,其特征在于,还包括:按照设定的时间间隔,更新所述索引中保存的每个资源池与域标识信息的对应关系。

6.一种基于云存储系统的数据读取方法,所述云存储系统至少包括:至少一个管理节点以及至少一个存储服务器,其特征在于,应用于查询平台,所述方法包括:接收数据读取请求;

当无法获取到可用管理节点时,查询预先保存的索引,其中,所述索引包含每个存储服务器及其IP地址的对应关系;

根据所述每个存储服务器的IP地址,向所述每个存储服务器发送获取数据的属性信息的请求,并接收对应的所述每个存储服务器返回的其自身保存的数据的属性信息;

根据接收的所述每个存储服务器发送的其自身保存的数据的属性信息,以及所述数据读取请求中包含的待读取数据的属性信息,确定至少一个目标存储服务器,并从每个目标存储服务器中读取相应的数据。

7.根据权利要求6所述的方法,其特征在于,所述索引中还包括每个存储服务器是否在线的状态信息,所述根据所述每个存储服务器的IP地址,向所述每个存储服务器发送获取数据的属性信息的请求,包括:根据每个存储服务器的状态信息,识别处于在线状态的存储服务器;

根据处于在线状态的存储服务器的IP地址,向对应的每个处于在线状态的存储服务器发送获取数据的属性信息的请求。

8.根据权利要求6所述的方法,其特征在于,所述无法获取到可用管理节点包括:每个管理节点均出现故障或管理节点集群网络异常。

9.根据权利要求6-8任一所述的方法,其特征在于,构建所述索引的过程包括:向每个管理节点发送获取每个存储服务器和IP地址的对应关系的请求,并接收所述每个管理节点发送的每个存储服务器和IP地址的对应关系;

在索引中保存所述每个存储服务器和IP地址的对应关系。

10.根据权利要求6-8任一所述的方法,其特征在于,所述方法还包括:按照设定的时间间隔,更新所述索引中保存的每个存储服务器和IP地址的对应关系。

11.一种基于云存储系统的数据写入装置,所述云存储系统至少包括:接入节点、至少一个管理节点以及至少一个存储服务器,其特征在于,应用于所述接入节点,所述装置包括:接收模块,用于接收数据写入请求;

处理模块,用于当无法获取到可用管理节点时,识别所述数据写入请求中包含的域标识信息,并根据所述域标识信息,查询预先保存的索引,其中,所述索引包含资源池与域标识信息的对应关系;

识别模块,用于识别与所述域标识信息匹配的目标资源池,其中,每个资源池中包含至少一个存储服务器;

写入模块,用于从所述目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,并将待写入数据写入所述目标存储服务器。

12.根据权利要求11所述的装置,其特征在于,所述写入模块,具体用于:获取每个存储服务器的当前负载量;

识别当前负载量最小的存储服务器,将其作为目标存储服务器。

13.根据权利要求11所述的装置,其特征在于,所述无法获取到可用管理节点包括:每个管理节点均出现故障或管理节点集群网络异常。

14.根据权利要求11-13任一所述的装置,其特征在于,还包括:执行模块,用于向每个管理节点发送获取每个资源池与域标识信息的对应关系的请求,并接收所述每个管理节点发送的每个资源池与域标识信息的对应关系;

保存模块,用于在索引中保存所述每个资源池与域标识信息的对应关系。

15.根据权利要求14所述的装置,其特征在于,还包括:更新模块,用于按照设定的时间间隔,更新所述索引中保存的每个资源池与域标识信息的对应关系。

16.一种基于云存储系统的数据读取装置,所述云存储系统至少包括:至少一个管理节点以及至少一个存储服务器,其特征在于,应用于查询平台,所述装置包括:接收模块,用于接收数据读取请求;

查询模块,用于当无法获取到可用管理节点时,查询预先保存的索引,其中,所述索引包含每个存储服务器及其IP地址的对应关系;

处理模块,用于根据每个存储服务器的IP地址,向所述每个存储服务器发送获取数据的属性信息的请求,并接收对应的所述每个存储服务器返回的其自身保存的数据的属性信息;

读取模块,用于根据接收的所述每个存储服务器发送的其自身保存的数据的属性信息,以及所述数据读取请求中包含的待读取数据的属性信息,确定至少一个目标存储服务器,并从每个目标存储服务器中读取相应的数据。

17.根据权利要求16所述的装置,其特征在于,所述索引中还包括每个存储服务器是否在线的状态信息,所述处理模块,包括:识别子模块,用于根据每个存储服务器的状态信息,识别处于在线状态的存储服务器;

处理子模块,用于根据处于在线状态的存储服务器的IP地址,向对应的每个处于在线状态的存储服务器发送获取数据的属性信息的请求。

18.根据权利要求16所述的装置,其特征在于,所述无法获取到可用管理节点包括:每个管理节点均出现故障或管理节点集群网络异常。

19.根据权利要求16-18任一所述的装置,其特征在于,所述装置还包括:执行模块,用于向每个管理节点发送获取每个存储服务器和IP地址的对应关系的请求,并接收所述每个管理节点发送的每个存储服务器和IP地址的对应关系;

保存模块,用于在索引中保存所述每个存储服务器和IP地址的对应关系。

20.根据权利要求16-18任一所述的装置,其特征在于,所述装置还包括:更新模块,用于按照设定的时间间隔,更新所述索引中保存的每个存储服务器和IP地址的对应关系。

21.一种云存储系统,其特征在于,所述云存储系统包括设置在接入节点中的如权利要求11-15任一项所述的装置,以及至少一个存储服务器。

说明书 :

数据写入、读取方法及装置、云存储系统

技术领域

[0001] 本发明涉及数据处理技术领域,特别是涉及一种数据写入、读取方法及装置、云存储系统。

背景技术

[0002] 云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中各种不同类型的大量存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。
[0003] 云存储系统是一个主从架构的分布式系统,主节点也就是管理节点在整个系统的正常运行中起到至关重要的作用。管理节点一旦出现故障,整个系统的所有业务都不能正常进行。例如,当云存储系统中的接入节点接收到一个数据写入请求时,接入节点需要将该数据写入请求发送给管理节点,以使管理节点为该数据写入请求分配对应的存储服务器。
[0004] 然而,当管理节点出现故障时,管理节点将不会对接入节点发送的数据处理请求作出响应,因此,该数据处理将会失败。
[0005] 以图1所示的视频云存储系统的架构为例对无法获取到可用管理节点时相应处理流程进行说明,当无法获取到可用视频云存储管理节点(CVM,Cloud Video Manage)130时,视频云存储管理节点130将不会对视频云存储接入节点(CVA,Cloud Video Access)120发送的数据处理请求作出响应,因此,视频云存储接入节点120将不会收到视频云存储管理节点130为该数据处理请求分配的视频云存储存储服务器(CVS,Cloud Video Storage)140,该数据处理将会失败。对于与上述视频云存储系统相似的其他云存储系统也同样存在上述问题。
[0006] 因此,云存储系统在实际运用中,遇到管理节点出现故障导致云存储系统无法提供服务时,可能会造成数据的丢失或者数据无法读取,给用户造成重大损失。
[0007] 现有技术中,为了保证云存储系统的稳定,主要方法是增加管理节点的数量,并通过HA(High Available,高可用性集群)或者集群技术保证部分管理节点故障时由正常的管理节点接管继续提供服务,或者添加备用管理节点来代替故障管理节点提供服务。但是,增加管理节点或者添加备用管理节点会增加项目成本,而且,增加管理节点或者添加备用管理节点也只能保证部分管理节点故障时云存储系统正常运行,而无法保证所有的管理节点都出现故障或管理节点集群网络异常的情况下云存储系统正常运行。

发明内容

[0008] 本发明实施例的目的在于提供一种数据写入、读取方法及装置、云存储系统,以在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常运行,且不需要增加额外的成本。具体技术方案如下:
[0009] 第一方面,本发明实施例提供了一种基于云存储系统的数据写入方法,所述云存储系统至少包括:接入节点、至少一个管理节点以及至少一个存储服务器,所述方法包括:
[0010] 所述接入节点接收数据写入请求;
[0011] 当无法获取到可用管理节点时,识别所述数据写入请求中包含的域标识信息,并根据所述域标识信息,查询预先保存的索引,其中,所述索引包含资源池与域标识信息的对应关系;
[0012] 识别与所述域标识信息匹配的目标资源池,其中,每个资源池中包含至少一个存储服务器;
[0013] 从所述目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,并将待写入数据写入所述目标存储服务器。
[0014] 进一步地,所述确定其中一个存储服务器为目标存储服务器,包括:
[0015] 获取每个存储服务器的当前负载量;
[0016] 识别当前负载量最小的存储服务器,将其作为目标存储服务器。
[0017] 进一步地,所述无法获取到可用管理节点包括:每个管理节点均出现故障或管理节点集群网络异常。
[0018] 进一步地,构建所述索引的过程包括:
[0019] 向每个管理节点发送获取每个资源池与域标识信息的对应关系的请求,并接收所述每个管理节点发送的每个资源池与域标识信息的对应关系;
[0020] 在索引中保存所述每个资源池与域标识信息的对应关系。
[0021] 进一步地,所述方法还包括:
[0022] 按照设定的时间间隔,更新所述索引中保存的每个资源池与域标识信息的对应关系。
[0023] 第二方面,本发明实施例提供了一种基于云存储系统的数据读取方法,所述云存储系统至少包括:至少一个管理节点以及至少一个存储服务器,应用于查询平台,所述方法包括:
[0024] 接收数据读取请求;
[0025] 当无法获取到可用管理节点时,查询预先保存的索引,其中,所述索引包含每个存储服务器及其IP地址的对应关系;
[0026] 根据所述每个存储服务器的IP地址,向所述每个存储服务器发送获取数据的属性信息的请求,并接收对应的所述每个存储服务器返回的其自身保存的数据的属性信息;
[0027] 根据接收的所述每个存储服务器发送的其自身保存的数据的属性信息,以及所述数据读取请求中包含的待读取数据的属性信息,确定至少一个目标存储服务器,并从每个目标存储服务器中读取相应的数据。
[0028] 进一步地,所述索引中还包括每个存储服务器是否在线的状态信息,所述根据所述每个存储服务器的IP地址,向所述每个存储服务器发送获取数据的属性信息的请求,包括:
[0029] 根据每个存储服务器的状态信息,识别处于在线状态的存储服务器;
[0030] 根据处于在线状态的存储服务器的IP地址,向对应的每个处于在线状态的存储服务器发送获取数据的属性信息的请求。
[0031] 进一步地,所述无法获取到可用管理节点包括:每个管理节点均出现故障或管理节点集群网络异常。
[0032] 进一步地,构建所述索引的过程包括:
[0033] 向每个管理节点发送获取每个存储服务器和IP地址的对应关系的请求,并接收所述每个管理节点发送的每个存储服务器和IP地址的对应关系;
[0034] 在索引中保存所述每个存储服务器和IP地址的对应关系。
[0035] 进一步地,所述方法还包括:
[0036] 按照设定的时间间隔,更新所述索引中保存的每个存储服务器和IP地址的对应关系。
[0037] 第三方面,本发明实施例提供了一种基于云存储系统的数据写入装置,所述云存储系统至少包括:接入节点、至少一个管理节点以及至少一个存储服务器,应用于所述接入节点,所述装置包括:
[0038] 接收模块,用于接收数据写入请求;
[0039] 处理模块,用于当无法获取到可用管理节点时,识别所述数据写入请求中包含的域标识信息,并根据所述域标识信息,查询预先保存的索引,其中,所述索引包含资源池与域标识信息的对应关系;
[0040] 识别模块,用于识别与所述域标识信息匹配的目标资源池,其中,每个资源池中包含至少一个存储服务器;
[0041] 写入模块,用于从所述目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,并将待写入数据写入所述目标存储服务器。
[0042] 进一步地,所述写入模块,具体用于:
[0043] 获取每个存储服务器的当前负载量;
[0044] 识别当前负载量最小的存储服务器,将其作为目标存储服务器。
[0045] 进一步地,所述无法获取到可用管理节点包括:每个管理节点均出现故障或管理节点集群网络异常。
[0046] 进一步地,所述装置还包括:
[0047] 执行模块,用于向每个管理节点发送获取每个资源池与域标识信息的对应关系的请求,并接收所述每个管理节点发送的每个资源池与域标识信息的对应关系;
[0048] 保存模块,用于在索引中保存所述每个资源池与域标识信息的对应关系。
[0049] 进一步地,所述装置还包括:
[0050] 更新模块,用于按照设定的时间间隔,更新所述索引中保存的每个资源池与域标识信息的对应关系。
[0051] 第四方面,本发明实施例提供了一种基于云存储系统的数据读取装置,所述云存储系统至少包括:至少一个管理节点以及至少一个存储服务器,应用于查询平台,所述装置包括:
[0052] 接收模块,用于接收数据读取请求;
[0053] 查询模块,用于当无法获取到可用管理节点时,查询预先保存的索引,其中,所述索引包含每个存储服务器及其IP地址的对应关系;
[0054] 处理模块,用于根据所述每个存储服务器的IP地址,向所述每个存储服务器发送获取数据的属性信息的请求,并接收对应的所述每个存储服务器返回的其自身保存的数据的属性信息;
[0055] 读取模块,用于根据接收的所述每个存储服务器发送的其自身保存的数据的属性信息,以及所述数据读取请求中包含的待读取数据的属性信息,确定至少一个目标存储服务器,并从每个目标存储服务器中读取相应的数据。
[0056] 进一步地,所述索引中还包括每个存储服务器是否在线的状态信息,所述处理模块,包括:
[0057] 识别子模块,用于根据每个存储服务器的状态信息,识别处于在线状态的存储服务器;
[0058] 处理子模块,用于根据处于在线状态的存储服务器的IP地址,向对应的每个处于在线状态的存储服务器发送获取数据的属性信息的请求。
[0059] 进一步地,所述无法获取到可用管理节点包括:每个管理节点均出现故障或管理节点集群网络异常。
[0060] 进一步地,所述装置还包括:
[0061] 执行模块,用于向每个管理节点发送获取每个存储服务器和IP地址的对应关系的请求,并接收所述每个管理节点发送的每个存储服务器和IP地址的对应关系;
[0062] 保存模块,用于在索引中保存所述每个存储服务器和IP地址的对应关系。
[0063] 进一步地,所述装置还包括:
[0064] 更新模块,用于按照设定的时间间隔,更新所述索引中保存的每个存储服务器和IP地址的对应关系。
[0065] 第五方面,本发明实施例提供了一种云存储系统,所述云存储系统包括如上述第三方面所述的设置在接入节点中的装置,以及至少一个存储服务器。
[0066] 本发明实施例提供了一种数据写入、读取方法及装置、云存储系统,所述数据写入方法包括:所述接入节点接收数据写入请求;当无法获取到可用管理节点时,识别所述数据写入请求中包含的域标识信息,并根据所述域标识信息,查询预先保存的索引,其中,所述索引包含资源池与域标识信息的对应关系;识别与所述域标识信息匹配的目标资源池,其中,每个资源池中包含至少一个存储服务器;从所述目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,并将待写入数据写入所述目标存储服务器。本发明实施例能够保证在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常运行,且不需要增加额外的成本。

附图说明

[0067] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0068] 图1为无法获取到管理节点时云存储系统无法提供服务的示意图;
[0069] 图2为正常情况下云存储系统处理数据请求的示意性流程;
[0070] 图3为本实施例提供的基于云存储系统的数据写入方法;
[0071] 图4为本实施例提供的一种构建索引的方法;
[0072] 图5为本实施例提供的基于云存储系统的数据读取方法;
[0073] 图6为本实施例提供的另一种构建索引的方法;
[0074] 图7为本实施例提供的基于云存储系统的数据写入装置;
[0075] 图8为本实施例提供的基于云存储系统的数据读取装置。

具体实施方式

[0076] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0077] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0078] 图3为本实施例提供的基于云存储系统的数据写入方法,可以包括如下步骤:
[0079] 步骤301,接入节点接收数据写入请求。
[0080] 一般情况下,云存储系统至少可以包括:接入节点、至少一个管理节点以及至少一个存储服务器。接入节点可以用来接收数据写入请求,并将数据写入请求发送给管理节点,以使得管理节点为该数据写入请求分配对应的存储服务器。接入节点可以进一步地根据管理节点为该数据写入请求分配的存储服务器,对该数据写入请求中相应的数据进行处理。
[0081] 在本实施例中,云存储系统进行数据写入时,可以首先由接入节点接收数据写入请求,并对相应的数据进行写入。
[0082] 以图2所示的视频云存储系统的架构为例进行说明,对正常情况下云存储系统处理数据请求的过程作简单介绍。如图2所示,电子设备110可以向视频云存储接入节点(CVA)120发送数据处理请求,当接入节点120接收到一个数据处理请求时,接入节点120需要将该数据处理请求发送给管理节点(CVM)130,以使管理节点130为该数据处理请求分配对应的存储服务器(CVS)140。管理节点130为该数据处理请求分配对应的存储服务器140后,可以将分配结果反馈给接入节点120,接入节点120可以基于分配的存储服务器140,进行相应的数据处理,例如数据读写操作。
[0083] 步骤302,当无法获取到可用管理节点时,识别所述数据写入请求中包含的域标识信息,并根据所述域标识信息,查询预先保存的索引,其中,所述索引包含资源池与域标识信息的对应关系。
[0084] 在云存储系统中,通常可以包含多个存储服务器,为了便于对多个存储服务器进行管理,可以建立资源池,其中,每个资源池可以包括至少一个存储服务器。每个资源池可以有对应的域标识信息。
[0085] 当接入节点接收到数据写入请求时,数据写入请求中通常会包含域标识信息,即待写入数据将要写入的存储服务器所在的资源池的域标识信息,以使得接入节点可以基于该域标识信息,为数据写入请求分配对应的存储服务器。
[0086] 正常情况下,接入节点接收到数据写入请求时,可以将数据写入请求发送给管理节点,以使得管理节点为该数据写入请求分配对应的存储服务器。然而,当无法获取到可用管理节点时,接入节点将不能通过管理节点获得为该数据写入请求分配的存储服务器。
[0087] 因此,在本实施例中,可以预先保存包含资源池与域标识信息的对应关系的索引。当接收到数据写入请求且无法获取到可用管理节点时,接入节点可以根据识别数据写入请求中的域标识信息,并根据该域标识信息,查询预先保存的包含资源池与域标识信息的对应关系的索引,以识别与该域标识信息匹配的目标资源池。
[0088] 步骤303,识别与所述域标识信息匹配的目标资源池,其中,每个资源池中包含至少一个存储服务器。
[0089] 在本发明实施例中,接入节点识别出数据写入请求中包含的域标识信息后,可以查找索引中保存的每个资源池与域标识信息的对应关系,以识别出与数据写入请求中包含的域标识信息对应的资源池,并将识别到的资源池作为目标资源池,以基于目标资源池,对该数据写入请求进行处理。
[0090] 步骤304,从所述目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,并将待写入数据写入所述目标存储服务器。
[0091] 当识别出与数据写入请求中包含的域标识信息对应的目标资源池后,接入节点可以进一步地从目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,以将待写入数据写入该目标存储服务器。
[0092] 例如,可以在目标资源池中包含的至少一个存储服务器中,选择其中任一个存储服务器作为目标存储服务器。
[0093] 可选地或附加地,为了保证每个存储服务器的负载均衡,在选择目标资源池中的目标存储服务器时,可以首先获取每个存储服务器的当前负载量,然后在各存储服务器中,识别当前负载量最小的存储服务器,将其作为目标存储服务器。
[0094] 例如,当云存储系统为视频云存储系统时,在该视频云存储系统中可以存储大量的视频数据。具体地,视频采集系统可以将其采集的实时视频数据写入视频云存储系统中。
[0095] 为了便于对视频云存储系统中的视频数据进行管理,同一视频采集系统采集的视频数据保存到视频云存储系统的固定的存储服务器中,该固定的存储服务器构成一个资源池,该资源池对应一个域标识信息。并配置读写操作时,访问该固定的存储服务器的视频处理设备的地址信息。
[0096] 当接入节点接收到视频写入请求且无法获取到可用管理节点时,可以首先识别视频写入请求中包含的域标识信息,然后根据该域标识信息,以及索引中保存的资源池与域标识信息的对应关系,识别与该域标识信息匹配的目标资源池,最后,可以从目标资源池中包含的至少一个存储服务器的信息中,确定其中一个存储服务器为目标存储服务器,并将视频数据写入该目标存储服务器。
[0097] 优选地,为了保证每个存储服务器的负载均衡,在选择用于存储视频数据的目标存储服务器时,可以首先获取每个存储服务器的当前负载量,然后识别当前负载量最小的存储服务器,将其作为目标存储服务器。
[0098] 在一种实现方式中,在选择目标存储服务器时,接入节点可以向目标资源池中的每个存储服务器发出获取其当前负载量的请求,并根据各存储服务器返回的响应消息获取每个存储服务器的当前负载量。然后,可以将当前负载量最小的存储服务器作为目标存储服务器。
[0099] 在另一种实现方式中,接入节点在构建索引的过程中,可以在该索引中保存每个存储服务器对应的负载量。在选择目标存储服务器时,接入节点可以查询索引中保存的目标资源池中的每个存储服务器的负载量,并选择负载量最小的存储服务器作为目标存储服务器。并且,可选地,接入节点将待写入数据写入目标存储服务器后,可以更新索引中保存的该目标存储服务器对应的负载量。
[0100] 本发明实施例提供的方法,通过预先保存包含资源池与域标识信息的对应关系的索引,在接收到数据写入请求并且无法获取到可用管理节点时,可以识别所述数据写入请求中包含的域标识信息,然后根据所述域标识信息,以及所述索引中保存的资源池与域标识信息的对应关系,识别与所述域标识信息匹配的目标资源池,最后从所述目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,以将数据写入该目标存储服务器,能够保证在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常写入数据,不会造成数据丢失。
[0101] 基于本发明的上述实施例,图4为本实施例提供的一种构建索引的方法,可以包括如下步骤:
[0102] 步骤401,向每个管理节点发送获取每个资源池与域标识信息的对应关系的请求,并接收所述每个管理节点发送的每个资源池与域标识信息的对应关系。
[0103] 在云存储系统中,管理节点在整个系统的正常运行中起到至关重要的作用。当接收到数据写入请求时,管理节点需要基于各存储服务器的属性信息,为数据写入请求分配存储服务器,以写入相应的数据。当无法获取到管理节点时,由于无法获得各存储服务器的属性信息,因此,无法为数据写入请求分配对应的存储服务器,数据写入可能会失败。
[0104] 因此,在本实施例中,为了保证在无法获取到可用管理节点时云存储系统仍能提供正常服务,可以预先构建包含每个资源池与域标识信息的对应关系的索引,以在无法获取到可用管理节点时仍能获得各存储服务器的属性信息,进一步地,基于各存储服务器的属性信息,为数据写入请求分配相应的存储服务器,确保云存储系统正常运行。
[0105] 具体地,接入节点可以向每个管理节点发送获取每个资源池与域标识信息的对应关系的请求,并接收每个管理节点发送的每个资源池与域标识信息的对应关系。
[0106] 步骤402,在索引中保存所述每个资源池与域标识信息的对应关系。
[0107] 获取到每个资源池与域标识信息的对应关系后,可以在索引中保存每个资源池与域标识信息的对应关系,以在接收到数据写入请求且无法获取到管理节点时,根据索引中保存的每个资源池与域标识信息的对应关系,确定与数据写入请求对应的目标资源池,并基于目标资源池,对数据写入请求进行处理。
[0108] 可选地,由于每个资源池与域标识信息的对应关系可能会变化,因此,为了保证索引中保存的各资源池与域标识信息的对应关系的正确性,可以按照设定的时间间隔(如2小时、12小时、24小时等),进行上述步骤401和步骤402,实现对所述索引中保存的每个资源池与域标识信息的对应关系的更新。
[0109] 本实施例提供的方法,预先构建包含每个资源池与域标识信息的对应关系的索引,在接收到数据写入请求并且无法获取到可用管理节点时,可以根据该索引确定数据写入请求对应的至少一个目标资源池,并基于目标资源池确定目标存储服务器,以对相应的数据进行写入,保证了在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常运行。
[0110] 图5为本实施例提供的基于云存储系统的数据读取方法,应用于查询平台,可以包括如下步骤:
[0111] 步骤501,接收数据读取请求。
[0112] 在本实施例中,查询平台进行数据读取时,可以首先接收数据读取请求,并对相应的数据进行读取。
[0113] 步骤502,当无法获取到可用管理节点时,查询预先保存的索引,其中,所述索引包含每个存储服务器及其IP地址的对应关系。
[0114] 正常情况下,查询平台接收到数据读取请求时,可以将数据读取请求发送给管理节点,以使得管理节点为该数据读取请求分配对应的存储服务器。然而,当无法获取到可用管理节点时,查询平台将不能通过管理节点获得为该数据读取请求分配的存储服务器。
[0115] 因此,在本实施例中,可以预先保存包含每个存储服务器及其IP地址的对应关系的索引。当接收到数据读取请求且无法获取到可用管理节点时,查询平台可以查询该索引,以获得各存储服务器的IP地址。
[0116] 步骤503,根据所述每个存储服务器的IP地址,向所述每个存储服务器发送获取数据的属性信息的请求,并接收对应的所述每个存储服务器返回的其自身保存的数据的属性信息。
[0117] 当查询平台获得每个存储服务器的IP地址后,可以根据每个存储服务器的IP地址,向每个存储服务器发送获取数据的属性信息的请求,并接收对应的每个存储服务器返回的其自身保存的数据的属性信息。
[0118] 上述数据的属性信息例如可以包括每个存储服务器中保存的数据的关键词,如当存储服务器中保存的数据为道路实时监控视频时,上述属性信息可以为路段信息、时间信息等。
[0119] 查询平台可以接收对应的每个存储服务器发送的自身保存的数据的属性信息,以基于该属性信息,确定待读取数据所在的存储服务器,并从相应的存储服务器中读取相应的数据。
[0120] 可以理解,在云存储系统的多个存储服务器中,针对每个存储服务器,其都可能会出现故障,因此该存储服务器可能出现离线状态。这种情况下,当查询平台向该存储服务器发送获取其保存的数据的属性信息时,该存储服务器可能不会返回响应消息。因此,当存在处于离线状态的存储服务器时,查询平台向每个存储服务器发送获取其保存的数据的属性信息可能会造成资源浪费。
[0121] 因此,可选地,在本发明实施例中,可以在查询平台的索引中保存每个存储服务器是否在线的状态信息。这种情况下,查询平台可以首先根据每个存储服务器的状态信息,识别处于在线状态的存储服务器,然后根据处于在线状态的存储服务器的IP地址,向对应的每个处于在线状态的存储服务器发送获取数据的属性信息的请求。
[0122] 通过在索引中保存每个存储服务器的状态信息,并根据各存储服务器的状态信息,只向处于在线状态的存储服务器发送获取数据的属性信息的请求,能够节省网络资源。
[0123] 步骤504,根据接收的所述每个存储服务器发送的其自身保存的数据的属性信息,以及所述数据读取请求中包含的待读取数据的属性信息,确定至少一个目标存储服务器,并从每个目标存储服务器中读取相应的数据。
[0124] 查询平台接收到每个存储服务器发送的其自身保存的数据的属性信息后,可以根据每个存储服务器自身保存的数据的属性信息,以及数据读取请求中包含的待读取数据的属性信息,确定至少一个目标存储服务器。
[0125] 查询平台接收到的数据读取请求中通常会包含待读取数据的属性信息,因此,查询平台接收到每个存储服务器自身保存的数据的属性信息后,可以识别与数据读取请求中包含的待读取数据的属性信息对应的存储服务器,并将识别到的存储服务器作为目标存储服务器,以从目标存储服务器中读取相应的数据。
[0126] 例如,当云存储系统为视频云存储系统时,在该视频云存储系统中可以存储大量的视频数据,用户可以从该视频云存储系统中读取其想要的视频数据。具体地,当视频云存储系统中存储有交通监控视频数据时,用户可以读取对应时间段或对应路段的相应的视频数据。
[0127] 当查询平台接收到视频处理设备通过平台发送的数据读取请求时,该数据读取请求中携带待读取的视频数据的属性信息,该属性例如可以为时间段信息和/或路段信息等。查询平台中设置有与平台交互的接口,可以通过该接口接收平台发送的数据读取请求。
[0128] 查询平台接收到数据读取请求且无法获取到可用管理节点时,查询预先保存的索引,其中,索引包含每个存储服务器及其IP地址的对应关系,例如读取9:00-10:00的视频数据。然后,查询平台可以根据预先构建的索引,确定该IP地址对应的每个存储服务器,并向每个存储服务器发送获取视频数据的属性信息的请求,并接收对应的每个存储服务器返回的其自身保存的该对应时间的视频片段。最后,查询平台可以根据接收的每个存储服务器返回的其自身保存的视频片段,以及视频数据读取请求中包含的待读取视频数据的属性信息,确定至少一个目标存储服务器。并将该目标存储服务器的信息发送给查询平台,查询平台访问对应的目标存储服务器,从目标存储服务器中读取对应时间段的视频数据。
[0129] 本实施例提供的方法,通过预先保存包含每个存储服务器及其IP地址的对应关系的索引,在接收到数据读取请求并且无法获取到可用管理节点时,可以查询预先保存的索引,获得每个存储服务器的IP地址,然后根据每个存储服务器的IP地址,向每个存储服务器发送获取自身保存的数据的属性信息的请求,并接收所述对应的每个存储服务器发送的自身保存的数据的属性信息,最后根据接收的每个存储服务器发送的自身保存的数据的属性信息,以及数据读取请求中包含的待读取数据的属性信息,确定至少一个目标存储服务器,以从目标存储服务器中读取相应的数据,能够保证在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常提供数据读取服务。
[0130] 基于本发明的上述实施例,图6为本实施例提供的另一种构建索引的方法,可以包括如下步骤:
[0131] 步骤601,向每个管理节点发送获取每个存储服务器和IP地址的对应关系的请求,并接收所述每个管理节点发送的每个存储服务器和IP地址的对应关系。
[0132] 在云存储系统中,管理节点在整个系统的正常运行中起到至关重要的作用。当接收到数据读取请求时,管理节点需要基于各存储服务器的属性信息,为数据读取请求分配存储服务器,以进行相应的数据读取。当无法获取到管理节点时,由于无法获得各存储服务器的属性信息,因此,无法为数据读取请求分配对应的存储服务器,数据读取可能会失败。
[0133] 因此,在本实施例中,为了保证在无法获取到可用管理节点时云存储系统仍能提供正常服务,查询平台可以预先构建包含每个存储服务器和IP地址的对应关系的索引,以在无法获取到可用管理节点时仍能获得各存储服务器的属性信息,进一步地,基于各存储服务器的属性信息,为数据读取请求分配相应的存储服务器,确保云存储系统正常运行。
[0134] 具体地,查询平台可以向每个管理节点发送获取每个存储服务器和IP地址的对应关系的请求,并接收每个管理节点发送的每个存储服务器和IP地址的对应关系。
[0135] 步骤602,在索引中保存所述每个存储服务器和IP地址的对应关系。
[0136] 获取到每个存储服务器和IP地址的对应关系后,查询平台可以在索引中保存每个存储服务器和IP地址的对应关系,以在接收到数据读取请求且无法获取到管理节点时,根据索引中保存的每个存储服务器和IP地址的对应关系,向每个存储服务器发送获取数据的属性信息的请求,并根据每个存储服务器返回的响应消息,确定与数据读取请求对应的目标存储服务器,并基于目标存储服务器,读取相应的数据。
[0137] 可选地,由于每个存储服务器和IP地址的对应关系可能会变化,因此,为了保证索引中保存的每个存储服务器和IP地址的对应关系的正确性,查询平台可以按照设定的时间间隔(如2小时、12小时、24小时等),进行上述步骤601和步骤602,实现对所述索引中保存的每个存储服务器和IP地址的对应关系的更新。
[0138] 本实施例提供的方法,预先构建包含每个存储服务器和IP地址的对应关系的索引,在接收到数据读取请求并且无法获取到可用管理节点时,根据该索引确定数据读取请求对应的至少一个目标存储服务器,并基于目标存储服务器,读取相应的数据,保证了在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常运行。
[0139] 图7为本实施例提供的基于云存储系统的数据写入装置,可以包括:
[0140] 接收模块710,用于接收数据写入请求;
[0141] 处理模块720,用于当无法获取到可用管理节点时,识别所述数据写入请求中包含的域标识信息,并根据所述域标识信息,查询预先保存的索引,其中,所述索引包含资源池与域标识信息的对应关系;
[0142] 识别模块730,用于识别与所述域标识信息匹配的目标资源池,其中,每个资源池中包含至少一个存储服务器;
[0143] 写入模块740,用于从所述目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,并将所述数据写入请求中包含的数据写入所述目标存储服务器。
[0144] 本实施例提供的装置,通过预先保存包含资源池与域标识信息的对应关系的索引,在接收到数据写入请求并且无法获取到可用管理节点时,可以识别所述数据写入请求中包含的域标识信息,然后根据所述域标识信息,以及所述索引中保存的资源池与域标识信息的对应关系,识别与所述域标识信息匹配的目标资源池,最后从所述目标资源池中包含的至少一个存储服务器中,确定其中一个存储服务器为目标存储服务器,以将数据写入该目标存储服务器,能够保证在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常写入数据,不会造成数据丢失。
[0145] 进一步地,所述写入模块740,具体用于:
[0146] 获取每个存储服务器的当前负载量;
[0147] 识别当前负载量最小的存储服务器,将其作为目标存储服务器。
[0148] 进一步地,所述无法获取到可用管理节点包括:每个管理节点均出现故障或管理节点集群网络异常。
[0149] 进一步地,所述装置还包括:
[0150] 执行模块(图中未示出),用于向每个管理节点发送获取每个资源池与域标识信息的对应关系的请求,并接收所述每个管理节点发送的每个资源池与域标识信息的对应关系;
[0151] 保存模块(图中未示出),用于在索引中保存所述每个资源池与域标识信息的对应关系。
[0152] 进一步地,所述装置还包括:
[0153] 更新模块(图中未示出),用于按照设定的时间间隔,更新所述索引中保存的每个资源池与域标识信息的对应关系。
[0154] 通过预先构建包含每个资源池与域标识信息的对应关系的索引,在接收到数据写入请求并且无法获取到可用管理节点时,可以根据该索引确定数据写入请求对应的至少一个目标资源池,并基于目标资源池确定目标存储服务器,以对相应的数据进行写入,保证了在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常运行。
[0155] 图8为本实施例提供的基于云存储系统的数据读取装置,应用于查询平台,可以包括:
[0156] 接收模块810,用于接收数据读取请求;
[0157] 查询模块820,用于当无法获取到可用管理节点时,查询预先保存的索引,其中,所述索引包含每个存储服务器及其IP地址的对应关系;
[0158] 处理模块830,用于根据所述每个存储服务器的IP地址,向所述每个存储服务器发送获取数据的属性信息的请求,并接收对应的所述每个存储服务器返回的其自身保存的数据的属性信息;
[0159] 读取模块840,用于根据接收的所述每个存储服务器发送的其自身保存的数据的属性信息,以及所述数据读取请求中包含的待读取数据的属性信息,确定至少一个目标存储服务器,并从每个目标存储服务器中读取相应的数据。
[0160] 本实施例提供的装置,通过预先保存包含每个存储服务器及其IP地址的对应关系的索引,在接收到数据读取请求并且无法获取到可用管理节点时,可以查询预先保存的索引,获得每个存储服务器的IP地址,然后根据每个存储服务器的IP地址,向每个存储服务器发送获取自身保存的数据的属性信息的请求,并接收所述对应的每个存储服务器发送的自身保存的数据的属性信息,最后根据接收的每个存储服务器发送的自身保存的数据的属性信息,以及数据读取请求中包含的待读取数据的属性信息,确定至少一个目标存储服务器,以从目标存储服务器中读取相应的数据,能够保证在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常提供数据读取服务。
[0161] 进一步地,所述索引中还包括每个存储服务器是否在线的状态信息,所述处理模块830,包括:
[0162] 识别子模块(图中未示出),用于根据每个存储服务器的状态信息,识别处于在线状态的存储服务器;
[0163] 处理子模块(图中未示出),用于根据处于在线状态的存储服务器的IP地址,向对应的每个处于在线状态的存储服务器发送获取数据的属性信息的请求。
[0164] 进一步地,所述无法获取到可用管理节点包括:每个管理节点均出现故障或管理节点集群网络异常。
[0165] 进一步地,所述装置还包括:
[0166] 执行模块(图中未示出),用于向每个管理节点发送获取每个存储服务器和IP地址的对应关系的请求,并接收所述每个管理节点发送的每个存储服务器和IP地址的对应关系;
[0167] 保存模块(图中未示出),用于在索引中保存所述每个存储服务器和IP地址的对应关系。
[0168] 进一步地,所述装置还包括:
[0169] 更新模块(图中未示出),用于按照设定的时间间隔,更新所述索引中保存的每个存储服务器和IP地址的对应关系。
[0170] 通过预先构建包含每个存储服务器和IP地址的对应关系的索引,在接收到数据读取请求并且无法获取到可用管理节点时,根据该索引确定数据读取请求对应的至少一个目标存储服务器,并基于目标存储服务器,读取相应的数据,保证了在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常运行。
[0171] 另一方面,本发明实施例还提供了一种云存储系统,所述云存储系统可以包括:如图7所示实施例提供的设置在接入节点中的装置,以及至少一个存储服务器。
[0172] 本实施例提供的云存储系统,能够保证在全部管理节点出现故障或管理节点集群网络异常时,云存储系统仍能正常运行,且不需要增加额外的成本。
[0173] 对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0174] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0175] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0176] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。