一种多控制器间的缓存数据一致性保障方法

文档序号:6519929阅读:188来源:国知局
一种多控制器间的缓存数据一致性保障方法
【专利摘要】本发明提供一种多控制器间的缓存数据一致性保障方法,其具体保障过程为:设置至少两个控制器,进行缓存镜像操作:当其中一个控制器接收到写请求后,数据写入磁盘前先发送到另一控制器进行镜像,在第一控制器发生故障后,在进行资源接管前保证第二控制器中的镜像数据先被写入磁盘;当一控制器出现故障时,进行故障切换,即将出现故障的控制器转换为完好的控制器,当失效的控制器恢复后,则该控制器继续启动工作。该一种多控制器间的缓存数据一致性保障方法和现有技术相比,确保了多控制器系统意外故障时数据的一致性,做到无单点故障,保证数据的可靠性,安全性好,实用性强。
【专利说明】一种多控制器间的缓存数据一致性保障方法
【技术领域】
[0001]本发明涉及计算机信息【技术领域】,具体的说是一种多控制器间的缓存数据一致性保障方法。
【背景技术】
[0002]随着信息时代的到来,人们不仅要处理与日俱增的各种信息,更重要的是如何保存这些信息,为日常的工作和生活服务。计算机系统发展到今天,其应用的主流已经从科学计算变为泛计算应用,特别是信息服务,这种变化使得计算机在经历以CPU为中心和以内存为中心的阶段后,进入以I/o特别是存储系统为中心的阶段。在电子商务迅速发展的今天,产生的数据量正以100%的速度爆炸性增长,数据已经成为一种财富,由此给企业IT基础设施带来严峻的挑战,特别在高能物理研究、电视视频节目数字化存储、数字博物馆、地理信息系统、气象服务、生物信息学、数字图像处理、金融、电信等领域对大数据量的数据存取迫切需要一种安全有效地方法,而这一切的基础又是数据一致性。本发明设计了一种多控制器间的缓存数据一致性保障方法,有效地防止了多控制器中的任一控制器由于意外故障而导致缓存里的数据丢失,确保了系统意外故障时数据的一致性。

【发明内容】

[0003]本发明的技术任务是解决现有技术的不足,提供一种多控制器间的缓存数据一致性保障方法。
[0004]本发明的技术方案是按以下方式实现的,该一种多控制器间的缓存数据一致性保障方法,其具体保障过程为:
一、设置至少两个控制器,进行缓存镜像操作:当其中一个控制器接收到写请求后,数据写入磁盘前先发送到另一控制器进行镜像,在第一控制器发生故障后,在进行资源接管前保证第二控制器中的镜像数据先被写入磁盘;
二、当一控制器出现故障时,进行故障切换,即将出现故障的控制器转换为完好的控制器,当失效的控制器恢复后,则该控制器继续启动工作。
[0005]所述步骤一中的缓存镜像操作的详细过程为:对于写镜像操作,在数据写入本地控制器磁盘之前,会先发送消息到对端控制器,对端控制器接收到消息后启动RDMA操作,然后将数据保存,RDMA操作完成后会自动发送消息通知本地控制器,这时本地控制器进行写操作;当本地控制器的数据同步到本地磁盘完成后,再通过发送DEL消息到对端控制器将其缓存中的数据删除。
[0006]所述步骤二中的故障切换过程为:设置故障切换模块在多个节点间通过心跳消息来监测每个节点的状态,该故障切换模块由服务状态检测、任务接管回切和管理三部分组成,每个节点定期发送心跳消息给其它节点,通知对方正在工作,如果在规定的时间范围内没有接收到心跳信息,先进行一系列的监测确定对方是否失效,若失效,则启动接管、恢复进程将失效控制器的资源和任务全部接管,由接管的节点开始对外提供服务;当失效控制器恢复后,状态监测进程又会发送心跳信息,当接管节点接收到发送过来的心跳消息后,就立即释放占有的资源,将这些资源和服务在恢复的控制器上启动。
[0007]本发明与现有技术相比所产生的有益效果是:
本发明的一种多控制器间的缓存数据一致性保障方法通过在多个控制器间的实现缓存镜像技术和故障切换技术,解决了多控制器间高速缓存的数据一致性问题,在数据读写时,将数据同时写入到两个独立的内存区域中,相对于现有的内存访问只在单内存区域中进行的情况,有效地防止了多控制器中的任一控制器由于意外故障而导致缓存里的数据丢失的情况的发生,确保了多控制器系统意外故障时数据的一致性,做到无单点故障,在任一控制器发生故障的情况下仍可保证数据存取服务不中断,保证数据的可靠性,安全性好,实用性强,易于推广。
【专利附图】

