一种检测键的方法和服务器的制造方法
【专利摘要】本申请提供了一种检测键的方法和服务器,用于检测IP硬盘中被损坏的键,提高检测效率。所述方法应用于包括服务器和多个IP硬盘的存储系统,所述方法包括:所述服务器向所述多个IP硬盘中的第一IP硬盘发送检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括多个键;所述服务器接收所述第一IP硬盘发送的与所述标识对应的多个第一哈希值;所述服务器根据所述多个IP硬盘中的其他IP硬盘发送的与所述标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值;当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,所述服务器确定所述第一IP硬盘中存储的与所述目标哈希值对应的键被损坏。
【专利说明】一种检测键的方法和服务器
【技术领域】
[0001]本发明涉及电子【技术领域】,尤其涉及一种检测键的方法和服务器。
【背景技术】
[0002]网络之间互连的协议(英文:Internet Protocol ;简称:IP)硬盘为通过IP协议提供物理通信的硬盘。它摈弃了传统的串行连接(英文:Serial Attached SCSI ;简称:SAS)/ 串行高级技术附件(英文:Serial Advanced Technology Attachment ;简称:SATA)接口,使得主机和硬盘之间的连接更加简单,几乎没有距离的限制。
[0003]IP硬盘是以Key-Value,即键值对的结构进行数据存储的。其中Key为键,通常是一个字符串,而Value为键对应的值,也称为数据或数据内容,Key-Value数据简称KV数据。通常Value存储地址的偏移量以及键Key —起存放在索引区中,而Key对应的值Value则存放在数据区。在需要数据时,分布式系统的服务器使用Key进行访问,遍历索引区,根据Key索引到偏移量,从而访问到Key对应的Value。通常,为了提高数据可靠性,分布式系统中的一个Key会存储在多个IP硬盘中,即存储多个副本。换言之,一个分区的Key保存在多个IP硬盘上,而一个IP硬盘上可能保存有多个分区的Key。如果某个Key由于IP硬盘的坏道而损坏,那么分布式系统可能无法访问到这个IP硬盘中存储的对应Value。
[0004]现有的做法是,分布式系统中的服务器获取一个分区对应的多个IP硬盘上存储的这个分区全部的Key的副本,其中,分区由分布式系统中的逻辑单元从逻辑上划分。但是一个Key的副本数据大小通常为兆级,有时甚至达到十兆级,所以传输多个Key副本会占用很多网络资源,且传输速度很慢。收到每个IP硬盘传输的副本后,服务器进行对比。如果同一个Key对应多个副本中有一个副本与其它副本不一样,则认为Key在这个不同副本的IP硬盘中被损坏。通过这样的方式来检测损坏的Key,传输速度慢,且检测效率低。
【发明内容】
[0005]本发明提供了一种检测键的方法和服务器,用于检测IP硬盘中被损坏的键,提高检测效率。
[0006]本申请第一方面提供了一种检测键的方法,所述方法应用于存储系统中,所述存储系统包括服务器和多个IP硬盘,包括:
[0007]所述服务器向所述多个IP硬盘中的第一 IP硬盘发送检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括多个键;
[0008]所述服务器接收所述第一 IP硬盘发送的与所述标识对应的多个第一哈希值;
[0009]所述服务器根据所述多个IP硬盘中的其他IP硬盘发送的与所述标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值;
[0010]当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,所述服务器确定所述第一 IP硬盘中存储的与所述目标哈希值对应的键被损坏。
[0011]结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
[0012]所述服务器向所述其他IP硬盘发送所述目标哈希值;
[0013]接收所述其他IP硬盘发送的所述目标哈希值对应的所述键;
[0014]将所述键发送至所述第一 IP硬盘,以使所述第一 IP硬盘修复所述键。
[0015]结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述多个IP硬盘是所述待检测分区对应的IP硬盘。
[0016]本申请第二方面提供了一种生成哈希值的方法,应用于IP硬盘,所述IP硬盘包括多个键,所述方法包括:
[0017]对多个键中的每个键进行哈希运算,获得所述每个键对应的哈希值;
[0018]接收服务器发送的检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括所述多个键;
[0019]向所述服务器发送与所述标识对应的多个哈希值。
[0020]结合第二方面,在第二方面的第一种可能的实现方式中,所述方法还包括:
[0021]保存所述每个键与哈希值之间的对应关系;
[0022]接收所述服务器发送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一个;
[0023]根据所述对应关系和所述第一哈希值,确定与所述第一哈希值所对应的第一键;
[0024]获取所述第一键,并向所述服务器发送所述第一键。
[0025]结合第二方面的第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述方法还包括:接收所述服务器发送的第二键,并存储所述第二键,所述多个键中不包含所述第二键。
[0026]本申请第三方面提供了一种服务器,包括:
[0027]通信接口,用于向多个IP硬盘中的第一 IP硬盘发送检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括多个键;并所述第一 IP硬盘发送的与所述标识对应的多个第一哈希值;
[0028]处理器,用于根据所述多个IP硬盘中的其他IP硬盘发送的与所述标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值;当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,确定所述第一 IP硬盘中存储的与所述目标哈希值对应的键被损坏。
[0029]结合第三方面,在第三方面的第一种可能的实现方式中,所述通信接口还用于:
[0030]向所述其他IP硬盘发送所述目标哈希值;
[0031]接收所述其他IP硬盘发送的所述目标哈希值对应的所述键;
[0032]将所述键发送至所述第一 IP硬盘,以使所述第一 IP硬盘修复所述键。
[0033]结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述多个IP硬盘是所述待检测分区对应的IP硬盘。
[0034]本申请第四方面提供了一种IP硬盘,包括:
[0035]存储单元,用于存储多个键;
[0036]处理器,用于对多个键中的每个键进行哈希运算,获得所述每个键对应的哈希值;
[0037]接口,用于接收服务器发送的检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括所述多个键;并向所述服务器发送与所述标识对应的多个哈希值。
[0038]结合第四方面,在第四方面的第一种可能的实现方式中,所述存储单元还用于保存所述每个键与哈希值之间的对应关系;
[0039]所述接口还用于接收所述服务器发送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一个;
[0040]所述处理器还用于根据所述对应关系和所述第一哈希值,确定与所述第一哈希值所对应的第一键;以及获取所述第一键;
[0041]所述接口还用于向所述服务器发送所述第一键。
[0042]结合第四方面的第一种可能的实现方式,在第四方面第二种可能的实现方式中,所述接口还用于接收所述服务器发送的第二键;
[0043]所述存储单元还用于存储所述第二键,所述多个键中不包含所述第二键。
[0044]本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0045]所述服务器向所述多个IP硬盘中的第一 IP硬盘发送检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括多个键;所述服务器接收所述第一 IP硬盘发送的与所述标识对应的多个第一哈希值;所述服务器根据所述多个IP硬盘中的其他IP硬盘发送的与所述标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值;当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,所述服务器确定所述第一 IP硬盘中存储的与所述目标哈希值对应的键被损坏。所以,在本发明实施例中,当目标哈希值未包含在第一哈希值中时,就可以确定第一 IP硬盘中存储的第一哈希值对应的键已被损坏。并且,哈希值与键本身相比,数据量要小,因此传输效率比传输键本身更快。所以,提高了 IP硬盘中损坏键的检测效率。
【专利附图】
【附图说明】
[0046]图1为本发明实施例中检测键的方法流程图;
[0047]图2为本发明实施例中生成哈希值的方法流程图;
[0048]图3为本发明实施例中服务器的结构示意图;
[0049]图4为本发明实施例中IP硬盘的结构示意图。
【具体实施方式】
[0050]本发明提供了一种检测键的方法和服务器,用于检测IP硬盘中被损坏的键,提高检测效率。
[0051 ] 本发明实施例中的技术方案为解决上述的技术问题,本发明中的检测键的方法包括如下内容:
[0052]所述服务器向所述多个IP硬盘中的第一 IP硬盘发送检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括多个键;所述服务器接收所述第一 IP硬盘发送的与所述标识对应的多个第一哈希值;所述服务器根据所述多个IP硬盘中的其他IP硬盘发送的与所述标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值;当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,所述服务器确定所述第一 IP硬盘中存储的与所述目标哈希值对应的键被损坏。所以,在本发明实施例中,当目标哈希值未包含在第一哈希值中时,就可以确定第一 IP硬盘中存储的第一哈希值对应的键已被损坏。并且,哈希值与键本身相比,数据量要小,因此传输效率比传输键本身更快。所以,提高了 IP硬盘中损坏键的检测效率。
[0053]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054]本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另夕卜,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0055]下面结合附图对本发明的实施方式进行详细说明。
[0056]本申请第一方面提供一种检测键的方法,请参考图1,包括:
[0057]SlOl:所述服务器向所述多个IP硬盘中的第一 IP硬盘发送检测指令。
[0058]S102:所述服务器接收所述第一 IP硬盘发送的与所述标识对应的多个第一哈希值。
[0059]S103:所述服务器根据所述多个IP硬盘中的其他IP硬盘发送的与所述标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值。
[0060]S104:当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,所述服务器确定所述第一 IP硬盘中存储的与所述目标哈希值对应的键被损坏。
[0061]为了清楚说明本发明实施例的技术方案,首先对存储系统进行一介绍。存储系统包括服务器和多个IP硬盘,多个IP硬盘与服务器连接。IP硬盘提供存储功能,存储有键Key,以及键对应的数据Value。服务器对多个IP硬盘进行管理,例如将用户输入存储系统的键和数据写入其中一个或多个IP硬盘中,或根据用户需求对IP硬盘中的键和数据进行删除、修改和更新等。用户以及上层应用对IP硬盘的控制管理,通过服务器实现。
[0062]在本申请所属的【技术领域】中,Key,称为键,也称为主键;Value为键对应的值,同时也可称为数据、数据内容。在下述描述中,键或Key指代相同,值,数据和数据内容均指Value0
[0063]具体来讲,在存储系统中,一个分区包括多个键,每一个键会保存在多个IP硬盘中,如3个,即在第I个IP硬盘中存储一份完整的键,在2个IP硬盘中存储一份完整的键,在第3个IP硬盘中也存储一份完整的键。并且同一个分区中的每一个键所存储的多个IP硬盘是相同的多个IP硬盘。而一个IP硬盘上可以存储一个或多个分区的键。
[0064]存储系统中维护有一记录表。记录表中记录有一个分区所对应的多个IP硬盘。举例来说,记录表中可以通过记录IP硬盘的IP地址、索引、端口编号等来记录所对应的多个IP硬盘。本申请所属领域的技术人员可以根据实际需要进行选择,本申请不做具体限制。
[0065]因此,在SlOl之前,要检测待检测分区在第一 IP硬盘存储的键是否被损坏,查询记录表就可以确定与待检测分区对应的多个IP硬盘具体为哪几个。而第一 IP硬盘为多个IP硬盘中的一个。
[0066]在SlOl中向第一 IP硬盘发送检测指令。由于每个IP硬盘上可能存储有多个分区的键和数据,所以,在本发明实施例中,检测指令中包括待检测分区的标识。根据标识,第一 IP硬盘可以确定出待检测分区所包括的多个键。
[0067]接下来,第一 IP硬盘根据检测指令中的标识,从存储的哈希值中确定出待检测分区对应的多个第一哈希值。然后将多个第一哈希值返回服务器。进而在S102中,服务器接收到第一 IP硬盘发送的多个第一哈希值。
[0068]接下来,执行S103,S卩服务器根据多个IP硬盘中的其他IP硬盘发送的与标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值。
[0069]然后,执行S104:当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,所述服务器确定所述第一 IP硬盘中存储的与所述目标哈希值对应的键被损坏。
[0070]具体来讲,无论是多个第一哈希值或多个第二哈希值,都是IP硬盘通过对存储的键进行哈希运算后获得的。并且,由于IP硬盘上存储的每一个键是不同的,因此,进行哈希运算后获得的哈希值也就不同。当IP硬盘中的键未损坏时,就会获得对应的哈希值;而当IP硬盘存在坏道,而键恰好在这个坏道中时,那么这些处于坏道中的键将无法读取,进而也就无法对损坏的键进行哈希运算而获得哈希值了。
[0071]而多个IP硬盘中存储的待检测分区的多个键是相同的,所以,当多个第二哈希值中的目标哈希值没有包含在多个第一哈希值中时,表明目标哈希值对应的键在其他IP硬盘中正常,而第一 IP硬盘中被损坏。
[0072]举例来说,假设待检测分区为分区I,对应3个IP硬盘,分别为IP硬盘A、IP硬盘B 和 IP 硬盘 C。分区 I 中包括 10 个键,分别为 Keyl,Key2,Key3,Key4,Key5,Key6,Key7,Key8,Key9,KeylO。在SlOl中,服务器向IP硬盘A、IP硬盘B和IP硬盘C中的任意一个发送检测指令,假设是IP硬盘A。检测指令包括分区I的标识。IP硬盘A接收到检测指令后,根据分区I的标识,将分区I中多个键对应的多个第一哈希值返回服务器。为了方便说明,假设IP硬盘A返回的多个第一哈希值为:
[0073]hash—treeA—Keyl (10),hash—treeA—Key3 (53),hash—treeA—Key4 (24),hash_treeA—Key5 ⑴,hash—treeA—Key6 (36),hash—treeA—Key7 (12),hash—treeA—Key8 (2),hash—treeA—Key9(52),hash—treeA—KeylO(3) 0
[0074]同时,假设IP硬盘B发送的多个第二哈希值分别为:
[0075]hash—treeB—Keyl (10),hash—treeB—Key2 (6),hash—treeB—Key3 (53),hash—treeB—Key4(24),hash—treeB—Key5(I),hash—treeB—Key6(36),hash—treeB—Key7(12),hash—treeB—Key8 (2),hash—treeB—Key9 (52),hash—treeB—KeylO (3) 0
[0076]IP硬盘C发送的多个第二哈希值分别为:
[0077]hash—treeC—Keyl (10),hash—treeC—Key2 (6),hash—treeC—Key3 (53),hash—treeC—Key4(24),hash—treeC—Key5 (I),hash—treeC—Key7(12),hash—treeC—Key8(2),hash—treeC—Key9 (52),hash—treeC—KeylO (3) 0
[0078]其中,hash—treeA—Keyl (10)表示IP硬盘A返回的对应Keyl的第一哈希值,Keyl的哈希值具体为10。其他哈希值表示意义类似,这里就不再一一赘述了。
[0079]接下来,判断每个第二哈希值是否均存在相等的第一哈希值。首先,IP硬盘B和IP硬盘C发送的多个第二哈希值中,将目标哈希值确定为hash—treeB—Keyl (10)和hash—treeC—Keyl (10),在多个第一哈希值中,hash—treeA—Keyl (10)与 hash—treeB—Keyl (10)和hash_treeC_Keyl (10)相等,所以,Keyl在第一 IP硬盘中未被损坏。而多个第一哈希值中,目标哈希值为hash_treeB_Key2 (6)和hash_treeC_Key2 (6)时,却不存在相等的第一哈希值,所以确定第一 IP硬盘中存储的Key2被损坏。同时,可以看出,Key3、Key4、Key5、Key6、Key7、Key8、Key9和KeylO在对应的多个第二哈希值相等的第一哈希值都包含在多个第一哈希值中,所以上述9个键也未被损坏。
[0080]同样的方法,当IP硬盘C作为第一 IP硬盘,即判断IP硬盘C中是否有键损坏时,也可以确定出Key6被损坏。具体过程这里就不再一一赘述了。
[0081]由上述描述可以看出,在本发明实施例中,通过多个第二哈希值与多个第一哈希值是否相等就可以判断第一 IP硬盘中的键是否被损坏,不再需要通过网络传输所有键的内容,仅传输数据大小为Kbyte级的哈希值即可。因此与现有技术相比,提高了检测效率。
[0082]进一步,在S104之后,为了修复第一 IP硬盘中损坏的键,还包括:
[0083]所述服务器向所述其他IP硬盘发送所述目标哈希值;
[0084]接收所述其他IP硬盘发送的所述目标哈希值对应的所述键;
[0085]将所述键发送至所述第一 IP硬盘,以使所述第一 IP硬盘修复所述键。
[0086]具体来讲,当检测出目标哈希值对应的键被损坏后,为了方便用户访问第一 IP硬盘中损坏键对应的数据,在本发明实施例中,将会修复损坏的键。首先,为了修复被损坏的键,服务器将目标哈希值发送至其他IP硬盘。在具体实现过程中,服务器可以仅向其他IP硬盘中的一个IP硬盘发送目标哈希值,也可以向所有其他IP硬盘中,目标哈希值对应的键未损坏的IP硬盘发送目标哈希值,对此本申请不做限制。
[0087]其他IP硬盘中的一个或多个接收到目标哈希值后,根据存储在IP硬盘中的对应关系,确定目标哈希值对应的键,获取键的副本,然后发送到服务器。服务器再将键发送到第一 IP硬盘中,以使IP硬盘修复损坏的键。
[0088]沿用上述例子来说明。在确定IP硬盘A中的Key2被损坏后,服务器从IP硬盘B中获取Key2的副本,然后发送到IP硬盘A中。IP硬盘A存储Key2,从而修复Key2。
[0089]本申请第二方面提供了一种生成哈希值的方法,如图2所示,包括:
[0090]S201:对多个键中的每个键进行哈希运算,获得所述每个键对应的哈希值。
[0091]S202:接收服务器发送的检测指令。
[0092]S203:向所述服务器发送与所述标识对应的多个哈希值。
[0093]首先,在本发明实施例中,IP硬盘上存储有待检测分区包括的多个键。另外,还存储有其他分区对应的键。在S201中,IP硬盘对多个键中的每个键进行哈希运算,获得每个键所对应的哈希值。其中,对每个键进行哈希运算的过程,与现有技术中哈希运算的原理和算法类似,因此这里就不再赘述了。
[0094]由于多个键各不相同,所以,获得的哈希值也就各不相同了。因此,哈希值和表征IP硬盘中存储的键是一一对应的。当IP硬盘中的键未损坏时,就会获得对应的哈希值;当IP硬盘存在坏道,而有键恰好在这个坏道中时,那么这些处于坏道中的键将无法读取,进而也就无法对损坏的键进行哈希运算而获得哈希值了。
[0095]当然,除了对待检测分区包括的多个键进行哈希运算,IP硬盘还可以对存储的其他键进行哈希运算,进而获得其他键对应的哈希值,对此本申请不做具体限制。
[0096]在S202中,IP硬盘接收服务器发送而来的检测指令。检测指令中包括了待检测分区的标识,根据检测指令中的标识,IP硬盘能够确定待检测指令所针对的分区,以及存储在IP硬盘中的待检测分区的多个键。
[0097]接下来,IP硬盘向服务器发送与标识对应的多个哈希值。
[0098]可选的,在本发明实施例中,还包括:
[0099]保存所述每个键与哈希值之间的对应关系;
[0100]接收所述服务器发送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一个;
[0101]根据所述对应关系和所述第一哈希值,确定与所述第一哈希值所对应的第一键;
[0102]获取所述第一键,并向所述服务器发送所述第一键。
[0103]具体来讲,为了方便IP硬盘确定每个键在多个哈希值中对应的哈希值,IP硬盘在获得每个键对应的哈希值后,会进一步将每个键与哈希值的对应关系保存。
[0104]当服务器发现其他一个或多个IP硬盘中的第一键损坏,而本发明实施例中的IP硬盘的第一键未损坏时,IP硬盘可能接收到服务器发送的第一哈希值。IP硬盘根据对应关系确定出第一哈希值所对应的第一键。具体来讲,第一哈希值为IP硬盘中保存的多个哈希值中的一个。IP硬盘接收到第一哈希值后,在保存的对应关系进行查找。在对应关系中查找到第一哈希值的对应关系,从而确定第一哈希值所对应的第一键。
[0105]接着,IP硬盘获得第一键,并向服务器发送第一键,以供一个或多个其他IP硬盘修复第一键。
[0106]可选的,在本发明实施例中,还包括:
[0107]接收所述服务器发送的第二键,并存储所述第二键,所述多个键中不包含所述第二键。
[0108]另外,当服务器发现本发明实施例中的IP硬盘中的第二键损坏时,也可以从第二键未被损坏的其他IP硬盘中获取第二键并发送至本发明实施例中的IP硬盘。具体来讲,第二键并不包括在多个键中,第二键在IP硬盘中被损坏。由于IP硬盘在进行哈希运算时,无法对第二键进行哈希运算,因此,第二键对应的第二哈希值也就不包括在保存的哈希值中。
[0109]IP硬盘接收到服务器发送的第二键后,将第二键存储,从而修复损坏的第二键。进一步,为了方便后续操作,IP硬盘仍然可以对第二键进行哈希运算,获得第二键对应的哈希值。
[0110]本申请第三方面提供了一种服务器,如图3所示,包括:
[0111]通信接口 101,用于向多个IP硬盘中的第一 IP硬盘发送检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括多个键;并所述第一 IP硬盘发送的与所述标识对应的多个第一哈希值;
[0112]处理器102,用于根据所述多个IP硬盘中的其他IP硬盘发送的与所述标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值;当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,确定所述第一 IP硬盘中存储的与所述目标哈希值对应的键被损坏。
[0113]可选的,通信接口 101还用于:
[0114]向所述其他IP硬盘发送所述目标哈希值;
[0115]接收所述其他IP硬盘发送的所述目标哈希值对应的所述键;
[0116]将所述键发送至所述第一 IP硬盘,以使所述第一 IP硬盘修复所述键。
[0117]在本发明实施例中,多个IP硬盘是待检测分区对应的IP硬盘。
[0118]其中,在图3中,总线架构(用总线100来代表),总线100可以包括任意数量的互联的总线和桥,总线100将包括由处理器102代表的一个或多个处理器和存储器103代表的存储器的各种电路链接在一起。总线100还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口 104在总线100和通信接口 101之间提供接口。通信接口 101可以包括接收接口和发送接口,也可以是收发接口,提供用于在传输介质上与各种其他装置通信的单元。
[0119]处理器102负责管理总线100和通常的处理,而存储器103可以被用于存储处理器102在执行操作时所使用的数据。
[0120]前述实施例中描述的检测键执行过程的各种变化方式和具体实例同样适用于本实施例的服务器,通过前述对检测键执行过程的详细描述,本领域技术人员可以清楚的知道本实施例中服务器的实施方法,所以为了说明书的简洁,在此不再详述。
[0121]本申请第四方面提供了一种IP硬盘,如图4所示,包括:
[0122]存储单元201,用于存储多个键;
[0123]处理器202,用于对多个键中的每个键进行哈希运算,获得所述每个键对应的哈希值;
[0124]接口 203,用于接收服务器发送的检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括所述多个键;并向所述服务器发送与所述标识对应的多个哈希值。
[0125]可选的,存储单元201还用于保存所述每个键与哈希值之间的对应关系;
[0126]接口 203还用于接收所述服务器发送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一个;
[0127]处理器202还用于根据所述对应关系和所述第一哈希值,确定与所述第一哈希值所对应的第一键;以及获取所述第一键;
[0128]接口 203还用于向所述服务器发送所述第一键。
[0129]可选的,接口 203还用于接收所述服务器发送的第二键;
[0130]存储单元201还用于存储所述第二键,所述多个键中不包含所述第二键。
[0131]在具体实现过程中,存储单元201包括IP硬盘中的内存和磁盘。本发明实施例中的多个键,存储在内存或磁盘均可。本申请所属技术人员可以根据实际需要来进行设置,本申请不作具体的限制。
[0132]其中,在图4中,总线架构(用总线200来代表),总线200可以包括任意数量的互联的总线和桥,总线200将包括由处理器202代表的一个或多个处理器、接口 203代表的一个或多个接口、存储单元201链接在一起。总线200还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。
[0133]在具体实现过程中,接口 203具体为以太网接口,通过以太网协议实现IP硬盘与服务器、其他外部设备、网络或应用交互数据。
[0134]处理器202负责管理总线200和通常的处理,而存储单元201还被用于存储处理器202在执行操作时所使用的数据。
[0135]前述实施例中描述的生成哈希值过程的各种变化方式和具体实例同样适用于本实施例的IP硬盘,通过前述对生成哈希值执行过程的详细描述,本领域技术人员可以清楚的知道本实施例中IP硬盘的实施方法,所以为了说明书的简洁,在此不再详述。
[0136]本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0137]所述服务器向所述多个IP硬盘中的第一 IP硬盘发送检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括多个键;所述服务器接收所述第一 IP硬盘发送的与所述标识对应的多个第一哈希值;所述服务器根据所述多个IP硬盘中的其他IP硬盘发送的与所述标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值;当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,所述服务器确定所述第一 IP硬盘中存储的与所述目标哈希值对应的键被损坏。所以,在本发明实施例中,当目标哈希值未包含在第一哈希值中时,就可以确定第一 IP硬盘中存储的第一哈希值对应的键已被损坏。并且,哈希值与键本身相比,数据量要小,因此传输效率比传输键本身更快。所以,提高了 IP硬盘中损坏键的检测效率。
[0138]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0139]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0140]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0141]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0142]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种检测键的方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括服务器和多个IP硬盘,包括: 所述服务器向所述多个IP硬盘中的第一 IP硬盘发送检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括多个键; 所述服务器接收所述第一 IP硬盘发送的与所述标识对应的多个第一哈希值; 所述服务器根据所述多个IP硬盘中的其他IP硬盘发送的与所述标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值; 当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,所述服务器确定所述第一 IP硬盘中存储的与所述目标哈希值对应的键被损坏。
2.如权利要求1所述的方法,其特征在于,所述方法还包括: 所述服务器向所述其他IP硬盘发送所述目标哈希值; 接收所述其他IP硬盘发送的所述目标哈希值对应的所述键; 将所述键发送至所述第一 IP硬盘,以使所述第一 IP硬盘修复所述键。
3.如权利要求1或2所述的方法,其特征在于,所述多个IP硬盘是所述待检测分区对应的IP硬盘。
4.一种生成哈希值的方法,其特征在于,应用于IP硬盘,所述IP硬盘包括多个键,所述方法包括: 对多个键中的每个键进行哈希运算,获得所述每个键对应的哈希值; 接收服务器发送的检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括所述多个键; 向所述服务器发送与所述标识对应的多个哈希值。
5.如权利要求4所述的方法,其特征在于,所述方法还包括: 保存所述每个键与哈希值之间的对应关系; 接收所述服务器发送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一个; 根据所述对应关系和所述第一哈希值,确定与所述第一哈希值所对应的第一键; 获取所述第一键,并向所述服务器发送所述第一键。
6.如权利要求4所述的方法,其特征在于,所述方法还包括: 接收所述服务器发送的第二键,并存储所述第二键,所述多个键中不包含所述第二键。
7.一种服务器,其特征在于,包括: 通信接口,用于向多个IP硬盘中的第一 IP硬盘发送检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括多个键;并所述第一 IP硬盘发送的与所述标识对应的多个第一哈希值; 处理器,用于根据所述多个IP硬盘中的其他IP硬盘发送的与所述标识对应的多个第二哈希值,判断是否每个第二哈希值均存在相等的第一哈希值;当所述多个第二哈希值中的目标哈希值没有包含在所述多个第一哈希值时,确定所述第一 IP硬盘中存储的与所述目标哈希值对应的键被损坏。
8.如权利要求7所述的服务器,其特征在于,所述通信接口还用于: 向所述其他IP硬盘发送所述目标哈希值; 接收所述其他IP硬盘发送的所述目标哈希值对应的所述键; 将所述键发送至所述第一 IP硬盘,以使所述第一 IP硬盘修复所述键。
9.如权利要求7或8所述的服务器,其特征在于,所述多个IP硬盘是所述待检测分区对应的IP硬盘。
10.一种IP硬盘,其特征在于,包括: 存储单元,用于存储多个键; 处理器,用于对多个键中的每个键进行哈希运算,获得所述每个键对应的哈希值; 接口,用于接收服务器发送的检测指令,所述检测指令包括待检测分区的标识,所述待检测分区包括所述多个键;并向所述服务器发送与所述标识对应的多个哈希值。
11.如权利要求10所述的IP硬盘,其特征在于,所述存储单元还用于保存所述每个键与哈希值之间的对应关系; 所述接口还用于接收所述服务器发送的第一哈希值,所述第一哈希值是所述保存的哈希值中的其中一个; 所述处理器还用于根据所述对应关系和所述第一哈希值,确定与所述第一哈希值所对应的第一键;以及获取所述第一键; 所述接口还用于向所述服务器发送所述第一键。
12.如权利要求11所述的IP硬盘,其特征在于,所述接口还用于接收所述服务器发送的第二键; 所述存储单元还用于存储所述第二键,所述多个键中不包含所述第二键。
【文档编号】G06F17/30GK104461817SQ201410696743
【公开日】2015年3月25日 申请日期:2014年11月26日 优先权日:2014年11月26日
【发明者】张雷 申请人:华为技术有限公司