CN104021049B - 分布式存储系统中数据统一的方法和以太接口硬盘 - Google Patents
分布式存储系统中数据统一的方法和以太接口硬盘 Download PDFInfo
- Publication number
- CN104021049B CN104021049B CN201410209902.6A CN201410209902A CN104021049B CN 104021049 B CN104021049 B CN 104021049B CN 201410209902 A CN201410209902 A CN 201410209902A CN 104021049 B CN104021049 B CN 104021049B
- Authority
- CN
- China
- Prior art keywords
- hard disk
- clock information
- clock
- ether interface
- data
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种分布式存储系统中数据统一的方法和以太接口硬盘,属于计算机技术领域,为解决现有技术中在以太接口硬盘失效并恢复正常状态时,分别接收到多组数据并写入同一存储区域而出现的数据不一致的问题而设计。一种分布式存储系统中数据统一的方法,其特征在于,包括:当目标以太接口硬盘处于失效状态时,接收需要写入所述目标以太接口硬盘的数据;获取时钟信息;根据所述时钟信息对所述数据进行标记,以便于当所述目标以太接口硬盘恢复正常状态时,所述目标以太接口硬盘根据接收到的多组数据的时钟信息,选择目标数据写入所述目标以太接口硬盘的目标存储区域。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式存储系统中数据统一的方法和以太接口硬盘。
背景技术
随着分布式存储系统的兴起,以太接口硬盘的使用也逐步的普及。通过多个以太接口硬盘之间形成以太接口硬盘集群,并通过分布式存储控制设备的协同,支持更大容量的存储服务。
在构成集群的多个以太接口硬盘中,以太接口硬盘会出现因链路闪断、扇区或磁道损坏等原因而导致该以太接口硬盘的局部失效,该失效的以太接口硬盘称为目标以太接口硬盘。此时,针对该以太接口硬盘的数据无法进行存储,需要集群中的其他以太接口硬盘对需要写入失效的以太接口硬盘的数据进行暂存。在目标以太接口硬盘恢复并重新加入集群后,其他以太接口硬盘需要将该数据重新写入目标以太接口硬盘。
但是,在目标以太接口硬盘局部失效的情况下,可能对于目标以太接口硬盘的目标存储区域进行了多次写入操作,那么,在目标以太接口硬盘恢复时,将会有多组数据分别写入目标以太接口硬盘的目标存储区域。此时,多组数据分别写入目标存储区域块中,会出现目标存储区域中所存储的多组数据之间的冲突,导致数据不一致,从而降低了分布式存储系统中数据存储的可靠性。
发明内容
本发明的实施例提供一种分布式存储系统中数据统一的方法和以太接口硬盘,提高了分布式存储系统中数据存储的可靠性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明提供了一种分布式存储系统中数据统一的方法,包括:
当目标以太接口硬盘处于失效状态时,接收需要写入所述目标以太接口硬盘的数据;
获取时钟信息;
根据所述时钟信息对所述数据进行标记,以便于当所述目标以太接口硬盘恢复正常状态时,所述目标以太接口硬盘根据接收到的多组数据的时钟信息,选择目标数据写入所述目标以太接口硬盘的目标存储区域。
结合本发明的第一方面,在本发明第一方面第一种可能的实现方式中,在所述获取时钟信息之前,还包括:
获取所属集群中的至少三个本地时钟的时钟信息;
根据所述至少三个本地时钟的时钟信息计算出平均时钟信息;
根据所述平均时钟信息对所述集群中的以太接口硬盘的本地时钟进行校准。
结合本发明第一方面第一种可能的实现方式,在本发明第一方面的第二种可能的实现方式中,所述根据所述至少三个本地时钟的时钟信息计算出平均时钟信息,包括:
根据所述至少三个本地时钟的时钟信息计算出预估平均时钟信息;
从所述至少三个本地时钟中清除偏差时钟的时钟信息,所述偏差时钟为时钟信息超出所述预估平均时钟信息的预设方差范围的本地时钟;
根据清除了所述偏差时钟后的至少两个本地时钟的时钟信息计算出平均时钟信息。
结合本发明的第一方面第一种可能的实现方式,在本发明第一方面第三种可能的实现方式中,所述获取时钟信息,包括:
当与所述目标以太接口硬盘属于同一集群时,从所述集群中设置的网络时钟协议NTP时钟获取时钟信息。
结合本发明的第一方面第一种可能的实现方式,在本发明第一方面第四种可能的实现方式中,所述获取时钟信息,包括:
从所设置的绝对时钟源获取时钟信息。
结合本发明的第一方面,在本发明第一方面第五种可能的实现方式中,所述时钟信息为向量时钟信息。
第二方面,本发明提供了一种以太接口硬盘,包括:
接收单元,用于当目标以太接口硬盘处于失效状态时,接收需要写入所述目标以太接口硬盘的目标存储区域的数据;
获取单元,用于获取时钟信息;
标记单元,用于根据所述时钟信息对所述数据进行标记,以便于当所述目标以太接口硬盘恢复正常状态时,所述目标以太接口硬盘根据接收到的多组数据的时钟信息,选择目标数据写入所述目标以太接口硬盘的目标存储区域。
结合本发明的第二方面,在本发明第二方面第一种可能的实现方式中,所述获取单元,包括:
获取模块,用于获取所属集群中的至少三个本地时钟的时钟信息;
计算模块,用于根据所述至少三个本地时钟的时钟信息计算出平均时钟信息;
校准模块,用于根据所述平均时钟信息对所述集群中的以太接口硬盘的本地时钟进行校准。
结合本发明第二方面的第一种可能的实现方式,在本发明第二方面第二种可能的实现方式中,所述计算模块包括:
预估子模块,用于根据所述至少三个本地时钟的时钟信息计算出预估平均时钟信息;
清除子模块,用于从所述至少三个本地时钟中清除偏差时钟的时钟信息,所述偏差时钟为时钟信息超出所述预估平均时钟信息的预设方差范围的本地时钟;
计算子模块,用于根据清除了所述偏差时钟后的至少两个本地时钟的时钟信息计算出平均时钟信息。
结合本发明第二方面第一种可能的实现方式,在本发明第二方面第三种可能的实现方式中,所述获取模块,还用于当与所述目标以太接口硬盘属于同一集群时,从所述集群中设置的网络时钟协议NTP时钟获取时钟信息。
结合本发明第二方面第一种可能的实现方式,在本发明第二方面的第四种可能的实现方式中,所述获取模块,还用于从所设置的绝对时钟源获取时钟信息。
结合本发明的第二方面,在本发明第二方面第五种可能的实现方式中,所述时钟信息为向量时钟信息。
本发明实施例提供的一种分布式存储系统中数据统一的方法和以太接口硬盘,当目标以太接口硬盘失效且以太接口硬盘代替所述目标以太接口硬盘接收数据时,通过获取时钟信息对数据进行标记,从而在目标以太接口硬盘恢复正常状态时,能够根据所标记的时钟信息使目标以太接口硬盘从多组数据中选择目标数据写入目标以太接口硬盘的目标存储区域,避免当目标以太接口硬盘从失效状态恢复到正常状态时,接收到多组写入其目标存储区域的数据而导致分布式存储系统中的数据不一致,提高了分布式存储系统中的数据存储的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述一种分布式存储系统的示意图;
图2为本发明所述的一种分布式存储系统中数据统一的方法的流程图;
图3为本发明所述的另一种分布式存储系统中数据统一的方法的流程图;
图4为本发明实施例所述的分布式存储系统的示意图;
图5为本发明实施例所述的一种分布式存储系统中数据统一的方法的流程图;
图6为本发明另一实施例所述的分布式存储系统的示意图;
图7为本发明另一实施例所述的一种分布式存储系统中数据统一的方法的流程图;
图8为本发明另一实施例所述的分布式存储系统的示意图;
图9为本发明另一实施例所述的一种分布式存储系统中数据统一的方法的流程图;
图10为本发明所述的一种以太接口硬盘的结构示意图;
图11为本发明所述的一种以太接口硬盘的结构示意图。
具体实施方式
下面结合附图对本发明实施例所述的一种分布式存储系统中数据统一的方法和装置进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明所述的分布式存储系统中,如图1所示,包括多个以太接口硬盘。在多个以太接口硬盘中,包括一个作为需要接收集群控制器所发送的数据的目标以太接口硬盘。当该目标以太接口硬盘出现链路闪断、硬盘重启或硬盘扇区或磁道损坏时,则会出现目标以太接口硬盘失效的情况。此时,在多个以太接口硬盘中,还包括一个作为代替目标以太接口硬盘接收数据的以太接口硬盘。代替目标以太接口硬盘接收数据的以太接口硬盘可以通过多个以太接口硬盘协商分配,也可以通过集群控制器进行分配。该多个以太接口硬盘可以形成有一个集群,也可以形成有多个集群,因此,目标以太接口硬盘与代替目标以太接口硬盘接收数据的以太接口硬盘可以处于一个集群中,也可以分属于不同的集群。需要说明的是,该以太接口硬盘也被称为智能硬盘、IP硬盘(即,希捷公司发布的Kinetic硬盘)。
一种分布式存储系统中数据统一的方法,如图2所示,包括:
S100、当目标以太接口硬盘处于失效状态时,接收需要写入所述目标以太接口硬盘的数据。
所述数据中包含主键,所述主键,用于标识写入所述数据的目标存储区域。在获取数据时,通过数据中的主键确定该数据需要写入的目标以太接口硬盘中的位置,即通过主键确定目标存储区域。
S101、获取时钟信息。
为了便于说明,代替目标以太接口硬盘接收数据的以太接口硬盘称为第一以太接口硬盘。所述时钟信息可以来源于多种时钟源,例如在以太接口硬盘获取数据时,可以通过以太接口硬盘对所述数据标记向量时钟,那么在该数据中便包含向量时钟信息;当目标以太接口硬盘和第一以太接口硬盘处于一个集群内时,可以将集群中所设置的NTP时钟作为时钟源获取NTP时钟信息;在多个集群中,可以设置分别设置一个绝对时钟源,例如全球定位系统GPS时钟,当目标以太接口硬盘和第一以太接口硬盘处于不同集群内时,分别获取所属的集群中的绝对时钟。
另外,目标以太接口硬盘和第一以太接口硬盘处于相同或不同的集群中时,可以分别从目标以太接口硬盘所属的集群中和第一以太接口硬盘所属的集群中获取至少三个以太接口硬盘的本地时钟,并计算出本地时钟的平均值,根据该平均值对一个集群中的所有以太接口硬盘的本地时钟进行校准,其中,所获取的至少三个本地时钟的时钟信息不包括已经失效的以太接口硬盘的本地时钟。
在获取至少三个本地时钟时,可以首先计算出多个以太接口硬盘的平均时钟信息;然后,根据预设方差范围,选择未超出备选时钟的预设方差范围的本地时钟的时钟信息,即在计算平均时钟信息时将超出平均时钟信息的预设方差范围的本地时钟舍弃,避免跳变或误差较大的一个本地时钟给平均时钟信息带来较大偏差,提高时钟信息的准确性,进而提高分布式存储系统的数据存储的可靠性。
此处的获取时钟信息,可以通过以太接口硬盘进行直接获取,也可以在集群控制器获取后,将该时钟信息发送给以太接口硬盘,从而使以太接口硬盘获取该时钟信息。
S102、根据所述时钟信息对所述数据进行标记,以便于当所述目标以太接口硬盘恢复正常状态时,所述目标以太接口硬盘根据接收到的多组数据的时钟信息,选择目标数据写入所述目标以太接口硬盘的目标存储区域。
第一以太接口硬盘根据获取的时钟信息对数据进行标记,以记录数据生成的时间,从而使目标以太接口硬盘得知该数据是何时写入的。在目标以太接口硬盘恢复正常状态时,会告知集群控制器和集群中的其他以太接口硬盘;集群控制器获知该通知后,集群控制器会通知第一以太接口硬盘将代替存储的数据发送回目标以太接口硬盘。
此时,因为将第一以太接口硬盘中的数据发送会目标以太接口硬盘,数据的写入需要一段时间才能完成。此时,会有新的数据发送至目标以太接口硬盘,如果根据该数据中的主键确定需要写入与上述相同的目标存储区域的话,那么,两组数据之间便会存在冲突而导致最终写入目标存储区域的数据不一致。
但是,在目标以太接口硬盘接收到新的数据后,同样会获取一个时钟信息,对新的数据进行标记。通过时钟信息对两组数据进行分别的标记后,目标以太接口硬盘在分别接收到两组数据的情况下,会根据两组数据的时钟信息进行比较。在进行比较后,目标以太接口硬盘会根据预设选择策略从两组数据中选择一组作为目标数据写入目标存储区域。
需要说明的是,预设选择策略可以根据实际需要进行调整,例如在对两组数据进行归并时,可以是按照时间信息的升序或降序对数据进行显示;在选择一组数据写入时,会选择时间信息较新的写入目标存储区域,以保证分布式存储系统中的该数据的一致性。
本发明实施例提供的一种分布式存储系统中数据统一的方法,当目标以太接口硬盘失效且以太接口硬盘代替所述目标以太接口硬盘接收数据时,通过获取时钟信息对数据进行标记,从而在目标以太接口硬盘恢复正常状态时,能够根据所标记的时钟信息使目标以太接口硬盘从多组数据中选择目标数据写入目标以太接口硬盘的目标存储区域,避免当目标以太接口硬盘从失效状态恢复到正常状态时,接收到多组写入其目标存储区域的数据而导致分布式存储系统中的数据不一致,提高了分布式存储系统中的数据存储的可靠性。
当集群中未设置绝对时钟且作为集群时钟的NTP时钟难以保证准确时,那么可以根据每个以太接口硬盘的本地时钟计算出一个较为精准的时钟,从而对一个或多个集群中的多个以太接口硬盘的本地时钟的时钟信息进行校准,提高分布式存储系统中数据统一的准确性和分布式存储系统数据存储的可靠性。可选的,如图3所示,在所述获取时钟信息之前,还包括:
S100a、获取所属集群中的至少三个本地时钟的时钟信息;
S100b、根据所述至少三个本地时钟的时钟信息计算出平均时钟信息;
S100c、根据所述平均时钟信息对所述集群中的以太接口硬盘的本地时钟进行校准。
通过从集群中选择至少三个以太接口硬盘的本地时钟的时钟信息,并根据本地时钟信息计算出其平均值,即平均时钟信息。最后,根据平均时钟信息对本地时钟信息进行校准,那么无论集群控制器分配哪一个以太接口硬盘作为代替目标以太接口硬盘接收数据,都可以保证目标以太接口硬盘和其他以太接口硬盘的时钟信息一致,提高了分布式存储系统进行数据统一的可靠性。
另外,在选择本地时钟时,因为本地时钟存在跳变或损坏等问题,而导致平均时钟信息出现较大偏差,进一步的,为了保证平均时钟信息的准确性,使分布式存储系统数据存储的可靠性更高,所述根据所述至少三个本地时钟的时钟信息计算出平均时钟信息,包括:
根据所述至少三个本地时钟的时钟信息计算出预估平均时钟信息;
从所述至少三个本地时钟中清除偏差时钟的时钟信息,所述偏差时钟为时钟信息超出所述预估平均时钟信息的预设方差范围的本地时钟;
根据清除了所述偏差时钟后的至少两个本地时钟的时钟信息计算出平均时钟信息。
通过上述方式将出现偏差的时钟信息清除,从而使平均时钟更加准确,保证平均时钟信息的准确性,使分布式存储系统数据存储的可靠性更高。
当第一以太接口硬盘和目标以太接口硬盘处于同一集群中时,如果该集群中设置有一个统一的NTP时钟,便可以通过该NTP时钟进行标记。可选的,所述获取时钟信息,包括:
当与所述目标以太接口硬盘属于同一集群时,从所设置的NTP时钟获取时钟信息。
当第一以太接口硬盘和目标以太接口硬盘属于不同集群时,可以通过每个集群中所设置的绝对时钟源获取时钟信息,因为绝对时钟源是一个统一准确的时钟源,所以获取的时钟信息已经是统一的,这样一来,分布式存储系统中数据统一的可靠性也可以得到保证。可选的,所述获取时钟信息,包括:
从所设置的绝对时钟源获取时钟信息。
另外,通过以太接口硬盘自动生成的向量时钟也可以保证时钟信息的统一。可选的,所述时钟信息为向量时钟信息。
为了本领域的技术人员更好地理解本发明提供的分布式存储系统中数据统一的方法的技术方案,下面通过具体的实施例对本发明提供的分布式存储系统中数据统一的方法进行详细描述。
在本实施例中,分布式存储系统中,如图4所示,包括处于第一集群中的目标以太接口硬盘、第一以太接口硬盘、第二以太接口硬盘、第三以太接口硬盘和第四以太接口硬盘;处于第二集群中的第五以太接口硬盘、第六以太接口硬盘和第七以太接口硬盘;集群控制器。
本实施例中,分布式存储系统中数据统一的方法,如图5所示,包括:
S1、集群控制器检测以太接口硬盘的工作状态,判断以太接口硬盘是否处于失效状态。
各个以太接口硬盘可以向集群控制器发送心跳消息,当集群控制器接收到心跳消息时,便可以知道以太接口硬盘处于正常状态。
如果检测到以太接口硬盘处于失效状态则执行步骤S2,如果未检测到则执行步骤S1。
S2、集群控制器将第一以太接口硬盘作为代替目标以太接口硬盘的以太接口硬盘,将需要发送给目标以太接口硬盘的第一数据发送给第一以太接口硬盘。
S3、第一以太接口硬盘接收第一数据进行存储,获取第一集群中第一以太接口硬盘、第二以太接口硬盘、第三以太接口硬盘和第四以太接口硬盘的本地时钟的时钟信息,并根据所获取的本地时钟的时钟信息,计算出第一集群中的平均时钟信息。
第一以太接口硬盘接收到第一数据,并将该第一数据写入空闲存储区域。在写入后,第一以太接口硬盘获取第一集群中各以太接口硬盘的本地时钟所记录的时钟信息。此时,为了避免集群中的以太接口硬盘的本地时钟存在偏差,那么在第一以太接口硬盘获取四个时钟信息后,计算出预估平均时钟信息,根据预设方差范围对四个时钟信息进行检验。例如可以确定第二以太接口硬盘的本地时钟存在问题,可以将其去除,不作为计算参数。此时,第一以太接口硬盘会根据第一以太接口硬盘、第三以太接口硬盘和第四以太接口硬盘的时钟信息重新计算平均值,确定平均时钟信息。
S4、第一以太接口硬盘根据平均时钟信息对第一集群中的以太接口硬盘对本地时钟进行校准。
在第一以太接口硬盘计算出平均时钟信息后,第一以太接口硬盘对自己的本地时钟进行校准,并可以将平均时钟信息发送给其他的以太接口硬盘。第一集群中的其他以太接口硬盘接收到平均时钟信息后,对自己的本地时钟进行校准。
S5、第一以太接口硬盘根据本地时钟对接收到的第一数据标记时钟信息。
在第一以太接口硬盘的本地时钟校准之后,第一以太接口硬盘根据校准后的本地时钟获取时钟信息,并在写入第一数据后,生成一条关于第一数据的时钟信息。
此时,集群控制器会继续进行其他的数据操作,等待目标以太接口硬盘恢复正常状态。
S6、目标以太接口硬盘恢复正常状态,向集群控制器发送心跳消息。
目标以太接口硬盘的问题被修复后,会向集群控制器发送心跳消息。集群控制器在接收到来自目标以太接口硬盘的心跳消息后得知其已经恢复正常状态。此时,集群控制器可以将目标以太接口硬盘恢复正常状态的消息告知其他以太接口硬盘。
S7、第一以太接口硬盘获知目标以太接口硬盘恢复正常状态后,将第一数据和第一数据所对应的时钟信息发送给目标以太接口硬盘。
当第一以太接口硬盘接收到集群控制器的消息后,得知目标以太接口硬盘已经恢复正常状态,可以获取并写入数据。此时,第一以太接口硬盘将代替目标以太接口硬盘存储的第一数据发送给目标以太接口硬盘,并在数据报文中加载所记录的时钟信息。
S8、目标以太接口硬盘接收来自第一以太接口硬盘的来自集群控制器的第二数据,并且根据目标以太接口硬盘的本地时钟获取时钟信息,并对第二数据进行标记。
此时,刚刚恢复正常状态的目标以太接口硬盘会接收来自第一以太接口硬盘的第一数据,并根据其中的主键将第一数据写入目标存储区域,但是恢复的过程需要较长时间,那么在这段集群控制器会将新的数据发送给目标以太接口硬盘,例如第二数据。当第二数据中的主键和第一数据中的主键相同时,则可以知道第一数据和第二数据需要写入相同的目标存储区域,如果直接存储这会导致第一数据和第二数据分别写入目标存储区域,则会出现第一数据和第二数据的冲突,导致数据不一致的情况。
那么,在本发明中继而进行如下处理以避免这种不一致。
S9、目标以太接口硬盘根据第一数据的时钟信息和第二数据的时钟信息,基于预设的选择策略选择一组数据写入目标存储区域。
当目标以太接口硬盘开始接收第二数据时,会根据其自身的本地时钟获取一个对应第二数据的时钟信息。根据第一数据的时钟信息和第二数据的时钟信息进行比较。选择策略可以是选择时间信息比较新的作为写入目标存储区域的数据。
另外,也可以通过第二集群中的以太接口硬盘代替目标以太接口硬盘接收第一数据,例如通过第五以太接口硬盘进行接收。此时,在计算平均时钟信息时,则通过第五以太接口硬盘获取第二集群中的其他以太接口硬盘的本地时钟的时钟信息。其他过程与本实施例相类似,不再赘述。
在本实施例中,将集群控制器发来的第二数据作为写入目标存储区域的数据。第一数据便停止写入,而将第二数据写入目标存储区域,这样一来,便可以避免分布式存储系统中数据不一致的情况,提高了分布式存储系统的可靠性。
在本发明的另一个实施例中,分布式存储系统,如图6所示,包括:集群控制器;第一集群中,包括目标以太接口硬盘、第一以太接口硬盘、第二以太接口硬盘、第三以太接口硬盘和NTP时钟。
本实施例的一种分布式存储系统中数据统一的方法,如图7所示,包括:
S1、集群控制器检测以太接口硬盘的工作状态,判断以太接口硬盘是否处于失效状态。
如果检测到以太接口硬盘处于失效状态则执行步骤S2,如果未检测到则执行步骤S1。
S2、集群控制器将第一以太接口硬盘作为代替目标以太接口硬盘的以太接口硬盘,将需要发送给目标以太接口硬盘的第一数据发送给第一以太接口硬盘。
S10a、第一以太接口硬盘接收第一数据进行存储,从第一集群中的NTP时钟获取时钟信息。
S10b、第一以太接口硬盘根据时钟信息对第一数据进行标记。
因为NTP时钟作为一个集群共用的时钟,所以可以认为一个集群中的时钟信息是统一的。
此时,集群控制器会继续进行其他的数据操作,等待目标以太接口硬盘恢复正常状态。
S6、目标以太接口硬盘恢复正常状态,向集群控制器发送心跳消息。
S7、第一以太接口硬盘获知目标以太接口硬盘恢复正常状态后,将第一数据和第一数据所对应的时钟信息发送给目标以太接口硬盘。
S8、目标以太接口硬盘接收来自第一以太接口硬盘的来自集群控制器的第二数据,并且根据目标以太接口硬盘从NTP时钟过去时钟信息,对第二数据进行标记。
目标以太接口硬盘在接收到第二数据后,同样地,根据第一集群中的NTP时钟获取时钟信息,进行第二数据的标记。
S9、目标以太接口硬盘根据第一数据的时钟信息和第二数据的时钟信息,基于预设的选择策略选择一组数据写入目标存储区域。
因为第一数据的时钟信息和第二数据的时钟信息都是从第一集群的NTP时钟获取的,所以第一数据的时钟信息和第二数据的时钟信息之间不会出现因为选用了不同时钟而出现的不一致,此时,便可以通过从同一时钟源获取的时钟信息得知第一数据和第二数据的时序差别。之后,根据选择策略,选择一组数据写入目标以太接口硬盘的目标存储区域。
在本实施例中,将集群控制器发来的第二数据作为写入目标存储区域的数据。第一数据便停止写入,而将第二数据写入目标存储区域,这样一来,便可以避免分布式存储系统中数据不一致的情况,提高了分布式存储系统的可靠性。
在本发明的另一个实施例中,分布式存储系统,如图8所示,包括:集群控制器和GPS时钟服务器;第一集群中,包括目标以太接口硬盘、第一以太接口硬盘、第二以太接口硬盘和第三以太接口硬盘。
本实施例的一种分布式存储系统中数据统一的方法,如图9所示,包括:
S1、集群控制器检测以太接口硬盘的工作状态,判断以太接口硬盘是否处于失效状态。
如果检测到以太接口硬盘处于失效状态则执行步骤S2,如果未检测到则执行步骤S1。
S2、集群控制器将第一以太接口硬盘作为代替目标以太接口硬盘的以太接口硬盘,将需要发送给目标以太接口硬盘的第一数据发送给第一以太接口硬盘。
S10c、第一以太接口硬盘接收第一数据进行存储,从GPS时钟服务器获取时钟信息。
S10b、第一以太接口硬盘根据时钟信息对第一数据进行标记。
因为GPS时钟绝对时钟,会与卫星进行同步,时间信息更为精确,这样一来,多个集群中可以分别选用相同或不同的GPS时钟,那么在选择代替目标以太接口硬盘进行数据存储时,集群控制器可以拥有更大的选择空间,提高分布式存储系统的灵活性。
此时,集群控制器会继续进行其他的数据操作,等待目标以太接口硬盘恢复正常状态。
S6、目标以太接口硬盘恢复正常状态,向集群控制器发送心跳消息。
S7、第一以太接口硬盘获知目标以太接口硬盘恢复正常状态后,将第一数据和第一数据所对应的时钟信息发送给目标以太接口硬盘。
S8、目标以太接口硬盘接收来自第一以太接口硬盘的来自集群控制器的第二数据,并且根据目标以太接口硬盘从GPS时钟过去时钟信息,对第二数据进行标记。
目标以太接口硬盘在接收到第二数据后,同样地,根据第一集群中的GPS时钟获取时钟信息,进行第二数据的标记。
S9、目标以太接口硬盘根据第一数据的时钟信息和第二数据的时钟信息,基于预设的选择策略选择一组数据写入目标存储区域。
通过一个集群中所设置的GPS时钟,可以保证一个集群中的时钟信息统一,不会出现因为本地时钟的时钟信息不一致所导致的数据不统一的问题,提高了分布式存储系统的可靠性。
在本发明的另一个实施例中,无需设置单独的时钟源,而是通过向量时钟进行标记,这样一来,可以通过算法来保证多组数据的时钟信息之间的统一,进而也保证了分布式存储系统中数据的一致性,提高了分布式存储系统的可靠性。
与上述一种分布式存储系统中数据统一的方法相对应,本发明还公开了一种以太接口硬盘200,如图10所示,包括:
接收单元210,用于当目标以太接口硬盘处于失效状态时,接收需要写入所述目标以太接口硬盘的目标存储区域的数据;
获取单元220,用于获取时钟信息;
标记单元230,用于根据所述时钟信息对所述数据进行标记,以便于当所述目标以太接口硬盘恢复正常状态时,所述目标以太接口硬盘根据接收到的多组数据的时钟信息,选择目标数据写入所述目标以太接口硬盘的目标存储区域。
可选的,所述获取单元220,包括:
获取模块221,用于获取所属集群中的至少三个本地时钟的时钟信息;
计算模块222,用于根据所述至少三个本地时钟的时钟信息计算出平均时钟信息;
校准模块223,用于根据所述平均时钟信息对所述集群中的以太接口硬盘的本地时钟进行校准。
进一步的,所述计算模块222包括:
预估子模块222a,用于根据所述至少三个本地时钟的时钟信息计算出预估平均时钟信息;
清除子模块222b,用于从所述至少三个本地时钟中清除偏差时钟的时钟信息,所述偏差时钟为时钟信息超出所述预估平均时钟信息的预设方差范围的本地时钟;
计算子模块222c,用于根据清除了所述偏差时钟后的至少两个本地时钟的时钟信息计算出平均时钟信息。
所述本地时钟的时钟信息为未超出备选时钟的预设方差范围的本地时钟的时钟信息。
可选的,所述获取模块221,还用于当与所述目标以太接口硬盘属于同一集群时,从所述集群中设置的网络时钟协议NTP时钟获取时钟信息。
可选的,所述获取模块221,还用于从所设置的绝对时钟源获取时钟信息。
可选的,所述时钟信息为向量时钟信息。
本发明实施例提供的一种以太接口硬盘,当目标以太接口硬盘失效且以太接口硬盘代替所述目标以太接口硬盘接收数据时,通过获取的时钟信息对数据进行标记,从而在目标以太接口硬盘恢复正常状态时,能够根据所标记的时钟信息使目标以太接口硬盘从多组数据中选择目标数据写入目标以太接口硬盘的目标存储区域,避免当目标以太接口硬盘从失效状态恢复到正常状态时,接收到多组写入其目标存储区域的数据而导致分布式存储系统中的数据不一致,提高了分布式存储系统中的数据存储的可靠性。
与本发明上述的一种分布式存储系统中数据统一的方法相对应,本发明还公开了一种以太接口硬盘300,如图11所示,包括:
接收器310、处理器320、发送器330和存储器340;
所述接收器310,用于当目标以太接口硬盘处于失效状态时,接收需要写入所述目标以太接口硬盘的数据;
所述存储器340包含多个存储区域,用于存储所述数据;
所述发送器330,用于发送心跳消息;
所述处理器320,用于获取时钟信息;根据所述时钟信息对所述数据进行标记,以便于当所述目标以太接口硬盘恢复正常状态时,所述目标以太接口硬盘根据接收到的多组数据的时钟信息,选择目标数据写入所述目标以太接口硬盘的目标存储区域。
可选的,所述处理器320还用于获取所属集群中的至少三个本地时钟的时钟信息;根据所述至少三个本地时钟的时钟信息计算出平均时钟信息;根据所述平均时钟信息对所述集群中的以太接口硬盘的本地时钟进行校准。
进一步的,所述处理器320还用于根据所述至少三个本地时钟的时钟信息计算出预估平均时钟信息;从所述至少三个本地时钟中清除偏差时钟的时钟信息,所述偏差时钟为时钟信息超出所述预估平均时钟信息的预设方差范围的本地时钟;根据清除了所述偏差时钟后的至少两个本地时钟的时钟信息计算出平均时钟信息。
可选的,所述处理器320,还用于当与所述目标以太接口硬盘属于同一集群时,从所述集群中设置的网络时钟协议NTP时钟获取时钟信息。
可选的,所述处理器320,还用于当与所述目标以太接口硬盘属于不同集群时,从所属集群中设置的绝对时钟源获取时钟信息。
可选的,所述时钟信息为向量时钟信息。
本发明实施例提供的一种以太接口硬盘,当目标以太接口硬盘失效且以太接口硬盘代替所述目标以太接口硬盘接收数据时,通过获取的时钟信息对数据进行标记,从而在目标以太接口硬盘恢复正常状态时,能够根据所标记的时钟信息使目标以太接口硬盘从多组数据中选择目标数据写入目标以太接口硬盘的目标存储区域,避免当目标以太接口硬盘从失效状态恢复到正常状态时,接收到多组写入其目标存储区域的数据而导致分布式存储系统中的数据不一致,提高了分布式存储系统中的数据存储的可靠性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种分布式存储系统中数据统一的方法,其特征在于,包括:
当目标以太接口硬盘处于失效状态时,接收需要写入所述目标以太接口硬盘的数据;
获取时钟信息;
根据所述时钟信息对所述数据进行标记,以便于当所述目标以太接口硬盘恢复正常状态时,所述目标以太接口硬盘根据接收到的多组数据的时钟信息进行比较,并根据预设选择策略从多组数据中选择目标数据写入所述目标以太接口硬盘的目标存储区域;
其中,所述预设选择策略为选择时间信息较新的数据作为目标数据。
2.根据权利要求1所述的方法,其特征在于,在所述获取时钟信息之前,还包括:
获取所属集群中的至少三个本地时钟的时钟信息;
根据所述至少三个本地时钟的时钟信息计算出平均时钟信息;
根据所述平均时钟信息对所述集群中的以太接口硬盘的本地时钟进行校准。
3.根据权利要求2所述的方法,其特征在于,所述根据所述至少三个本地时钟的时钟信息计算出平均时钟信息,包括:
根据所述至少三个本地时钟的时钟信息计算出预估平均时钟信息;
从所述至少三个本地时钟中清除偏差时钟的时钟信息,所述偏差时钟为时钟信息超出所述预估平均时钟信息的预设方差范围的本地时钟;
根据清除了所述偏差时钟后的至少两个本地时钟的时钟信息计算出平均时钟信息。
4.根据权利要求1所述的方法,其特征在于,所述获取时钟信息,包括:
当与所述目标以太接口硬盘属于同一集群时,从所述集群中设置的网络时钟协议NTP时钟获取时钟信息。
5.根据权利要求1所述的方法,其特征在于,所述获取时钟信息,包括:
从所设置的绝对时钟源获取时钟信息。
6.根据权利要求1所述的方法,其特征在于,所述时钟信息为向量时钟信息。
7.一种以太接口硬盘,其特征在于,包括:
接收单元,用于当目标以太接口硬盘处于失效状态时,接收需要写入所述目标以太接口硬盘的目标存储区域的数据;
获取单元,用于获取时钟信息;
标记单元,用于根据所述时钟信息对所述数据进行标记,以便于当所述目标以太接口硬盘恢复正常状态时,所述目标以太接口硬盘根据接收到的多组数据的时钟信息进行比较,并根据预设选择策略从多组数据中选择目标数据写入所述目标以太接口硬盘的目标存储区域;
其中,所述预设选择策略为选择时间信息较新的数据作为目标数据。
8.根据权利要求7所述的以太接口硬盘,其特征在于,所述获取单元,包括:
获取模块,用于获取所属集群中的至少三个本地时钟的时钟信息;
计算模块,用于根据所述至少三个本地时钟的时钟信息计算出平均时钟信息;
校准模块,用于根据所述平均时钟信息对所述集群中的以太接口硬盘的本地时钟进行校准。
9.根据权利要求8所述的以太接口硬盘,其特征在于,所述计算模块包括:
预估子模块,用于根据所述至少三个本地时钟的时钟信息计算出预估平均时钟信息;
清除子模块,用于从所述至少三个本地时钟中清除偏差时钟的时钟信息,所述偏差时钟为时钟信息超出所述预估平均时钟信息的预设方差范围的本地时钟;
计算子模块,用于根据清除了所述偏差时钟后的至少两个本地时钟的时钟信息计算出平均时钟信息。
10.根据权利要求8所述的以太接口硬盘,其特征在于,
所述获取模块,还用于当与所述目标以太接口硬盘属于同一集群时,从所述集群中设置的网络时钟协议NTP时钟获取时钟信息。
11.根据权利要求8所述的以太接口硬盘,其特征在于,
所述获取模块,还用于从所设置的绝对时钟源获取时钟信息。
12.根据权利要求7所述的以太接口硬盘,其特征在于,所述时钟信息为向量时钟信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410209902.6A CN104021049B (zh) | 2014-05-16 | 2014-05-16 | 分布式存储系统中数据统一的方法和以太接口硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410209902.6A CN104021049B (zh) | 2014-05-16 | 2014-05-16 | 分布式存储系统中数据统一的方法和以太接口硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104021049A CN104021049A (zh) | 2014-09-03 |
CN104021049B true CN104021049B (zh) | 2017-11-03 |
Family
ID=51437817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410209902.6A Active CN104021049B (zh) | 2014-05-16 | 2014-05-16 | 分布式存储系统中数据统一的方法和以太接口硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104021049B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461380B (zh) * | 2014-11-17 | 2017-11-21 | 华为技术有限公司 | 数据存储方法及装置 |
CN105407137B (zh) * | 2015-10-22 | 2019-07-23 | 华为技术有限公司 | 一种数据迁移方法、ip硬盘、ip盘网关及存储系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101080710A (zh) * | 2004-08-24 | 2007-11-28 | 塞门铁克操作公司 | 映象数据存储装置写时间映射 |
CN102124527A (zh) * | 2008-05-16 | 2011-07-13 | 弗森-艾奥公司 | 用于检测和替代失效的数据存储器的装置、系统和方法 |
CN102640108A (zh) * | 2009-10-26 | 2012-08-15 | 亚马逊技术股份有限公司 | 已复制数据的监控 |
CN102945201A (zh) * | 2011-09-11 | 2013-02-27 | 微软公司 | 已验证数据集合的非易失性介质日志记录 |
CN103339615A (zh) * | 2011-01-28 | 2013-10-02 | 日本电气株式会社 | 存储系统 |
-
2014
- 2014-05-16 CN CN201410209902.6A patent/CN104021049B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101080710A (zh) * | 2004-08-24 | 2007-11-28 | 塞门铁克操作公司 | 映象数据存储装置写时间映射 |
CN102124527A (zh) * | 2008-05-16 | 2011-07-13 | 弗森-艾奥公司 | 用于检测和替代失效的数据存储器的装置、系统和方法 |
CN102640108A (zh) * | 2009-10-26 | 2012-08-15 | 亚马逊技术股份有限公司 | 已复制数据的监控 |
CN103339615A (zh) * | 2011-01-28 | 2013-10-02 | 日本电气株式会社 | 存储系统 |
CN102945201A (zh) * | 2011-09-11 | 2013-02-27 | 微软公司 | 已验证数据集合的非易失性介质日志记录 |
Also Published As
Publication number | Publication date |
---|---|
CN104021049A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104123198B (zh) | 管理数据复制模式的方法和装置 | |
JP2013061944A5 (zh) | ||
CN104583930B (zh) | 数据迁移的方法、控制器和数据迁移装置 | |
CN104484131B (zh) | 多磁盘服务器的数据处理装置及对应的处理方法 | |
CN102955845A (zh) | 数据访问方法、装置与分布式数据库系统 | |
CN105575155B (zh) | 用于确定车辆行驶信息的方法和设备 | |
CN105989059A (zh) | 数据记录核对方法及装置 | |
CN111104283B (zh) | 一种分布式存储系统的故障检测方法、装置、设备及介质 | |
CN107506266A (zh) | 一种数据恢复方法及系统 | |
CN103873288A (zh) | 基于告警信息对通信网络设备故障进行定位的系统和方法 | |
CN104021049B (zh) | 分布式存储系统中数据统一的方法和以太接口硬盘 | |
CN110337067A (zh) | 一种运动轨迹生成方法、装置及相关组件 | |
CN103037203A (zh) | 一种基于块存储的索引恢复方法和装置 | |
CN108701055A (zh) | 车辆控制装置和车辆系统 | |
CN109684320A (zh) | 监测数据在线清洗的方法和设备 | |
CN109597722A (zh) | 数据库备份文件恢复方法、装置及电子设备 | |
US20050154786A1 (en) | Ordering updates in remote copying of data | |
CN102394909B (zh) | 远程会诊业务处理方法和系统 | |
CN106533751A (zh) | 一种sdn控制器集群合并方法及装置 | |
CN105608714A (zh) | 一种基于cad和gis协同的分幅影像生成方法及系统 | |
CN104461774A (zh) | 异步复制方法、装置与系统 | |
CN103092745B (zh) | 系统日志记录的控制方法和装置 | |
CN104199687A (zh) | 一种在虚拟机系统中处理数据的方法和装置 | |
CN103403666B (zh) | 分布式存储控制方法、装置及系统 | |
CN106570029A (zh) | 分布式关系型数据库的数据处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |