一种双控集群掉电后的数据恢复方法及相关装置制造方法及图纸

技术编号:23084802 阅读:12 留言:0更新日期:2020-01-11 01:03
本申请提供一种双控集群掉电后的数据恢复方法,包括:根据rootNode信息恢复元数据对象;恢复控制器掉电前保存至磁盘中的数据结构;将写模式设为LOGGING模式,确定所述双控集群的集群主节点;控制所述集群主节点根据所述数据结构将掉电前内存中数据下刷至所述磁盘中;将写模式设为CACHING模式,完成数据恢复。本申请提高了双控集群的数据安全可靠性,保证双控集群的高可用性。本申请还提供一种双控集群掉电后的数据恢复系统、计算机可读存储介质和一种双控服务器,具有上述有益效果。

A data recovery method and related devices after power failure of dual control cluster

【技术实现步骤摘要】
一种双控集群掉电后的数据恢复方法及相关装置
本申请涉及服务器集群领域,特别涉及一种双控集群掉电后的数据恢复方法及相关装置。
技术介绍
存储系统作为所有计算机相关业务的底层基础,对于其可靠性的要求十分高,因此在设计的时候需要考虑高可用性。一般通过集群方式来保障。一个集群中具有多个控制器(本专利以一个集群中有两个控制器为例),当其中的一个控制器发生故障无法提供服务时,存活的控制器需要接管故障控制器的所有业务,在该过程中上方业务不允许停止。元数据是一个全闪存储系统中最重要的部分,针对一般I/O业务,需要管理逻辑地址到物理地址(即LP)的映射关系,针对垃圾回收功能,需要管理物理地址到逻辑地址(即PL)针对支持的重删功能,则需要管理I/O的指纹值到物理地址(即HP)的映射关系。因为针对一个I/O,需要多次修改LP,PL,HP等操作,因此需要事务进行保证其原子性。对于元数据模块,又需要通过读缓存和写缓存进行性能提高,因此在考虑高可用性的时候流程十分复杂。
技术实现思路
本申请的目的是提供一种双控集群掉电后的数据恢复方法、系统、计算机可读存储介质和一种双控服务器,能够有效实现掉电数据保护。为解决上述技术问题,本申请提供一种双控集群掉电后的数据恢复方法,具体技术方案如下:根据rootNode信息恢复元数据对象;恢复控制器掉电前保存至磁盘中的数据结构;将写模式设为LOGGING模式,确定所述双控集群的集群主节点;控制所述集群主节点根据所述数据结构将掉电前内存中数据下刷至所述磁盘中;将写模式设为CACHING模式,完成数据恢复。其中,根据rootNode信息恢复元数据对象之前,还包括:从磁盘中的逻辑地址中划分预设区域作为ROOT区,用于保存rootNode信息;其中,所述rootNode信息包括LunID、CRC校验值和MagicNumber。其中,根据rootNode信息恢复元数据对象包括:遍历元数据区地址,读取所述ROOT区的两个内存副本到内存;对所述内存副本分别进行副本校验;所述副本校验包括利用所述CRC校验值进行CRC校验、利用所述MagicNumber进行MagicNumber校验,所述CRC校验和MagicNumber校验均校验通过视为所述内存副本校验通过;若两个所述内存副本均校验通过,选择时间戳在后的内存副本恢复元数据对象;若两个所述内存副本仅一个校验通过,选择校验通过的内存副本恢复元数据对象。其中,确定所述双控集群的集群主节点包括:根据掉电时间戳确定集群主节点;其中,掉电时间在后的控制器为所述集群主节点;若两个控制器的掉电时间戳相同,根据预先设置确定集群主节点。其中,控制所述集群主节点根据所述数据结构将掉电前内存中数据下刷至所述磁盘中之后,还包括:清除对端控制器待恢复数据。其中,将写模式设为CACHING模式之前,还包括:判断所述磁盘的写缓存中是否存在未完成请求;若是,将所述未完成请求进行事务重做并返回所述写缓存中执行。其中,在开始数据恢复之后,直至数据恢复完成之前,禁止业务I/O下发。本申请还提供一种双控集群掉电后的数据恢复系统,包括:第一恢复模块,用于根据rootNode信息恢复元数据对象;第二恢复模块,用于恢复控制器掉电前保存至磁盘中的数据结构;主节点确定模块,用于将写模式设为LOGGING模式,确定所述双控集群的集群主节点;数据下刷模块,用于控制所述集群主节点根据所述数据结构将掉电前内存中数据下刷至所述磁盘中;模式切换模块,用于将写模式设为CACHING模式,完成数据恢复。本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据恢复方法的步骤。本申请还提供一种双控服务器,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的数据恢复方法的步骤。本申请提供一种双控集群掉电后的数据恢复方法,包括:根据rootNode信息恢复元数据对象;恢复控制器掉电前保存至磁盘中的数据结构;将写模式设为LOGGING模式,确定所述双控集群的集群主节点;控制所述集群主节点根据所述数据结构将掉电前内存中数据下刷至所述磁盘中;将写模式设为CACHING模式,完成数据恢复。本申请在掉电后,利用rootNode信息恢复元数据对象,再先后恢复数据结构,在LOGGING模式下控制写缓存强制下刷数据,以恢复掉电时内存中的数据,在得到元数据对象和内存中的数据后,将写模式恢复至CACHING模式,以将双控集群设为双控镜像模式,保证在任一控制器掉电时利用另一控制器恢复数据,提高双控集群的数据安全可靠性,保证双控集群的高可用性。本申请还提供一种双控集群掉电后的数据恢复系统、计算机可读存储介质和一种双控服务器,具有上述有益效果,此处不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种双控集群掉电后的数据恢复方法的流程图;图2为本申请实施例所提供的一种双控集群掉电后的数据恢复系统结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。通常元数据内部模块主要划分为以下几个子模块:元数据对象模块:负责管理元数据对象,包括LUN信息,B+树的rootNode,负责ROOT区数据结构的初始化、更新、恢复等操作。事务模块:由于一个请求可以被分为多个子请求,因此需要事务机制进行原子性保证:若完成则全部完成,若其中一个子请求未完成则表示失败,需要进行回滚重做,已完成的子请求也需要进行取消操作。写缓存模块:写缓存模块负责将业务I/O的处理在内存中进行缓存,根据业务需要,分为WRITE_BACK模式和WRITE_THROUGH模式两种。在WRITE_BACK模式中,写缓存被划分一定的内存空间将事务模块发过来的操作进行缓存,并在达到一定条件的情况下才进行下刷。而在WRITE_THROUGH模式下则直接将事务过来的请求进行下刷。B+树模块:负责整个元数据模块的B+树操作算法实现,是整个元数据模块的交互核心。读缓存模块:负责提高读性能。查询模块:负责查询操作。需要说明的是,在系统重本文档来自技高网...

