一种缓存镜像系统无写回的镜像和直写切换方法

文档序号:6519757阅读:245来源:国知局
一种缓存镜像系统无写回的镜像和直写切换方法
【专利摘要】本发明提供一种缓存镜像系统无写回的镜像和直写切换方法,其具体过程为:设置双控制器存储系统,该双控制器存储系统包括至少两个控制器,该控制器支持缓存镜像,支持写镜像和直写模式,不支持写回模式,支持写镜像和直写模式的切换,将双控制器置于写镜像模式下,当一台控制器宕机时,从另一台控制器上取得备份数据,保证了数据的可靠性;当只剩一台控制器时,存活的控制器进行写镜像模式和直写模式的转换。该一种缓存镜像系统无写回的镜像和直写切换方法和现有技术相比,可以通过写镜像和直写策略的切换,摒弃写回方式的,而不会导致掉盘,从而保证存储系统的可靠性,实用性强。
【专利说明】一种缓存镜像系统无写回的镜像和直写切换方法
【技术领域】
[0001]本发明涉及通信信息【技术领域】,具体的说是一种缓存镜像系统无写回的镜像和直写切换方法。
【背景技术】
[0002]缓存镜像技术是针对于存储处理出现故障时可能产生的缓存中的数据丢失而制定的解决方案,它将缓存数据同时保存在两个控制器上,系统工作时会自动对端控制器进行备份,是双控制器存储系统中常用的缓存保护技术,其基本原理就是在每个控制器上建立缓存镜像,保证双控制器间的缓存一致性。
[0003]在支持缓存镜像的存储系统中,读写模式除了传统的写回(WRITE_BACK)和直写(WRITE_THR0UGH)外,还需增加写镜像(WRITE_MIRR0R)模式,以支持缓存镜像的建立。
[0004]在双控制器的存储系统中,通过缓存镜像机制,建立数据备份,既保证数据的可靠性,有可以获得和写回相差无几的性能。在单控制器宕机时,可以通过直写模式保证数据的可靠性。那么,不可靠的写回方式就不是那么必要了。
[0005]但是,在实际的存储系统中,写策略的相互转换时,直接进行写镜像和写回的切换时,由于直写的效率较低,缓存中积累大量的数据不能刷新到磁盘,可能会造成写超时,从而导致掉盘。
[0006]本发明的目的就是提供一种无写回的镜像和直写切换方法,通过在写镜像和直写的切换中增加部分处理,解决可能导致的掉盘问题,从而可以实现无写回模式的支持缓存镜像的双控制器存储系统。

【发明内容】