【附图说明】
[0008]图1是本发明的硬件构架图。
【具体实施方式】
[0009]下面结合附图对本发明的一种多控制器间的缓存数据一致性保障方法作详细说明。
[0010]本发明提供一种多控制器间的缓存数据一致性保障方法,该方法所设计的系统体系结构包括:缓存镜像模块和故障切换模块,故障切换模块在多个节点间通过心跳消息来监测每个节点的状态,由服务状态检测,任务接管回切和管理部分组成,它和缓存镜像模块结合来维护数据的一致性,保证存储服务连续性。其具体保障过程为:
一、设置缓存镜像模块,设置两个控制器,即控制器A和控制器B:实现了控制器A接收到写请求后,数据写入磁盘前先发送到另一控制器B进行镜像,在控制器A发生故障后,在进行资源接管前保证控制器B中的镜像数据先被写入磁盘。
[0011]设置故障切换模块:在多个控制器节点间通过心跳消息来监测每个节点的状态,它由服务状态检测,任务接管回切和管理部分组成,它和缓存镜像模块结合来维护数据的一致性,保证存储服务连续性。当一控制器出现故障时,进行故障切换,即将出现故障的控制器转换为完好的控制器,当失效的控制器恢复后,则该控制器继续启动工作。
[0012]在该体系结构中,两个控制器同时保存一份相同的缓存数据。
[0013]其具体的硬件结构如附图1所示,若干控制器连接到交换背板上,该交换背板通过交换接口连接有若干本地的磁盘箱,在交换背板上还设置有管理故障切换动作的管理单
J Li ο
[0014]所述步骤一中的缓存镜像操作的详细过程为:对于写镜像操作,在数据写入本地控制器磁盘之前,会先发送消息到对端控制器,对端控制器接收到消息后启动RDMA操作,然后将数据保存,RDMA操作完成后会自动发送消息通知缓存镜像模块,这时本地控制器就可以进行写操作了。在后来的某个时刻,当本地控制器的数据同步到本地磁盘完成后,再通过发送DEL消息到对端控制器将其缓存中的数据删除。
[0015]所述步骤二中的故障切换过程为:故障切换模块在多个节点间通过心跳消息来监测每个节点的状态,每个节点定期发送心跳消息给其它节点,通知对方正在工作,如果在规定的时间范围内没有接收到心跳信息,先进行一系列的监测确定对方是否失效,若失效,则启动接管、恢复进程将失效控制器的资源和任务全部接管,由接管的节点开始对外提供服务。当失效控制器恢复后,状态监测进程又会发送心跳信息,当接管节点接收到发送过来的心跳消息后,就立即释放占有的资源,将这些资源和服务在恢复的控制器上启动,这样就智能地实现了故障时的高可用。
[0016]实施例:根据上述步骤,控制器节点A和控制器节点B详细的缓存数据保障过程为:
I)节点A收到客户端写数据后,首先将数据通过RDMA消息发送到节点B上进行镜像,然后将数据写入本地高速缓存中。
[0017]2)在节点A上将记录scsiid,数据长度Ien和在文件中偏移pos等信息结构插入链表中。
[0018]3)在节点B上,收到RDMA消息后,启动RDMA读操作,记录scsiid,数据长度和在文件中偏移,并将存储这些信息的结构体插入两个链表中:icm_mirrordatahead链表,用于收到消息“del”后删除;headn0de_S链表,用于接管时将同一个磁盘上的数据刷到后端
磁盘上。
[0019]4)节点A上的刷新线程定时将其上链表中数据刷到磁盘,然后发送RDMA消息给节点B,通知节点B将链表上的镜像记录删除并释放镜像的数据。
[0020]5)节点B收到RDMA消息后,根据scsiid, len, pos记录,从链表上删除并释放镜
像数据。
[0021]6)当节点A宕机,如果节点B在规定的时间范围内没有接收到节点A的心跳信息,先进行一系列的监测确定对方是否失效,若失效,则节点B启动接管、恢复进程将失效控制器的资源和任务全部接管,由接管的节点开始对外提供服务,同时节点B将链表中的数据刷到接管后的磁盘上,并将记录的数据从链表中删除。
[0022]至此,已经完整实现了一种多控制器间的缓存数据一致性保障方法。
[0023]除说明书所述的技术特征外,均为本专业技术人员的公知技术。
【权利要求】
1.一种多控制器间的缓存数据一致性保障方法,其特征在于,其具体保障过程为: 一、设置至少两个控制器,进行缓存镜像操作:当其中一个控制器接收到写请求后,数据写入磁盘前先发送到另一控制器进行镜像,在第一控制器发生故障后,在进行资源接管前保证第二控制器中的镜像数据先被写入磁盘; 二、当一控制器出现故障时,进行故障切换,即将出现故障的控制器转换为完好的控制器,当失效的控制器恢复后,则该控制器继续启动工作。
2.根据权利要求1所述的一种多控制器间的缓存数据一致性保障方法,其特征在于,所述步骤一中的缓存镜像操作的详细过程为:对于写镜像操作,在数据写入本地控制器磁盘之前,会先发送消息到对端控制器,对端控制器接收到消息后启动RDMA操作,然后将数据保存,RDMA操作完成后会自动发送消息通知本地控制器,这时本地控制器进行写操作;当本地控制器的数据同步到本地磁盘完成后,再通过发送DEL消息到对端控制器将其缓存中的数据删除。
3.根据权利要求1或2所述的一种多控制器间的缓存数据一致性保障方法,其特征在于,所述步骤二中的故障切换过程为:设置故障切换模块在多个节点间通过心跳消息来监测每个节点的状态,该故障切换模块由服务状态检测、任务接管回切和管理三部分组成,每个节点定期发送心跳消息给其它节点,通知对方正在工作,如果在规定的时间范围内没有接收到心跳信息,先进行一系列的监测确定对方是否失效,若失效,则启动接管、恢复进程将失效控制器的资源和任务全部接管,由接管的节点开始对外提供服务;当失效控制器恢复后,状态监测进程又会发送心跳信息,当接管节点接收到发送过来的心跳消息后,就立即释放占有的资源,将这些资源和服务在恢复的控制器上启动。
【文档编号】G06F12/08GK103605616SQ201310587503
【公开日】2014年2月26日 申请日期:2013年11月21日 优先权日:2013年11月21日
【发明者】韩东涛 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1