CN109344011A - 一种数据备份方法及装置 - Google Patents
一种数据备份方法及装置 Download PDFInfo
- Publication number
- CN109344011A CN109344011A CN201811232346.9A CN201811232346A CN109344011A CN 109344011 A CN109344011 A CN 109344011A CN 201811232346 A CN201811232346 A CN 201811232346A CN 109344011 A CN109344011 A CN 109344011A
- Authority
- CN
- China
- Prior art keywords
- controller
- data
- target
- cluster
- module
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000005012 migration Effects 0.000 claims description 24
- 238000013508 migration Methods 0.000 claims description 24
- 230000004048 modification Effects 0.000 claims description 13
- 238000012986 modification Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 abstract description 5
- 230000004044 response Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据备份方法及装置,应用于集群管理控制器,集群管理控制器为控制器集群中任意一台未发生故障的控制器,控制器集群包括至少三台控制器;该方法包括:当控制器集群中的第一控制器发生故障时,遍历目标区域中存储的数据,判断数据的状态标记是否为第一标签;在遍历到状态标记为第一标签的第一目标数据后,将第一目标数据镜像至第三控制器的缓存区域,并将目标区域中第一目标数据的状态标记删除或者修改为第二标签,可以在保证数据可靠性的基础上,使得控制器集群中正常工作的服务器仍然可以在缓存接收到的数据后及时应答请求,保证了系统的处理性能。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据备份方法及装置。
背景技术
在具有多台控制器的集群中,每台控制器均可支持数据缓存功能。集群中的控制器将接收到的数据缓存到内存后即可应答请求,提高重复或顺序读写性能,提高系统性能。
为了提高数据的可靠性,集群中控制器接收到的数据及相关元数据,在集群的至少2台控制器上缓存有副本。集群中存储有相同的数据副本的至少两台控制器可称为镜像对。现有技术中,当镜像对中的一台控制器故障时,镜像对中的另一台控制器不再重新将数据副本备份到集群中的其他控制器上。因此,为了保证数据安全,常规做法是控制器的缓存模式由写回方式改为写透方式,即控制器将接收到的数据写入到后端磁盘介质上再应答请求,会导致数据处理的性能下降严重。
发明内容
有鉴于此,本申请实施例提供了一种数据备份方法及装置,能够在保证数据可靠性的基础上,解决现有技术中集群中控制器故障会导致其数据处理能力严重下降的问题。
本申请实施例提供的一种数据备份方法,应用于集群管理控制器,所述集群管理控制器为控制器集群中任意一台未发生故障的控制器,所述控制器集群包括至少三台控制器;所述方法包括:
当所述控制器集群中的第一控制器发生故障时,遍历目标区域中存储的数据,判断数据的状态标记是否为第一标签;所述目标区域包括第二控制器中任意一个或多个缓存区域,所述第一控制器和所述第二控制器为镜像对,所述第一标签用于标记所述目标区域内未写入第三控制器的数据,所述第三控制器为所述控制器集群中正常工作的控制器,且所述第三控制器和所述第一控制器不属于同一镜像对;
在遍历到状态标记为第一标签的第一目标数据后,将所述第一目标数据镜像至第三控制器的缓存区域,并将所述目标区域中第一目标数据的状态标记删除或者修改为第二标签;所述第二标签用于标记所述目标区域内已写入所述第三控制器的数据。
可选的,所述遍历目标区域中存储的数据,判断数据的状态标记是否为第一标签,之前还包括:
遍历所述目标区域中存储的数据,判断数据的状态标记是否为第三标签;所述第三标签用于标记缓存区域中未写入存储介质的数据;
在遍历到状态标记为第三标签的第二目标数据后,将所述第二目标数据的数据标签修改为所述第一标签;
所述将所述第一目标数据镜像至第三控制器的缓存区域,之后还包括:
将所述第三控制器中所述第一目标数据的状态标记修改为所述第三标签。
可选的,所述方法还包括:
接收数据写入命令;所述数据写入命令携带有待写入数据;
判断所述目标区域内是否存在与所述待写入数据对应的第一目标数据;
若是,则将所述待写入数据和与其对应的第一目标数据合并后,更新与所述待写入数据对应的第一目标数据,以便将更新后的第一目标数据镜像至所述第三控制器的缓存区域。
可选的,所述第三控制器通过以下步骤确定:
查找与所述第二控制器对应的配置列表,将所述配置列表中任意一个正常工作的控制器确定为所述第三控制器;
或者,
查找与所述第二控制器对应的配置列表,将所述配置列表中正常工作且负载最小的控制器确定为所述第三控制器;
或者,
将所述控制器集群中负载最小且正常工作的控制器确定为所述第三控制器。
可选的,所述方法还包括:
当所述第一控制器发生故障时,在所述控制器集群中广播数据迁移信息;所述数据迁移信息包括所述第一控制器、所述目标区域和所述第三控制器的标识;
当所述目标区域内的第一目标数据均已镜像至所述第三控制器时,在所述控制器集群中广播迁移完成通知。
本申请实施例提供的一种数据备份装置,应用于集群管理控制器,所述集群管理控制器为控制器集群中任意一台未发生故障的控制器,所述控制器集群包括至少三台控制器;所述装置包括:第一判断模块、数据镜像模块和状态修改模块;
所述第一判断模块,用于当所述控制器集群中的第一控制器发生故障时,遍历目标区域中存储的数据,判断数据的状态标记是否为第一标签;所述目标区域包括第二控制器中任意一个或多个缓存区域,所述第一控制器和所述第二控制器为镜像对,所述第一标签用于标记所述目标区域内未写入第三控制器的数据,所述第三控制器为所述控制器集群中正常工作的控制器,且所述第三控制器和所述第一控制器不属于同一镜像对;
所述数据镜像模块,用于在所述第一判断模块遍历到状态标记为第一标签的第一目标数据后,将所述第一目标数据镜像至所述第三控制器的缓存区域;
所述状态修改模块,用于在所述数据镜像模块将所述第一目标数据镜像至第三控制器的缓存区域后,将所述目标区域中第一目标数据的状态标记删除或者修改为第二标签;所述第二标签用于标记所述目标区域内已写入所述第三控制器的数据。
可选的,所述装置还包括:第二判断模块;
所述第二判断模块,用于遍历所述目标区域中存储的数据,判断数据的状态标记是否为第三标签;
所述状态修改模块,还用于在所述第二判断模块遍历到状态标记为第三标签的第二目标数据后,将所述第二目标数据的数据标签修改为所述第一标签;所述第三标签用于标记缓存区域中未写入存储介质的数据;还用于将所述第三控制器中的所述第一目标数据的状态标记修改为所述第三标签。
可选的,所述装置还包括:命令接收模块、第三判断模块和数据合并模块;
所述命令接收模块,用于接收数据写入命令;所述数据写入命令携带有待写入数据;
所述第三判断模块,用于判断所述目标区域内是否存在与所述待写入数据对应的第一目标数据;
所述数据合并模块,用于在所述第三判断模块的判断结果为是时,将所述待写入数据和与其对应的第一目标数据合并后,更新与所述待写入数据对应的第一目标数据,以便将更新后的第一目标数据镜像至第三控制器的缓存区域。
可选的,所述装置还包括:第一确定模块、第二确定模块和第三确定模块中的任意一个;
所述第一确定模块,用于查找与所述第二控制器对应的配置列表,将所述配置列表中任意一个正常工作的控制器确定为所述第三控制器;
所述第二确定模块,用于查找与所述第二控制器对应的配置列表,将所述配置列表中正常工作且负载最小的控制器确定为所述第三控制器;
所述第三确定模块,用于将所述控制器集群中负载最小且正常工作的控制器确定为所述第三控制器。
可选的,所述装置还包括:消息广播模块;
所述消息广播模块,用于当所述第一控制器发生故障时,在所述控制器集群中广播数据迁移信息;还用于当所述目标区域内的第一目标数据均已镜像至所述第三控制器时,在所述控制器集群中广播迁移完成通知;所述数据迁移信息包括所述第一控制器、所述目标区域和所述第三控制器的标识。
与现有技术相比,本申请至少具有以下优点:
在本申请实施例中,在控制器集群中的第一控制器发生故障时,集群管理控制器遍历与第一控制器为镜像对的第二控制器中目标区域内存储的数据,判断其中存储数据的状态标记是否为第一标签。在遍历到状态标记为第一标签的第一目标数据后,集群管理控制器将第一目标数据镜像至控制器集群中正常工作的第三控制器的缓存区域中,并将目标区域中的第一目标数据的状态标记删除或修改为第二标签,以表示该第一目标数据已完成迁移,在保证数据可靠性的基础上,使得控制器集群中正常工作的服务器仍然可以在缓存接收到的数据后及时应答请求,保证了系统的处理性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例的应用场景示意图;
图2为本申请实施例提供的一种数据备份方法的流程示意图;
图3为本申请实施例提供的另一种数据备份方法的流程示意图;
图4为本申请实施例提供的再一种数据备份方法的流程示意图;
图5为本申请实施例提供的一种数据备份装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面首先介绍本申请实施例的具体应用场景。参见图1,该图为本申请实施例的应用场景示意图。
本申请实施例提供的数据备份方法及装置,适用于如图1所示的控制器集群,该控制器集群包括至少三台控制器。每台控制器均可以接收主机写入的数据并根据接收的数据响应设备的请求。控制器支持缓存功能,接收到的数据缓存到内存后即可响应设备的请求,提高系统性能。可以理解的是,控制器集群具体可以说是服务器集群,本申请实施例对具体场景不进行限定。
为了保证数据的可靠性,控制器集群中的控制器接收到主机发送的数据后,会在控制器集群中缓存有至少两份数据副本分别存储在不同的控制器中。存储有相同数据副本的至少两台控制器称为镜像对。以两份副本为例,如图1所示的控制器A和控制器B,二者相互备份接收到的数据,即控制器A接收到数据备份至控制器B,控制器B接收到的数据备份至控制器A,控制器A和控制器B为镜像对。这样,当控制器集群中一台控制器(如控制器A)故障时,其所属镜像对中其他控制器(如控制器B)存储的数据副本仍可以保证数据的可用。
但是,由于现有技术中控制器集群中一台控制器故障,其所属镜像对中其他控制器无法向该故障的控制器发送数据备份,如图1中控制器A故障时,控制器B无法发送数据备份至控制器A。此时,为了保证数据安全,该其他控制器(如图1中的控制器B)在接收到数据后,需将数据写入到磁盘介质中再应答请求,响应等待时间加长,导致系统性能下降严重。
为此,本申请实施例提供了一种数据备份方法及装置,在控制器集群中的控制器发生故障时,将其所属镜像对中其他控制器上存储的数据镜像迁移至控制器集群中其他正常工作的控制器上,使得控制器集群中仍然存储有至少两份数据的副本,保证了数据的可靠性,使得控制器可以维持缓存数据后即可应答请求的设置,保证了系统的处理性能。
需要说明的是,本申请实施例不仅可以应用于图1所示的具体场景中,还可以应用于其他设备集群中用于数据的备份。控制器集群中存储相同的数据备份的数量可以为两份,即在两个不同的控制器上存储有相同的数据副本,还可以根据实际需要设定控制器集群中存储相同的数据备份的数量,如3、4或5等,即在三、四或五个不同的控制器上存储有相同的数据副本,本申请实施例对此不进行限定。
基于上述思想,为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请的具体实施方式做详细的说明。
参见图2,该图为本申请实施例提供的一种数据备份方法的流程示意图。
本申请实施例提供的一种数据备份方法应用于集群管理控制器,该集群管理控制器为控制器集群中任意一台未发生故障的控制器,可以从控制器集群中任选一台控制器作为集群管理控制器,也可以采用选举的方式从控制器集群中选择一台控制器作为集群管理控制器,本申请实施例对此不进行限定。本申请实施例提供的一种数据备份方法包括如下步骤S201-S202。
S201:当控制器集群中的第一控制器发生故障时,遍历目标区域中存储的数据,判断数据的状态标记是否为第一标签。
可以理解的是,第一控制器可以是控制器集群中任意一台发生故障的控制器,如图1所示的例子中,控制器A发生故障,则第一控制器即为控制器A。集群管理控制器可以通过与控制器之间的通信状态判断该控制器是否发生故障,如当控制器无响应或做出故障应答时,集群管理控制器可确定该控制器为发生故障的第一控制器。
在本申请实施例中,目标区域包括第二控制器中任意一个或多个缓存区域,第一控制器和第二控制器为镜像对,如图1所示的例子,控制器A发生故障,则第二控制器为控制器A所属镜像对中的另一台控制器,即控制器B。在实际应用中,每轮次迁移的粒度可以是一个逻辑单元,即目标区域可以是第二控制器中的一个逻辑单元;每轮次迁移的粒度也可以是全部的缓存数据块,即目标区域可以是第二控制器中全部的缓存区域,实际应用中,可以根据具体需要设定,本申请实施例对此不进行限定,这里也不再一一列举。第一标签用于标记目标区域内未写入第三控制器的数据,实际应用中,第一标签可以是“待镜像”。
需要说明的是,第三控制器为控制器集群中正常工作的控制器,且第三控制器与第一控制器不属于同一镜像对。可以理解的是,第三控制器是除第二控制器之外控制集群中正常工作的控制器,如图1中的控制器C。当控制器集群中对同一数据存储3个或3个以上的副本,即镜像对中存在3台或3台以上的控制器时,可以在镜像对中一台控制器发生故障时执行步骤S201,可以在镜像对中只剩下一台正常工作的控制器时才执行步骤S201,这里不进行限定。还需要说明的是,当执行步骤S201时,镜像对中存在多台正常工作的镜像对时,第二控制器可以是这些正常工作的控制器中的任意一台。
在本申请实施例一些可能的实现方式中,第三控制器的确定方法至少存在以下三种可能的实现方式:
第一种可能的实现方式,可以通过查找与第二控制器对应的配置列表,将配置列表中任意一个正常工作的控制器确定为第三控制器。
在本申请实施例中,配置列表中可以记录有可以与其对应控制器进行数据缓存镜像的其他控制器,如图1所示的控制器集群中,控制器A的配置列表中记录有控制器B和控制器C,控制器B的配置列表中记录有控制器A和控制器C,控制器C的配置列表中记录有控制器A和控制器B。配置列表中还可以记录有用户配置的可以与其对应控制器进行数据缓存镜像的其他控制器,这里不再一一列举。当第二控制器为控制器B时,其配置列表中记录有控制器A和控制器C,其中控制器C为正常工作的控制器,即确定控制器C为第三控制器。
第二种可能的实现方式,可以通过查找与第二控制器对应的配置列表,将配置列表中正常工作且负载最小的控制器确定为第三控制器;
对配置列表的说明与上面的类似,这里不再赘述。当配置列表中具有多个正常工作的控制器时,将其中负载最小的控制器确定为第三控制器可以起到负载均衡的效果。
第三种可能的实现方式,可以通过将控制器集群中负载最小的控制器确定为第三控制器。
与第二种可能的实现方式类似,将控制器集群中负载最小且正常工作的控制器确定为第三控制器可以起到负载均衡的效果。
S202:在遍历到状态标记为第一标签的第一目标数据后,将第一目标数据镜像至第三控制器的缓存区域,并将目标区域中第一目标数据的状态标记删除或者修改为第二标签。
可以理解的是,当遍历到状态标记为第一标签的数据时,该数据即为第一目标数据。也就是说,第一目标数据是存储在第二控制器的缓存区域中,但不在第三控制器的缓存区域中的数据。将第一目标数据镜像迁移至第三控制器的缓存区域,可以在第一控制器故障时,保证控制器集群中仍然存储有第一目标数据的多个副本,使得第二控制器在接收到数据写入缓存后即应答请求也能够保证数据的可靠性,保证了系统的性能。
在本申请实施例中,第二标签用于标记目标区域内已写入第三控制器的数据。可以理解的是,在将第一目标数据镜像至第三控制器的缓存区域后将目标区域中第一目标数据的状态标记删除或者修改为第二标签,可以避免对同一数据反复镜像迁移。实际应用中,第二标签可以是“已镜像”。
这里还需要说明的是,由于第一控制器故障,第二控制器将缓存的数据迁移至第三控制器,则实际上是将第二控制器和第一控制器的镜像对修改为第二控制器和第三控制器的镜像对。则,在实际应用中,为了记录数据备份的情况,需要在相应的配置表中,将第二控制器和第一控制器的镜像对修改为第二控制器和第三控制器的镜像对,以便记录第二控制器接收数据的数据备份的存储位置。
为了使集群中控制器获知镜像对的修改情况及时准确的修改记录镜像对的配置表,在本申请实施例一些可能的实现方式中,该方法还可以包括:
当第一控制器发生故障时,在控制器集群中广播数据迁移信息;数据迁移信息包括第一控制器、目标区域和第三控制器的标识,以便控制器根据数据迁移信息修改记录镜像对的配置表;并当目标区域内的第一目标数据均已镜像至第三控制器时,在控制器集群中广播迁移完成通知。
在本申请实施例中,在控制器集群中的第一控制器发生故障时,集群管理控制器遍历与第一控制器为镜像对的第二控制器中目标区域内存储的数据,判断其中存储数据的状态标记是否为第一标签。在遍历到状态标记为第一标签的第一目标数据后,集群管理控制器将第一目标数据镜像至控制器集群中正常工作的第三控制器的缓存区域中,并将目标区域中的第一目标数据的状态标记删除或修改为第二标签,以表示该第一目标数据已完成迁移,在保证数据可靠性的基础上,使得控制器集群中正常工作的服务器仍然可以在缓存接收到的数据后及时应答请求,保证了系统的处理性能。
参见图3,该图为本申请实施例提供的另一种数据备份方法的流程示意图。
在本申请实施例一些可能的实现方式中,在图1的基础上,步骤S201之前还可以包括:
S301:当控制器集群中的第一控制器发生故障时,遍历目标区域中存储的数据,判断数据的状态标记是否为第三标签;
在本申请实施例中,第三标签用于标记缓存区域中未写入存储介质的数据。实际应用中,第三标签可以是“脏”。
S302:在遍历到状态标记为第三标签的第二目标数据后,将第二目标数据的数据标签修改为第一标签。
可以理解的是,当遍历到状态标记为第三标签的数据时,该数据即为第二目标数据,也就是说,第二目标数据是第二控制器的缓存区域中未写入存储介质的数据。当数据已写入存储介质中时,可以将数据的状态标签修改为第四标签,以表示该数据已放入非易失性存储区域。实际应用中,第四标签可以是“非脏”。在本申请实施例中,将第二目标数据修改的数据标签修改为第一标签,可以标记出目标区域中需要镜像迁移至第三控制器的数据,以进行数据的多副本备份。
则,在将第一目标数据镜像至第三控制器的缓存区域之后还可以包括:
S303:将第三控制器中第一目标数据的状态标记修改为第三标签。
在将第一目标数据镜像迁移至第三控制器中后,将第三控制器中第一目标数据的状态标记修改为第三标签可以标记出第三控制器中需要写入存储介质的数据,以便第三控制器根据状态标签对数据进行相应的写入操作。
实际应用中,在数据迁移过程中主机仍然会持续向控制器集群中的控制器写入数据,控制器接收到的数据写入缓存后,该数据的数据标签即为第三标签。为了避免新写入数据未及时备份,在本申请实施例一些可能的实现方式中,如图4所示,该方法还可以包括:
S401:接收数据写入命令。
在本申请实施例中,数据写入命令可以是由主机发送至集群管理控制器或第二控制器的,这里不进行限定。数据写入命令携带有待写入数据。
S402:判断目标区域内是否存在与待写入数据对应的第一目标数据;若是,则执行步骤S403。
在本申请实施例中,与待写入数据对应的第一目标数据可以是数据标签与待写入数据相同或相关的数据,也可以是与待写入数据的缓存地址相同或相关的数据,作为一个示例,待写入数据及其对应的第一目标数据可视为同一数据的新旧两个版本。实际应用中,可以根据数据的标签、名称或者数据的缓存地址判断目标区域内是否存在与待写入数据对应的第一目标数据。
S403:将待写入数据和与其对应的第一目标数据合并后,更新与待写入数据对应的第一目标数据,以便将更新后的第一目标数据镜像至第三控制器的缓存区域。
可以理解的是,将待写入数据和与其对应的第一目标数据合并可以是以待写入数据覆盖该第一目标数据,也可以是将二者存储的数据综合,这里不进行限定。将更新后的第一目标数据镜像至第三控制器的缓存区域可以保证第三控制器对最新数据进行备份存储,保证数据的可靠性和准确性。此外,还无需将新旧数据同时镜像至第三控制器,避免了同一数据的重复镜像,提高了数据备份的效率。需要说明的是,步骤S401-S403可以由集群管理控制器执行也可以由第二控制器执行,本申请实施例对此不进行限定。
基于上述实施例提供的数据备份方法,本申请实施例还提供了一种数据备份装置。
参见图5,该图提供了一种本申请实施例提供的数据备份装置的结构示意图。
本申请实施例提供的数据备份装置,应用于集群管理控制器,集群管理控制器为控制器集群中任意一台未发生故障的控制器,控制器集群包括至少三台控制器;该装置包括:第一判断模块100、数据镜像模块200和状态修改模块300;
第一判断模块100,用于当控制器集群中的第一控制器发生故障时,遍历目标区域中存储的数据,判断数据的状态标记是否为第一标签;目标区域包括第二控制器中任意一个或多个缓存区域,第一控制器和第二控制器为镜像对,第一标签用于标记目标区域内未写入第三控制器的数据,第三控制器为控制器集群中正常工作的控制器,且第三控制器和第一控制器不属于同一镜像对
数据镜像模块200,用于在第一判断模块遍历到状态标记为第一标签的第一目标数据后,将第一目标数据镜像至第三控制器的缓存区域;
状态修改模块300,用于在数据镜像模块将第一目标数据镜像至第三控制器的缓存区域后,将目标区域中第一目标数据的状态标记删除或者修改为第二标签;第二标签用于标记目标区域内已写入第三控制器的数据。
在本申请实施例一些可能的实现方式中,该装置还可以包括:第二判断模块;
第二判断模块,用于遍历目标区域中存储的数据,判断数据的状态标记是否为第三标签;
状态修改模块,还用于在第二判断模块遍历到状态标记为第三标签的第二目标数据后,将第二目标数据的数据标签修改为第一标签;第三标签用于标记缓存区域中未写入存储介质的数据;还用于将第三控制器中的第一目标数据的状态标记修改为第三标签。
在本申请实施例一些可能的实现方式中,该装置还可以包括:命令接收模块、第三判断模块和数据合并模块;
命令接收模块,用于接收数据写入命令;数据写入命令携带有待写入数据;
第三判断模块,用于判断目标区域内是否存在与待写入数据对应的第一目标数据;
数据合并模块,用于在第三判断模块的判断结果为是时,将待写入数据和与其对应的第一目标数据合并后,更新与待写入数据对应的第一目标数据,以便将更新后的第一目标数据镜像至第三控制器的缓存区域。
在本申请实施例一些可能的实现方式中,该装置还可以包括:第一确定模块、第二确定模块和第三确定模块中的任意一个;
第一确定模块,用于查找与第二控制器对应的配置列表,将配置列表中任意一个正常工作的控制器确定为第三控制器;
第二确定模块,用于查找与第二控制器对应的配置列表,将配置列表中正常工作且负载最小的控制器确定为第三控制器;
第三确定模块,用于将控制器集群中负载最小且正常工作的控制器确定为第三控制器。
在本申请实施例一些可能的实现方式中,该装置还可以包括:消息广播模块;
消息广播模块,用于当第一控制器发生故障时,在控制器集群中广播数据迁移信息;还用于当目标区域内的第一目标数据均已镜像至第三控制器时,在控制器集群中广播迁移完成通知;数据迁移信息包括第一控制器、目标区域和第三控制器的标识。
在本申请实施例中,在控制器集群中的第一控制器发生故障时,集群管理控制器遍历与第一控制器为镜像对的第二控制器中目标区域内存储的数据,判断其中存储数据的状态标记是否为第一标签。在遍历到状态标记为第一标签的第一目标数据后,集群管理控制器将第一目标数据镜像至控制器集群中正常工作的第三控制器的缓存区域中,并将目标区域中的第一目标数据的状态标记删除或修改为第二标签,以表示该第一目标数据已完成迁移,在保证数据可靠性的基础上,使得控制器集群中正常工作的服务器仍然可以在缓存接收到的数据后及时应答请求,保证了系统的处理性能。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者控制器不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者控制器所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者控制器中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。
Claims (10)
1.一种数据备份方法,其特征在于,应用于集群管理控制器,所述集群管理控制器为控制器集群中任意一台未发生故障的控制器,所述控制器集群包括至少三台控制器;所述方法包括:
当所述控制器集群中的第一控制器发生故障时,遍历目标区域中存储的数据,判断数据的状态标记是否为第一标签;所述目标区域包括第二控制器中任意一个或多个缓存区域,所述第一控制器和所述第二控制器为镜像对,所述第一标签用于标记所述目标区域内未写入第三控制器的数据,所述第三控制器为所述控制器集群中正常工作的控制器,且所述第三控制器和所述第一控制器不属于同一镜像对;
在遍历到状态标记为第一标签的第一目标数据后,将所述第一目标数据镜像至第三控制器的缓存区域,并将所述目标区域中第一目标数据的状态标记删除或者修改为第二标签;所述第二标签用于标记所述目标区域内已写入所述第三控制器的数据。
2.根据权利要求1所述的方法,其特征在于,所述遍历目标区域中存储的数据,判断数据的状态标记是否为第一标签,之前还包括:
遍历所述目标区域中存储的数据,判断数据的状态标记是否为第三标签;所述第三标签用于标记缓存区域中未写入存储介质的数据;
在遍历到状态标记为第三标签的第二目标数据后,将所述第二目标数据的数据标签修改为所述第一标签;
所述将所述第一目标数据镜像至第三控制器的缓存区域,之后还包括:
将所述第三控制器中所述第一目标数据的状态标记修改为所述第三标签。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收数据写入命令;所述数据写入命令携带有待写入数据;
判断所述目标区域内是否存在与所述待写入数据对应的第一目标数据;
若是,则将所述待写入数据和与其对应的第一目标数据合并后,更新与所述待写入数据对应的第一目标数据,以便将更新后的第一目标数据镜像至所述第三控制器的缓存区域。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述第三控制器通过以下步骤确定:
查找与所述第二控制器对应的配置列表,将所述配置列表中任意一个正常工作的控制器确定为所述第三控制器;
或者,
查找与所述第二控制器对应的配置列表,将所述配置列表中正常工作且负载最小的控制器确定为所述第三控制器;
或者,
将所述控制器集群中负载最小且正常工作的控制器确定为所述第三控制器。
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
当所述第一控制器发生故障时,在所述控制器集群中广播数据迁移信息;所述数据迁移信息包括所述第一控制器、所述目标区域和所述第三控制器的标识;
当所述目标区域内的第一目标数据均已镜像至所述第三控制器时,在所述控制器集群中广播迁移完成通知。
6.一种数据备份装置,其特征在于,应用于集群管理控制器,所述集群管理控制器为控制器集群中任意一台未发生故障的控制器,所述控制器集群包括至少三台控制器;所述装置包括:第一判断模块、数据镜像模块和状态修改模块;
所述第一判断模块,用于当所述控制器集群中的第一控制器发生故障时,遍历目标区域中存储的数据,判断数据的状态标记是否为第一标签;所述目标区域包括第二控制器中任意一个或多个缓存区域,所述第一控制器和所述第二控制器为镜像对,所述第一标签用于标记所述目标区域内未写入第三控制器的数据,所述第三控制器为所述控制器集群中正常工作的控制器,且所述第三控制器和所述第一控制器不属于同一镜像对;
所述数据镜像模块,用于在所述第一判断模块遍历到状态标记为第一标签的第一目标数据后,将所述第一目标数据镜像至所述第三控制器的缓存区域;
所述状态修改模块,用于在所述数据镜像模块将所述第一目标数据镜像至第三控制器的缓存区域后,将所述目标区域中第一目标数据的状态标记删除或者修改为第二标签;所述第二标签用于标记所述目标区域内已写入所述第三控制器的数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:第二判断模块;
所述第二判断模块,用于遍历所述目标区域中存储的数据,判断数据的状态标记是否为第三标签;
所述状态修改模块,还用于在所述第二判断模块遍历到状态标记为第三标签的第二目标数据后,将所述第二目标数据的数据标签修改为所述第一标签;所述第三标签用于标记缓存区域中未写入存储介质的数据;还用于将所述第三控制器中的所述第一目标数据的状态标记修改为所述第三标签。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:命令接收模块、第三判断模块和数据合并模块;
所述命令接收模块,用于接收数据写入命令;所述数据写入命令携带有待写入数据;
所述第三判断模块,用于判断所述目标区域内是否存在与所述待写入数据对应的第一目标数据;
所述数据合并模块,用于在所述第三判断模块的判断结果为是时,将所述待写入数据和与其对应的第一目标数据合并后,更新与所述待写入数据对应的第一目标数据,以便将更新后的第一目标数据镜像至第三控制器的缓存区域。
9.根据权利要求6-8任意一项所述的装置,其特征在于,所述装置还包括:第一确定模块、第二确定模块和第三确定模块中的任意一个;
所述第一确定模块,用于查找与所述第二控制器对应的配置列表,将所述配置列表中任意一个正常工作的控制器确定为所述第三控制器;
所述第二确定模块,用于查找与所述第二控制器对应的配置列表,将所述配置列表中正常工作且负载最小的控制器确定为所述第三控制器;
所述第三确定模块,用于将所述控制器集群中负载最小且正常工作的控制器确定为所述第三控制器。
10.根据权利要求6-8任意一项所述的装置,其特征在于,所述装置还包括:消息广播模块;
所述消息广播模块,用于当所述第一控制器发生故障时,在所述控制器集群中广播数据迁移信息;还用于当所述目标区域内的第一目标数据均已镜像至所述第三控制器时,在所述控制器集群中广播迁移完成通知;所述数据迁移信息包括所述第一控制器、所述目标区域和所述第三控制器的标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811232346.9A CN109344011B (zh) | 2018-10-22 | 2018-10-22 | 一种数据备份方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811232346.9A CN109344011B (zh) | 2018-10-22 | 2018-10-22 | 一种数据备份方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109344011A true CN109344011A (zh) | 2019-02-15 |
CN109344011B CN109344011B (zh) | 2022-03-08 |
Family
ID=65311525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811232346.9A Active CN109344011B (zh) | 2018-10-22 | 2018-10-22 | 一种数据备份方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109344011B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448735A (zh) * | 2021-07-16 | 2021-09-28 | 维沃移动通信有限公司 | 内存泄露处理方法、装置和电子设备 |
WO2023123872A1 (zh) * | 2021-12-27 | 2023-07-06 | 苏州浪潮智能科技有限公司 | 一种数据读取方法、装置及相关设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1291747A (zh) * | 2000-11-24 | 2001-04-18 | 李楠甍 | 高速缓存设备及其使用方法 |
US20070242604A1 (en) * | 2006-04-12 | 2007-10-18 | Hitachi Communication Technologies, Ltd. | Network system and node |
US20100049752A1 (en) * | 2008-08-22 | 2010-02-25 | Inventec Corporation | Dynamic word translation system and method thereof |
CN101957783A (zh) * | 2009-07-13 | 2011-01-26 | 升东网络科技发展(上海)有限公司 | 数据库异地备份系统及方法 |
CN102281332A (zh) * | 2011-08-31 | 2011-12-14 | 上海西本网络科技有限公司 | 分布式缓存阵列及其数据更新方法 |
CN102624911A (zh) * | 2012-03-14 | 2012-08-01 | 中山大学 | 一种基于集群的可视媒体存储系统 |
US20130304809A1 (en) * | 2006-12-26 | 2013-11-14 | Akamai Technologies, Inc. | Reducing TCP connection establishment time in an overlay network |
US20140074781A1 (en) * | 2010-05-26 | 2014-03-13 | International Business Machines Corporation | Synchronization of sequential access storage components with backup catalog |
CN103838646A (zh) * | 2014-02-13 | 2014-06-04 | 中国科学院国家天文台 | 一种用于地面应用大数据异地容灾备份的系统和方法 |
CN104679607A (zh) * | 2015-02-04 | 2015-06-03 | 山东省计算中心(国家超级计算济南中心) | 一种异构存储的容灾系统及方法 |
CN106502823A (zh) * | 2016-09-29 | 2017-03-15 | 北京许继电气有限公司 | 数据云备份方法和系统 |
CN107547595A (zh) * | 2016-06-27 | 2018-01-05 | 腾讯科技(深圳)有限公司 | 云资源调度系统、方法及装置 |
-
2018
- 2018-10-22 CN CN201811232346.9A patent/CN109344011B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1291747A (zh) * | 2000-11-24 | 2001-04-18 | 李楠甍 | 高速缓存设备及其使用方法 |
US20070242604A1 (en) * | 2006-04-12 | 2007-10-18 | Hitachi Communication Technologies, Ltd. | Network system and node |
US20130304809A1 (en) * | 2006-12-26 | 2013-11-14 | Akamai Technologies, Inc. | Reducing TCP connection establishment time in an overlay network |
US20100049752A1 (en) * | 2008-08-22 | 2010-02-25 | Inventec Corporation | Dynamic word translation system and method thereof |
CN101957783A (zh) * | 2009-07-13 | 2011-01-26 | 升东网络科技发展(上海)有限公司 | 数据库异地备份系统及方法 |
US20140074781A1 (en) * | 2010-05-26 | 2014-03-13 | International Business Machines Corporation | Synchronization of sequential access storage components with backup catalog |
CN102281332A (zh) * | 2011-08-31 | 2011-12-14 | 上海西本网络科技有限公司 | 分布式缓存阵列及其数据更新方法 |
CN102624911A (zh) * | 2012-03-14 | 2012-08-01 | 中山大学 | 一种基于集群的可视媒体存储系统 |
CN103838646A (zh) * | 2014-02-13 | 2014-06-04 | 中国科学院国家天文台 | 一种用于地面应用大数据异地容灾备份的系统和方法 |
CN104679607A (zh) * | 2015-02-04 | 2015-06-03 | 山东省计算中心(国家超级计算济南中心) | 一种异构存储的容灾系统及方法 |
CN107547595A (zh) * | 2016-06-27 | 2018-01-05 | 腾讯科技(深圳)有限公司 | 云资源调度系统、方法及装置 |
CN106502823A (zh) * | 2016-09-29 | 2017-03-15 | 北京许继电气有限公司 | 数据云备份方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448735A (zh) * | 2021-07-16 | 2021-09-28 | 维沃移动通信有限公司 | 内存泄露处理方法、装置和电子设备 |
WO2023123872A1 (zh) * | 2021-12-27 | 2023-07-06 | 苏州浪潮智能科技有限公司 | 一种数据读取方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109344011B (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7174438B2 (en) | Disk array apparatus | |
US7107486B2 (en) | Restore method for backup | |
US7571348B2 (en) | Storage system creating a recovery request point enabling execution of a recovery | |
US6694413B1 (en) | Computer system and snapshot data management method thereof | |
US9690666B1 (en) | Incremental backup operations in a transactional file system | |
US8661220B2 (en) | Computer system, and backup method and program for computer system | |
JP4115060B2 (ja) | 情報処理システムのデータ復旧方法及びディスクサブシステム | |
US9720786B2 (en) | Resolving failed mirrored point-in-time copies with minimum disruption | |
JP4267353B2 (ja) | データ移行支援システム、および、データ移行支援方法 | |
US20090216973A1 (en) | Computer system, storage subsystem, and data management method | |
US7681001B2 (en) | Storage system | |
CN108255414B (zh) | 固态硬盘访问方法及装置 | |
US7849264B2 (en) | Storage area management method for a storage system | |
CN109344011B (zh) | 一种数据备份方法及装置 | |
US8938641B2 (en) | Method and apparatus for synchronizing storage volumes | |
CN112748865B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
JP2006031446A (ja) | データ記憶装置、データ記憶方法およびデータ記憶プログラム | |
JP4741976B2 (ja) | ディスクアレイ装置およびデータ管理方法 | |
CN115827322A (zh) | 一种云存储数据全量灾备方法及系统 | |
CN115168367A (zh) | 一种大数据的数据配置方法和系统 | |
US20060026459A1 (en) | Method and apparatus for storing data | |
EP2799992A2 (en) | Storage system, control apparatus, control program, and control method | |
KR101966399B1 (ko) | 원자적 연산을 이용한 파일 시스템 저널링 장치 및 방법 | |
JP4204060B2 (ja) | 情報処理システムのデータ復旧方法及びディスクサブシステム | |
WO2019196157A1 (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 |