一种多控存储之间的缓存镜像方法及装置与流程

文档序号:12270802阅读:209来源:国知局
一种多控存储之间的缓存镜像方法及装置与流程
本发明涉及存储
技术领域
,更具体地说,涉及一种多控存储之间的缓存镜像方法及装置。
背景技术
:随着业务的发展需要,尤其在云计算和大数据浪潮的推动下,各行业IT建设呈现出大集中、大整合、资源互通的建设趋势,存储不仅仅是数据的高效可靠载体,而且承担着信息安全保障的作用,其地位更加突显。由单控存储系统向双控存储系统甚至多控存储系统的改进是提高存储可靠性的重要技术。在多控存储的大背景下,多控存储系统之间的缓存镜像算法就尤为重要。以四控为例说明现有技术中实现多空存储系统之间的缓存镜像算法:控制器1和控制器2为一对,控制器3和控制器4为一对,每对控制器的缓存互相镜像。但是,当控制器1出现故障时,控制器2的缓存就无法实现镜像,因此控制器2便成为一个隐患;进而导致多控存储系统的数据可靠性较差。综上所述,现有技术中提供的上述技术方案存在多控存储系统的数据可靠性较差的问题。技术实现要素:本发明的目的是提供一种多控存储之间的缓存镜像方法及装置,以解决现有技术中提供的技术方案中存在的多控存储系统的数据可靠性较差的问题。为了实现上述目的,本发明提供如下技术方案:一种多控存储之间的缓存镜像方法,包括:将多控存储系统中每个控制器的控制器缓存分别划分为N个缓存条带,其中,N为不小于2的偶数;设置每个所述控制器缓存的每个缓存条带均与其他至少两个控制器缓存的对应缓存条带互相镜像;如果任一控制器出现故障,则将与对应控制器缓存的全部缓存条带互相镜像的属于不同其他控制器缓存的缓存条带设置为互相镜像。优选的,还包括:如果任一控制器出现故障,则将与对应控制器缓存的全部缓存条带互相镜像的属于其他控制器缓存的缓存条带中的镜像数据刷写到硬盘中。优选的,设置每个所述控制器缓存的每个缓存条带均与其他至少两个控制器缓存的对应缓存条带互相镜像,包括:如果N为大于2的偶数,则设置每个控制器缓存的第一个缓存条带与一个其他控制器缓存的第一个缓存条带互相镜像,每个控制器缓存的第二个缓存条带与一个其他控制器缓存的第二个缓存条带互相镜像,且第一个缓存条带互相镜像的两个控制器缓存第二个缓存条带并不互相镜像;设置每个控制器缓存的剩余缓存条带中第n-1个缓存条带与与该控制器缓存的第一个缓存条带互相镜像的控制器缓存的第n-1个缓存条带互相镜像,第n个缓存条带与与该控制器缓存的第二个缓存条带互相镜像的控制器缓存的第n个缓存条带互相镜像,其中,n为不大于N的偶数。优选的,将与对应控制器缓存的全部缓存条带互相镜像的属于不同其他控制器缓存的缓存条带设置为互相镜像,包括:按照预先为所述控制器排序所得的编号,将编号邻近的两个控制器的控制器缓存中与出现故障的控制器的控制器缓存的缓存条带互相镜像的缓存条带设置为互相镜像。优选的,将多控存储系统中每个控制器的控制器缓存分别划分为N个缓存条带,包括:将多控存储系统中每个控制器的控制器缓存分别划分为N个空间相同的缓存条带。一种多控存储之间的缓存镜像装置,包括:划分模块,用于将多控存储系统中每个控制器的控制器缓存分别划分为N个缓存条带,其中,N为不小于2的偶数;第一设置模块,用于设置每个所述控制器缓存的每个缓存条带均与其他至少两个控制器缓存的对应缓存条带互相镜像;第二设置模块,用于如果任一控制器出现故障,则将与对应控制器缓存的全部缓存条带互相镜像的属于不同其他控制器缓存的缓存条带设置为互相镜像。优选的,还包括:刷写模块,用于如果任一控制器出现故障,则将与对应控制器缓存的全部缓存条带互相镜像的属于其他控制器缓存的缓存条带中的镜像数据刷写到硬盘中。优选的,第一设置模块包括:第一设置单元,用于:如果N为大于2的偶数,则设置每个控制器缓存的第一个缓存条带与一个其他控制器缓存的第一个缓存条带互相镜像,每个控制器缓存的第二个缓存条带与一个其他控制器缓存的第二个缓存条带互相镜像,且第一个缓存条带互相镜像的两个控制器缓存第二个缓存条带并不互相镜像;设置每个控制器缓存的剩余缓存条带中第n-1个缓存条带与与该控制器缓存的第一个缓存条带互相镜像的控制器缓存的第n-1个缓存条带互相镜像,第n个缓存条带与与该控制器缓存的第二个缓存条带互相镜像的控制器缓存的第n个缓存条带互相镜像,其中,n为不大于N的偶数。优选的,第二设置模块包括:第二设置单元,用于按照预先为所述控制器排序所得的编号,将编号邻近的两个控制器的控制器缓存中与出现故障的控制器的控制器缓存的缓存条带互相镜像的缓存条带设置为互相镜像。优选的,划分模块包括:划分单元,用于将多控存储系统中每个控制器的控制器缓存分别划分为N个空间相同的缓存条带。本发明提供了一种多控存储之间的缓存镜像方法及装置,其中该方法包括:将多控存储系统中每个控制器的控制器缓存分别划分为N个缓存条带,其中,N为不小于2的偶数;设置每个所述控制器缓存的每个缓存条带均与其他至少两个控制器缓存的对应缓存条带互相镜像;如果任一控制器出现故障,则将与对应控制器缓存的全部缓存条带互相镜像的属于不同其他控制器缓存的缓存条带设置为互相镜像。本申请公开的上述技术特征中,通过将控制器缓存划分为N个缓存条带,并为每个控制器缓存的每个缓存条带均分配至少两个其他控制器缓存的缓存条带互相镜像,从而在任一控制器故障时,能够通过将与出现故障的控制器对应的缓存条带互相镜像的属于不同其他控制器缓存的缓存条带设置为互相镜像,从而在任一控制器出现故障后,其他控制器的控制器缓存仍然能够通过缓存条带的两两组合互相镜像实现控制器缓存的互相镜像,保证了多控存储系统中数据的可靠性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本发明实施例提供的一种多控存储之间的缓存镜像方法的流程图;图2为本发明实施例提供的一种多控存储之间的缓存镜像装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图1,其示出了本发明实施例提供的一种多控存储之间的缓存镜像方法的流程图,可以包括以下步骤:S11:将多控存储系统中每个控制器的控制器缓存分别划分为N个缓存条带,其中,N为不小于2的偶数。其中,N可以根据实际需要进行设定。通过上述划分,每个控制器的控制器缓存均包括N个缓存条带,简单来说,缓存条带可以理解为缓存区域,对应的上述划分可以理解为将每个控制器的控制器缓存分别划分为N个缓存区域。另外需要说明的是,本发明实施例提供的技术方案中所涉及的多控存储系统一般指包括至少3个控制器的存储系统。S12:设置每个所述控制器缓存的每个缓存条带均与其他至少两个控制器缓存的对应缓存条带互相镜像。其中,镜像是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。本申请中不同缓存条带互相镜像,即每个缓存条带缓存自身数据的同时也缓存互相镜像的另一个缓存条带的数据,从而实现数据备份。需要说明的是,每个控制器缓存的每个缓存条带均与其他至少两个控制器缓存的对应缓存条带互相镜像,即每个控制器缓存的每个缓存条带均在其他控制器缓存上具有至少两个对应的数据备份,举例说明,N为2即缓存条带的数量为2且控制器的数量为4时,就每个控制器的第一个缓存条带,可以设置控制器1和控制器2对应的第一个缓存条带互相镜像,控制器3和控制器4对应的第一个缓存条带互相镜像,就每个控制器的第二个缓存条带,可以设置控制器2和控制3对应的第二个缓存条带互相镜像,控制器1和控制器4的第二个缓存条带互相镜像,由此,每个控制器的每个缓存条带均具有两个互相镜像的与其他控制器对应的缓存条带。S13:如果任一控制器出现故障,则将与对应控制器缓存的全部缓存条带互相镜像的属于不同其他控制器缓存的缓存条带设置为互相镜像。如果任一控制器出现故障,则该控制器的控制器缓存无法再与其他控制器缓存互相镜像,因此,为了保证其他控制器缓存能够存在互相镜像的缓存,确定出出现故障的控制器对应缓存条带在其他控制器缓存中互相镜像的缓存条带,并将属于不同控制器的任两个确定出的上述缓存条带互相镜像。举例说明,N为2即缓存条带的数量为2且控制器的数量为4时,就每个控制器的第一个缓存条带,可以设置控制器1和控制器2对应的第一个缓存条带互相镜像,控制器3和控制器4对应的第一个缓存条带互相镜像,就每个控制器的第二个缓存条带,可以设置控制器2和控制3对应的第二个缓存条带互相镜像,控制器1和控制器4的第二个缓存条带互相镜像,当控制器出现故障时,控制器2的第一个缓存条带和控制器4的第二个缓存条带被设置为互相镜像。本申请公开的上述技术特征中,通过将控制器缓存划分为N个缓存条带,并为每个控制器缓存的每个缓存条带均分配至少两个其他控制器缓存的缓存条带互相镜像,从而在任一控制器故障时,能够通过将与出现故障的控制器对应的缓存条带互相镜像的属于不同其他控制器缓存的缓存条带设置为互相镜像,从而在任一控制器出现故障后,其他控制器的控制器缓存仍然能够通过缓存条带的两两组合互相镜像实现控制器缓存的互相镜像,保证了多控存储系统中数据的可靠性。另外,本发明实施例提供的上述技术方案缓存利用率能够达到50%,即本申请公开的上述技术特征能够在不影响缓存利用率的前提下保证系统中数据的可靠性。本发明实施例提供的一种多控存储之间的缓存镜像方法,还可以包括:如果任一控制器出现故障,则将与对应控制器缓存的全部缓存条带互相镜像的属于其他控制器缓存的缓存条带中的镜像数据刷写到硬盘中。当任一控制器出现故障后,确定出与该控制器的控制器缓存的全部缓存条带互相镜像的属于其他控制器缓存的缓存条带,并将这些条带中对出现故障的控制器对应控制器缓存中缓存条带镜像得到的数据刷写到硬盘中进行保存,以避免数据丢失,便于实现后期对这部分数据的恢复,进一步提高了系统中数据的可靠性。本发明实施例提供的一种多控存储之间的缓存镜像方法,设置每个所述控制器缓存的每个缓存条带均与其他至少两个控制器缓存的对应缓存条带互相镜像,可以包括:如果N为大于2的偶数,则设置每个控制器缓存的第一个缓存条带与一个其他控制器缓存的第一个缓存条带互相镜像,每个控制器缓存的第二个缓存条带与一个其他控制器缓存的第二个缓存条带互相镜像,且第一个缓存条带互相镜像的两个控制器缓存第二个缓存条带并不互相镜像;设置每个控制器缓存的剩余缓存条带中第n-1个缓存条带与与该控制器缓存的第一个缓存条带互相镜像的控制器缓存的第n-1个缓存条带互相镜像,第n个缓存条带与与该控制器缓存的第二个缓存条带互相镜像的控制器缓存的第n个缓存条带互相镜像,其中,n为不大于N的偶数。在N为大于2的偶数时,对应于每个控制器缓存的第一个缓存条带至第N个缓存条带的互相镜像的组合可以根据实际需要进行设定,只要能够满足每个所述控制器缓存的每个缓存条带均与其他至少两个控制器缓存的对应缓存条带互相镜像即可。在一种具体实施方式中,可以按照上述步骤实现,以N为4控制器的数量也为4为例进行说明,如表1所示,控制器1的第一个缓存条带和控制2的第一个缓存条带互相镜像,控制器3的第一个缓存条带和控制器4的第一个缓存条带互相镜像,控制器1的第二个缓存条带和控制器4的第二个缓存条带互相镜像,控制器2的第二个缓存条带和控制器3的第二个缓存条带互相镜像,每个控制器的第三个缓存条带的互相镜像组合与每个控制器的第一个缓存条带的互相镜像组合相同,每个控制器的第四个缓存条带的互相镜像组合与每个控制器的第二个缓存条带的互相镜像组合相同,即控制器1的第三个缓存条带和控制2的第三个缓存条带互相镜像,控制器3的第三个缓存条带和控制器4的第三个缓存条带互相镜像,控制器1的第四个缓存条带和控制器4的第四个缓存条带互相镜像,控制器2的第四个缓存条带和控制器3的第四个缓存条带互相镜像,表中除控制器1至控制器4之外的其他数字代表互相镜像组合,如数字1和数字1代表的区域互相镜像,数字7和数字7代表的区域互相镜像,以此类推。由此,只需要对每个控制器的前两个缓存条带进行互相镜像组合,其余均可按照前两个缓存条带的互相镜像组合实现互相镜像组合,简单省时。表1控制器1控制器2控制器3控制器41122433455668778本发明实施例提供的一种多控存储之间的缓存镜像方法,将与对应控制器缓存的全部缓存条带互相镜像的属于不同其他控制器缓存的缓存条带设置为互相镜像,可以包括:按照预先为所述控制器排序所得的编号,将编号邻近的两个控制器的控制器缓存中与出现故障的控制器的控制器缓存的缓存条带互相镜像的缓存条带设置为互相镜像。其中,需要说明的是,上述所提到的编号邻近是指存在与出现故障的控制器的控制器缓存的缓存条带互相镜像的缓存条带的控制器缓存对应控制器中编号邻近,以表1为例进行说明,当控制器1出现故障时,不同控制器的当前状态如表2所示,其中,空出的区域即为其他控制器中与控制器1的缓存条带互相镜像的缓存条带。其中,控制器2和控制器4均存在与控制器1的缓存条带互相镜像的缓存条带,因此,控制器2和控制器4即为编号邻近,由此,为表2中空出的区域进行互相镜像组合,如表3所示。再次举例说明上述编号邻近,如控制器的数量为8个,当控制器1出现故障时,如果控制器2和控制器3均存在与控制器1的缓存条带互相镜像的缓存条带,则说明控制器1和控制器2编号邻近,如果控制器2和控制器5均存在与控制器1的缓存条带互相镜像的缓存条带,而控制器3和控制器4均不存在,则说明控制器2和控制器5互相镜像。由此,通过这种简单易实现的组合原则实现了任一控制器出现故障时其他不同控制器缓存的缓存条带之间的互相镜像。当然,也可以根据实际需要进行其他设定,均在本发明的保护范围之内。表2表3本发明实施例提供的一种多控存储之间的缓存镜像方法,将多控存储系统中每个控制器的控制器缓存分别划分为N个缓存条带,可以包括:将多控存储系统中每个控制器的控制器缓存分别划分为N个空间相同的缓存条带。通过将缓存条带设置成空间相同的缓存条带,能够使得其对于数据具有相同的存储功能,便于对其实现统一管理和控制。本发明实施例还提供了一种多控存储之间的缓存镜像装置,如图2所示,可以包括:划分模块11,用于将多控存储系统中每个控制器的控制器缓存分别划分为N个缓存条带,其中,N为不小于2的偶数;第一设置模块12,用于设置每个所述控制器缓存的每个缓存条带均与其他至少两个控制器缓存的对应缓存条带互相镜像;第二设置模块13,用于如果任一控制器出现故障,则将与对应控制器缓存的全部缓存条带互相镜像的属于不同其他控制器缓存的缓存条带设置为互相镜像。本发明实施例提供的一种多控存储之间的缓存镜像装置,还可以包括:刷写模块,用于如果任一控制器出现故障,则将与对应控制器缓存的全部缓存条带互相镜像的属于其他控制器缓存的缓存条带中的镜像数据刷写到硬盘中。本发明实施例提供的一种多控存储之间的缓存镜像装置,第一设置模块可以包括:第一设置单元,用于:如果N为大于2的偶数,则设置每个控制器缓存的第一个缓存条带与一个其他控制器缓存的第一个缓存条带互相镜像,每个控制器缓存的第二个缓存条带与一个其他控制器缓存的第二个缓存条带互相镜像,且第一个缓存条带互相镜像的两个控制器缓存第二个缓存条带并不互相镜像;设置每个控制器缓存的剩余缓存条带中第n-1个缓存条带与与该控制器缓存的第一个缓存条带互相镜像的控制器缓存的第n-1个缓存条带互相镜像,第n个缓存条带与与该控制器缓存的第二个缓存条带互相镜像的控制器缓存的第n个缓存条带互相镜像,其中,n为不大于N的偶数。本发明实施例提供的一种多控存储之间的缓存镜像装置,第二设置模块可以包括:第二设置单元,用于按照预先为所述控制器排序所得的编号,将编号邻近的两个控制器的控制器缓存中与出现故障的控制器的控制器缓存的缓存条带互相镜像的缓存条带设置为互相镜像。本发明实施例提供的一种多控存储之间的缓存镜像装置,划分模块可以包括:划分单元,用于将多控存储系统中每个控制器的控制器缓存分别划分为N个空间相同的缓存条带。本发明实施例提供的一种多控存储之间的缓存镜像装置中相关部分的说明请参见本发明实施例提供的一种多控存储之间的缓存镜像方法中对应部分的详细说明,在此不再赘述。对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1