[0007]本发明的技术任务是解决现有技术的不足,提供一种缓存镜像系统无写回的镜像和直写切换方法。
[0008]本发明的技术方案是按以下方式实现的,该一种缓存镜像系统无写回的镜像和直写切换方法,其具体过程为:
一、设置双控制器存储系统,该双控制器存储系统包括至少两个控制器,该控制器支持缓存镜像,支持写镜像和直写模式,不支持写回模式,支持写镜像和直写模式的切换,在进行一次读写的时候,其中一个指定为主控,另一个为非主控,任一控制器收到写请求后,都会将数据写入本地缓存并向对端转发,促使对端进行写镜像备份,备份完成后,通过主控制器将写请求的内容同步到磁盘上;
二、将双控制器置于写镜像模式下,当一台控制器宕机时,从另一台控制器上取得备份数据,保证了数据的可靠性;
三、当只剩一台控制器时,存活的控制器进行写镜像模式和直写模式的转换:设置一个标志位,在该标志位作用时间内,进行写模式的转换,当缓存中的数据全部刷写到磁盘后,该标志位清空,执行正常的直与策略的读与。[0009]所述指定为主控的控制器执行对物理存储设备读写的动作,非主控的控制器执行缓存的镜像功能。
[0010]所述直写模式指写请求下发的数据写入缓存的同时直接同步到磁盘;写镜像模式是缓存镜像机制特有的读写策略,直写请求下发的数据分别在两台控制器上进行镜像备份,然后返回。
[0011]所述步骤一中缓存镜像系统主控和非主控的收到写请求的详细处理动作为:
1)主控制器收到写请求时,首先将数据内容转发给非主控,非主控成功后,再备份内容到本地缓存,然后返回;
2)非主控制器收到写请求时,首先将数据备份到本地,本地备份成功后,将数据转发到主控,主控备份成功,返回;
3)主控制器的刷写线程不断将本地缓存中的数据刷写到磁盘;
4)数据同步到磁盘后,刷写线程会释放该部分数据占用的内存,同时通知非主控释放这部分内存。
[0012]所述步骤三的详细过程为:
1)双控制器中有一个控制器宕机,另一台执行镜像写转化为直写的动作;
2)缓存模块中设置对应的标志位;
3)直写模式下写请求对应的处理流程中,检测到标志位置位,睡眠一定时间;
4)睡眠一定时间后,写请求返回;
5)直写模式检测标志位是否置位;
6)若标志位置位,睡眠一定时间,返回;
7)若标志位没有置位,等待缓存中的所有数据同步到磁盘后返回;
所述步骤3)及步骤6)中对应线程睡眠的时间值不超过写超时时间。
[0013]所述步骤三中的标志位清空是由刷写动作操作的:刷写模块将缓存中的所有数据同步到磁盘后,会清除标志位,标志位清除后,直写策略又修改为等待缓存中的数据全部同步到磁盘才返回。
[0014]本发明与现有技术相比所产生的有益效果是:
本发明的一种缓存镜像系统无写回的镜像和直写切换方法适用于双控制器节点使用缓存镜像机制的存储系统,可以通过写镜像和直写策略的切换,摒弃写回方式的,而不会导致掉盘,从而保证存储系统的可靠性,保证数据的可靠性,安全性好,实用性强,易于推广。
【专利附图】