【技术保护点】
1.一种双控集群掉电后的数据恢复方法,其特征在于,包括:/n根据rootNode信息恢复元数据对象;/n恢复控制器掉电前保存至磁盘中的数据结构;/n将写模式设为LOGGING模式,确定所述双控集群的集群主节点;/n控制所述集群主节点根据所述数据结构将掉电前内存中数据下刷至所述磁盘中;/n将写模式设为CACHING模式,完成数据恢复。/n

【技术特征摘要】
1.一种双控集群掉电后的数据恢复方法,其特征在于,包括:
根据rootNode信息恢复元数据对象;
恢复控制器掉电前保存至磁盘中的数据结构;
将写模式设为LOGGING模式,确定所述双控集群的集群主节点;
控制所述集群主节点根据所述数据结构将掉电前内存中数据下刷至所述磁盘中;
将写模式设为CACHING模式,完成数据恢复。


2.根据权利要求1所述的数据恢复方法,其特征在于,根据rootNode信息恢复元数据对象之前,还包括:
从磁盘中的逻辑地址中划分预设区域作为ROOT区,用于保存rootNode信息;
其中,所述rootNode信息包括LunID、CRC校验值和MagicNumber。


3.根据权利要求2所述的数据恢复方法,其特征在于,根据rootNode信息恢复元数据对象包括:
遍历元数据区地址,读取所述ROOT区的两个内存副本到内存;
对所述内存副本分别进行副本校验;所述副本校验包括利用所述CRC校验值进行CRC校验、利用所述MagicNumber进行MagicNumber校验,所述CRC校验和MagicNumber校验均校验通过视为所述内存副本校验通过;
若两个所述内存副本均校验通过,选择时间戳在后的内存副本恢复元数据对象;
若两个所述内存副本仅一个校验通过,选择校验通过的内存副本恢复元数据对象。


4.根据权利要求1所述的数据恢复方法,其特征在于,确定所述双控集群的集群主节点包括:
根据掉电时间戳确定集群主节点;
其中,掉电时间在后的控制器为所述集群主节点;
若两个...

【专利技术属性】
技术研发人员:王新忠
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1