[发明专利]一种存储系统的缓存镜像方法有效
申请号: | 201310025492.5 | 申请日: | 2013-01-23 |
公开(公告)号: | CN103092778A | 公开(公告)日: | 2013-05-08 |
发明(设计)人: | 王倩 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F12/16 | 分类号: | G06F12/16 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;曲鹏 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 存储系统 缓存 方法 | ||
技术领域
本发明涉及存储系统的缓存镜像领域,尤其涉及多控制器存储系统的缓存镜像方法。
背景技术
缓存镜像技术是针对于存储处理出现故障时可能产生的缓存中的数据丢失而制定的解决方案,他将缓存数据同时保存在多个控制器上,系统工作时会自动向其他控制器进行备份,是多控制器存储系统中常用的缓存保护技术,其基本原理就是在每个控制器上建立缓存镜像,保证多控制器间的缓存一致性。
申请号为200910253317.5的专利文件描述了一种双控制器存储系统的缓存镜像系统及方法。该系统和方法提出了包含有两个控制器的存储系统,第一控制器和第二控制器之间通过存储器直接访问DMA建立直接通讯链路,第一控制器在接收到写请求后将数据写入本地缓存中,然后将数据转发到第二控制器进行镜像,第二控制器回复镜像完成后,结束写请求。但是,在该发明中,使用的存储系统仅限于双控制器存储系统,不支持多控制器存储系统,并且写请求只通过第一控制器下发,第二控制器只作为镜像,并未提及写请求从两个控制器同时下发时的处理方法。
发明内容
为了能够在多控制器存储系统中,同时通过多个控制器写数据时,保证控制器间的缓存一致性,本发明提出一种存储系统的缓存镜像方法。
为了解决上述技术问题,本发明提供了一种存储系统的缓存镜像方法,所述存储系统包括n个控制器,其中一个控制器为主控制器,剩余n-1个控制器为从控制器,所述存储系统的各个控制器之间通过通讯链路连接;n≥2;
任何一个或者多个控制器收到写请求后将对应的数据写入本地缓存,并且向其他控制器转发写请求;收到转发写请求的控制器将写请求的数据写入到本地缓存。
进一步地,主控制器的功能包括:执行缓存镜像的功能和执行对物理存储设备读写的功能,从控制器的功能包括:执行缓存镜像的功能。
进一步地,在n个控制器的本地缓存的每一个缓存块中增加一个标记位,所述标记位用于记录所述缓存块进行写操作的次数,记为count。
进一步地,当收到写请求的控制器是主控制器时,所述方法包括:
A)主控制器将写请求转发到从控制器;
B)从控制器收到主控制器转发过来的写请求,将写请求的数据写入到本地缓存;
C)从控制器写入完成后,从控制器将备份完成的回复返回给主控制器;
D)主控制器收到所有从控制器备份完成的回复后,将写请求的数据写入到本地缓存;
E)主控制器写入完成后,返回写请求执行成功。
进一步地,当收到写请求的控制器是从控制器时,所述方法包括:
a)从控制器将写请求对应的数据写入到本地缓存,
b)从控制器将写请求转发到主控制器和其他从控制器;
c)主控制器和其他从控制器收到从控制器转发过来的写请求,将写请求的数据写入到本地缓存;
d)主控制器和其他从控制器写入完成后,将备份完成的回复返回给从控制器;
e)从控制器收到所有主控制器和其他从控制器备份完成的回复后,返回写请求执行成功。
进一步地,控制器将写请求的数据写入到本地缓存为:
Z1)控制器判断写请求指定的写入位置是否在本地缓存中,若不存在,则执行步骤Z2),若存在,则执行步骤Z3);
Z2)增加新的缓存块;并将写请求的数据写入到增加新的缓存块中;结束写入;
Z3)根据写请求指定的写入位置定位到对应的缓存块,并将写请求的数据写入到对应的缓存块中;结束写入。
进一步地,当收到写请求的控制器是主控制器时,所述方法包括:
AW)主控制器将写请求转发到从控制器;
BW)从控制器收到主控制器转发过来的写请求,将写请求的数据写入到本地缓存相应的缓存块中,并将所述缓存块的count值加1;
CW)从控制器写入完成后,从控制器将备份完成的回复返回给主控制器;所述备份完成的恢复中包括所述缓存块的count值;
DW)主控制器收到所有从控制器备份完成的回复后,将写请求的数据写入到本地缓存相应的缓存块中;
EW)主控制器比较本地缓存对应缓存块的count值与从控制器返回的缓存块的count值;若主控制器收到的从控制器返回的缓存块的count值大于本地缓存对应缓存块的count值,则执行步骤FW);否则执行步骤GW);
FW)将收到的从控制器返回的缓存块的count值赋值给主控制器本地缓存对应缓存块的count值;流程结束,返回写请求执行成功;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310025492.5/2.html,转载请声明来源钻瓜专利网。