【附图说明】
[0015]图1是本发明中直写策略的流程图。
【具体实施方式】
[0016]下面结合附图对本发明的一种缓存镜像系统无写回的镜像和直写切换方法作详细说明。
[0017]本发明提供一种缓存镜像系统无写回的镜像和直写切换方法,其提供的镜像写策略是双控制器节点支持缓存镜像机制的存储系统所特有的,通过该方法可以在支持缓存镜像的双控制器存储系统中,进行写镜像和直写的直接切换,而不会导致掉盘,从而保证存储系统的可靠性,其具体过程为:
一、设置双控制器存储系统,该双控制器存储系统包括至少两个控制器,该控制器支持缓存镜像,支持写镜像和直写模式,不支持写回模式,支持写镜像和直写模式的切换,首先执行磁盘镜像机制,该机制是指:在进行一次读写的时候,其中一个指定为主控,另一个为非主控,任一控制器收到写请求后,都会将数据写入本地缓存并向对端转发,促使对端进行写镜像备份,备份完成后,通过主控制器将写请求的内容同步到磁盘上。
[0018]本发明中所述控制器分为主控和非主控,这是人为指定的,只有主控可以执行对物理存储设备读写的动作,非主控只执行缓存的镜像功能。
[0019]二、现有技术中的读写策略分为写回,直写和写镜像。写回方式指写请求下发的数据写入到缓存即返回,不保证同步到磁盘上。直写方式指写请求下发的数据写入缓存的同时直接同步到磁盘。写镜像是缓存镜像机制特有的读写策略,指写请求下发的数据分别在两台控制器上进行镜像备份,然后返回。由于写镜像策略有备份机制,能够保证一台控制器宕机时,另一台控制器上存有数据备份。本发明中涉及的三种读写策略,写镜像模式和写回模式的效率相当,直写模式的效率最低;但是,从数据可靠性的方面,只有写回方式是不可靠的,直写模式和写镜像模式都能保证数据的可靠性。
[0020]写镜像模式保证了双控制器的情况下,有一台控制器宕机时,能够从另一台控制器上取得备份数据,从而保证了数据的可靠性,因而将上述双控制器置于写镜像模式下,在写镜像模式下,一台控制器宕机后,另一台控制器可以自动接管,用户手动设置主控和非主控,两台控制器上都保存数据备份,但是只有主控向磁盘刷写数据。
[0021]但是,当只剩一台控制器时,无法进行镜像。此时,存活的控制器需要进行写镜像模式和其他模式的转换,这时,执行步骤三的内容。
[0022]三、存活的控制器进行写镜像模式和直写模式的转换,这时由于写镜像模式的效率和写回模式相当,意味着内存中会有大量的缓存数据。如果写镜像模式和写回模式相互切换,两者都不会等待磁盘刷写完成,内存中的数据不会丢失。但是如果从写镜像模式直接切换到直写模式,由于直写模式要等待数据写到磁盘后才返回,那么对内存中大量缓存数据的刷写会占用很长时间,长时间不返回结果,会导致发送请求的客户端写超时,进而造成掉盘。
[0023]为解决这一问题,本发明在写镜像切换为直写模式时进行了特别的处理,实现了无写回方式的写镜像和直写切换。
[0024]写镜像转成直写后,写超时的原因是将缓存中的数据刷写到磁盘的过程花费时间太长,本发明的目的就是要调整这个时间值,在保证所有数据都能刷写到磁盘的同时,确保数据的可靠性。
[0025]在进行写镜像转直写的操作时,设置一个标志位,在该标志位作用时间内,进行写模式的转换,当缓存中的数据全部刷写到磁盘后,该标志位清空,执行正常的直写策略的读与。
[0026]缓存镜像系统中有刷写模块,会不断把内存中保存中的数据同步到磁盘上。传统的直写方式中,收到写请求后,会等待缓存中的数据全部同步到磁盘后才进行返回。
[0027]在本发明中,写镜像转变为直写的标志位设置时,直写不会等待所有数据写到磁盘后才返回,而是数据写入到缓存后,对应线程睡眠一定的时间,该时间值不超过写超时时间,然后返回成功。
[0028]在刷写线程中,将缓存中保存的所有数据同步到磁盘后,清除标志位,该标志位的清除是由刷写动作操作的。刷写模块将缓存中的所有数据同步到磁盘后,会清除标志位。标志位清除后,直写策略又修改为等待缓存中的数据全部同步到磁盘才返回。
[0029]最后,控制器置于直写模式,在直写模式下,数据首先写入本地缓存,然后等待本地缓存中的所有数据同步到磁盘后,返回,直写模式时可有效保证数据可靠性。
[0030]所述步骤一中缓存镜像系统主控和非主控的收到写请求的详细处理动作为:
1)主控制器收到写请求时,首先将数据内容转发给非主控,非主控成功后,再备份内容到本地缓存,然后返回;
2)非主控制器收到写请求时,首先将数据备份到本地,本地备份成功后,将数据转发到主控,主控备份成功,返回;
3)主控制器的刷写线程不断将本地缓存中的数据刷写到磁盘;
4)数据同步到磁盘后,刷写线程会释放该部分数据占用的内存,同时通知非主控释放这部分内存。
[0031]所述步骤三的详细过程为:
1)双控制器中有一个控制器宕机,另一台执行镜像写转化为直写的动作;
2)缓存模块中设置对应的标志位;
3)直写模式下写请求对应的处理流程中,检测到标志位置位,睡眠一定时间;
4)睡眠一定时间后,写请求返回。
[0032]这时,直写模式对应的处理流程为:
1)检测标志位是否置位;
2)若标志位置位,睡眠一定时间,返回;
3)若标志位没有置位,等待缓存中的所有数据同步到磁盘后返回。
[0033]在检测到标志位置位时,睡眠的时间一定不超过系统写超时的时间。
[0034]直写模式切换为写镜像模式,保证双机存货且可以通信的情况下,直接切换即可。
[0035]图1是本发明中直写策略的流程图。本发明中直写策略增加了一个标志位判断。传统的直写策略没有针对该标志位的判断,将数据写入缓存后等待所有数据同步到磁盘后返回。在本发明的流程中,增加了对标志位的判断,如果标志位被置位,那么睡眠一段时间,而不等待所有的数据同步完成就返回。
[0036]除说明书所述的技术特征外,均为本专业技术人员的公知技术。
【权利要求】
1.一种缓存镜像系统无写回的镜像和直写切换方法,其特征在于,其具体过程为: 一、设置双控制器存储系统,该双控制器存储系统包括至少两个控制器,该控制器支持缓存镜像,支持写镜像和直写模式,不支持写回模式,支持写镜像和直写模式的切换,在进行一次读写的时候,其中一个指定为主控,另一个为非主控,任一控制器收到写请求后,都会将数据写入本地缓存并向对端转发,促使对端进行写镜像备份,备份完成后,通过主控制器将写请求的内容同步到磁盘上; 二、将双控制器置于写镜像模式下,当一台控制器宕机时,从另一台控制器上取得备份数据,保证了数据的可靠性; 三、当只剩一台控制器时,存活的控制器进行写镜像模式和直写模式的转换:设置一个标志位,在该标志位作用时间内,进行写模式的转换,当缓存中的数据全部刷写到磁盘后,该标志位清空,执行正常的直与策略的读与。
2.根据权利要求1所述的一种缓存镜像系统无写回的镜像和直写切换方法,其特征在于,所述指定为主控的控制器执行对物理存储设备读写的动作,非主控的控制器执行缓存的镜像功能。
3.根据权利要求1或2所述的一种缓存镜像系统无写回的镜像和直写切换方法,其特征在于,所述直写模式指写请求下发的数据写入缓存的同时直接同步到磁盘;写镜像模式是缓存镜像机制特有的读写策略,直写请求下发的数据分别在两台控制器上进行镜像备份,然后返回。
4.根据权利要求3所述的一种缓存镜像系统无写回的镜像和直写切换方法,其特征在于,所述步骤一中缓存镜像系统主控和非主控的收到写请求的详细处理动作为: 1)主控制器收到写请求时,首先将数据内容转发给非主控,非主控成功后,再备份内容到本地缓存,然后返回;` 2)非主控制器收到写请求时,首先将数据备份到本地,本地备份成功后,将数据转发到主控,主控备份成功,返回; 3)主控制器的刷写线程不断将本地缓存中的数据刷写到磁盘; 4)数据同步到磁盘后,刷写线程会释放该部分数据占用的内存,同时通知非主控释放这部分内存。
5.根据权利要求3所述的一种缓存镜像系统无写回的镜像和直写切换方法,其特征在于,所述步骤三的详细过程为: 1)双控制器中有一个控制器宕机,另一台执行镜像写转化为直写的动作; 2)缓存模块中设置对应的标志位; 3)直写模式下写请求对应的处理流程中,检测到标志位置位,睡眠一定时间; 4)睡眠一定时间后,写请求返回; 5)直写模式检测标志位是否置位; 6)若标志位置位,睡眠一定时间,返回; 7)若标志位没有置位,等待缓存中的所有数据同步到磁盘后返回; 根据权利要求5所述的一种缓存镜像系统无写回的镜像和直写切换方法,其特征在于,所述步骤3)及步骤6)中对应线程睡眠的时间值不超过写超时时间。
6.根据权利要求5所述的一种缓存镜像系统无写回的镜像和直写切换方法,其特征在于, 所述步骤三中的标志位清空是由刷写动作操作的:刷写模块将缓存中的所有数据同步到磁盘后,会清除标志位,标志位清除后,直写策略又修改为等待缓存中的数据全部同步到磁盘才返回。
【文档编号】G06F12/16GK103605618SQ201310583059
【公开日】2014年2月26日 申请日期:2013年11月20日 优先权日:2013年11月20日
【发明者】王倩 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1