一种多控制器间的缓存同步方法

文档序号:6399589阅读:342来源:国知局
专利名称:一种多控制器间的缓存同步方法
技术领域
本发明涉及计算机技术领域,具体地说是一种多控制器间的缓存同步方法。
背景技术
存储磁盘阵列系统是随着计算机技术发展起来的,随着云计算和物联网等新一代信息技术的风起云涌,客户数据规模和应用规模快速扩大并积累。磁盘阵列技术进入一个高速发展时期。提升存储的应用水平,已经成为数据所蕴藏的信息价值能否顺利转化为信息化主题发展动力的关键。多控制器存储系统相对于单控双控来说,有着更好的性能、可用性、可扩展性及可靠性,越来越多的在各应用领域中得到部署。
为了提高多控制器处理数据的性能,磁盘阵列通常采用缓存技术实现数据写回功能。但缓存数据往往存放在易失性存储器中,一般通过缓存镜像技术在多个控制器上对缓存备份从而保证某些控制器节点故障缓存数据不丢失。本发明是一种多控制器间的缓存同步技术,用于保证多个镜像数据与原数据之间的一致性,防止镜像过程中出现原本与副本数据不一致的问题。发明内容
本发明的目的是提供一种多控制器间的缓存同步方法,提出一种保证多个控制器间的多个缓存资源副本与原本之间的同步方案,解决了多控制器间数据高速缓存的一致性问题。
本发明的目的是按以下方式实现的,该系统结构包括:缓存数据版本记录模块(I)、缓存数据版本更新模块(2),其中: 缓存数据版本记录模块(I)对多控制器系统中的每个缓存页均定义一个原子计数器wrcount记录连续写的次数,用于表示该缓存单元的数据版本,提供的功能是:每个缓存页定义一个计数器记录连续写的次数,用于表示该缓存单元的数据版本,在通知其他控制器镜像端释放备份数据时需同时传递相关页的计数值,只有所传递的计数值大于等于所有镜像端的值才予以释放; 缓存数据版本更新模块(2)在数据镜像时负责向主控申请计数器值并更新其他镜像保存的原子计数器wrcount,在主控刷写完数据后通知其他镜像端释放备份数据时,需同时向镜像端传递当前数据版本,只有所传递的计数值大于等于镜像端的值才予以释放,该模块维护一套更新每个控制器缓存页数据版本的规则,用于保证此计数值能够表示所有控制器的缓存单元数据版本的有效性; 原子计数器wrcount使用规则为以下四点: 一、备份数据作镜像端写操作时,镜像端按以下规则更新计数器值并将更新后的计数器反馈到其他控制器镜像端: 在新页申请时向主控制器申请数据版本,初始值为0,之后每连续写,即写的时候页仍呈“脏” dirty状态时,都向主控制器申请此页的数据版本,主控计数申请一次就加1,并通知其他镜像数据更新此数据版本及内容,如果某次写时页已不为“脏”dirty,即已刷写到磁盘,则主控将所有控制器此页的镜像数据计数都重新置I ; 二、主控端写数据时,每个涉及的缓存页要设置“脏”标记,并且增加原子计数器wrcount计数,并通知其他镜像端更新原子计数器wrcount ; 更新原子计数器wrcount操作必须在设置“脏”标记操作之后而不是之前进行;释放备份数据前,新备份数据已经覆盖了旧备份数据,释放时根据数据原子计数器wrcount版本判断当前原子计数器wrcount是否大于释放的原子计数器wrcount,如果当前原子计数器wrcount小于等于释放的原子计数器wrcount,则释放备份数据,否则备份数据为新数据不需要释放; 如果某一个页面在刷新缓存之前连续写时,不管是近端写还是远端写,都能保证缓存数据的数据版本是最新的,避免误释放较新的缓存数据导致缓存原本与副本数据不一致问题。
该系统核心在于引入了缓存单元数据版本技术,标识每个缓存单元及缓存副本的数据版本信息,删除数据时需要比较缓存单元数据版本,只删除低版本的缓存数据。
缓存数据版本记录模块(I)体系结构中,所有控制器的每个缓存页与缓存页副本都包含I个字段记录该缓存单元(页)的数据版本,在释放页时,需要对比原本与所有副本的数据版本,只有传递的大于等于所有镜像端的值才予以释放。
缓存数据版本更新模块(2),体系结构中,提供按一定规则更新缓存单元数据版本标识的功能。
本发明的有益效果是:一种多控器间的同步方法支持在多控制器的存储系统中,多个缓存数据副本与原本之间的数据一致性,防止多个副本与原本之间由于镜像先后顺序等原因导致的缓存数据丢失问题。


图1是缓存页“连续写”计数值在镜像端的变化状态图; 图2是近端写时释放备份数据流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
正如发明内容中所描述的,本发明的系统结构主要包括:缓存数据版本记录模块(I)、缓存数据版本更新模块(2 )。
在一个典型的配置环境里,缓存数据版本记录模块(I)对多控制器系统中的每个缓存页均定义一个原子计数器wrcount记录连续写的次数,用于表示该缓存单元(页)的数据版本。缓存数据版本更新模块(2)在数据镜像时负责向主控申请计数器值并更新其他镜像保存的wrcount。在主控刷写完数据后通知其他镜像端释放备份数据时,需同时向镜像端传递当前数据版本,只有所传递的计数值大于等于镜像端的值才予以释放。
该计数器使用规则为以下四点: 一、备份数据(镜像端写操作)时镜像端按以下规则更新计数器值并将更新后的计数器反馈到其他控制器镜像端:在新页申请时向主控制器申请数据版本,初始值为O。之后每连续写(即写的时候页仍呈dirty状态)都向主控制器申请此页的数据版本,主控计数申请一次就加I,并通知其他镜像数据更新此数据版本及内容。如果某次写时页已不为“脏”,即已刷写到磁盘,则主控将所有控制器此页的镜像数据计数都重新置I。
如图1所示,其中T5转变是指新的写(备份)缓存操作发起时页已经刷写或者正在刷写到磁盘上则计数值重新变为I。
二、主控端写数据时,每个涉及的缓存页要设置“脏”标记,并且增加wrcount计数,并通知其他镜像端更新wrcount。
其他镜像端按下列规则判断是否需要更新wrcount ;
权利要求
1.一种多控制器间的缓存同步方法,其特征在于该系统结构包括:缓存数据版本记录模块(I)、缓存数据版本更新模块(2),其中: 缓存数据版本记录模块(I)对多控制器系统中的每个缓存页均定义一个原子计数器wrcount记录连续写的次数,用于表示该缓存单元的数据版本,提供的功能是:每个缓存页定义一个计数器记录连续写的次数,用于表示该缓存单元的数据版本,在通知其他控制器镜像端释放备份数据时需同时传递相关页的计数值,只有所传递的计数值大于等于所有镜像端的值才予以释放; 缓存数据版本更新模块(2)在数据镜像时负责向主控申请计数器值并更新其他镜像保存的原子计数器wrcount,在主控刷写完数据后通知其他镜像端释放备份数据时,需同时向镜像端传递当前数据版本,只有所传递的计数值大于等于镜像端的值才予以释放,该模块维护一套更新每个控制器缓存页数据版本的规则,用于保证此计数值能够表示所有控制器的缓存单元数据版本的有效性;原子计数器wrcount使用规则为以下四点: 一、备份数据作镜像端写操作时,镜像端按以下规则更新计数器值并将更新后的计数器反馈到其他控制器镜像端: 在新页申请时向主控制器申请数据版本,初始值为0,之后每连续写,即写的时候页仍呈“脏” dirty状态时,都向主控制器申请此页的数据版本,主控计数申请一次就加1,并通知其他镜像数据更新此数据版本及内容,如果某次写时页已不为“脏”dirty,即已刷写到磁盘,则主控将所有控制器此页的镜像数据计数都重新置I ; 二、主控端写数据时,每个涉及的缓存页要设置“脏”标记,并且增加原子计数器wrcount计数,并通知其他镜像端更新原子计数器wrcount ; 更新原子计数器wrcount操作必须在设置“脏”标记操作之后而不是之前进行;释放备份数据前,新备份数据已经覆盖了旧备份数据,释放时根据数据原子计数器wrcount版本判断当前原子计数器wrc ount是否大于释放的原子计数器wrcount,如果当前原子计数器wrcount小于等于释放的原子计数器wrcount,则释放备份数据,否则备份数据为新数据不需要释放; 如果某一个页面在刷新缓存之前连续写时,不管是近端写还是远端写,都能保证缓存数据的数据版本是最新的,避免误释放较新的缓存数据导致缓存原本与副本数据不一致问题。
2.根据权利要求1所述的一种多控制器间的缓存同步方法,特征在于该系统核心在于引入了缓存单元数据版本技术,标识每个缓存单元及缓存副本的数据版本信息,删除数据时需要比较缓存单元数据版本,只删除低版本的缓存数据。
3.根据权利要求1所述的方法,其特征在于缓存数据版本记录模块(I)体系结构中,所有控制器的每个缓存页与缓存页副本都包含I个字段记录该缓存单元(页)的数据版本,在释放页时,需要对比原本与所有副本的数据版本,只有传递的大于等于所有镜像端的值才予以释放。
4.根据权利要求1所述的方法,其特征在于缓存数据版本更新模块(2),体系结构中,提供按一定规则更新缓存单元数据版本标识的功能。
全文摘要
本发明提供一种多控制器间的缓存同步方法,系统结构包括缓存数据版本记录模块(1)、缓存数据版本更新模块(2),缓存数据版本记录模块(1)对多控制器系统中的每个缓存页均定义一个原子计数器wrcount记录连续写的次数,用于表示该缓存单元(页)的数据版本。缓存数据版本更新模块(2)在数据镜像时负责向主控申请计数器值并更新其他镜像保存的wrcount。在主控刷写完数据后通知其他镜像端释放备份数据时,需同时向镜像端传递当前数据版本,只有所传递的计数值大于等于镜像端的值才予以释放。在多控器间的同步方法支持的多控制器的存储系统中,多个缓存数据副本与原本之间的数据一致性,防止多个副本与原本之间由于镜像先后顺序等原因导致的缓存数据丢失问题。
文档编号G06F11/14GK103150267SQ201310055329
公开日2013年6月12日 申请日期2013年2月21日 优先权日2013年2月21日
发明者王恩东, 杨帆, 文中领 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1