应用于双控存储系统的缓存同步方法及系统的制作方法

xiaoxiao2020-10-23  14

应用于双控存储系统的缓存同步方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机存储领域,特别是涉及一种应用于双控存储系统的缓存同步方法及系统。
【背景技术】
[0002]磁盘高速缓存是一种软件机制,其可以让系统把一些平时储存在磁盘上的数据存放在RAM(Random-Access Memory,随机存取存储器)中,使得后续对该数据存取时直接从RAM中存取,而无需存取磁盘,使得系统的快速读写迅速得到满足,以此提高系统的效率。Cache Miiror(缓存镜像)是在双控系统运行时,让两边的控制器的快速读取同步,当第一控制器出现故障时,第二控制器能够马上接替第一控制器的工作,由于两台控制器的快取一致,因此系统能够继续正常运行,且数据也不会丢失。
[0003]传统的缓存镜像(Cache Mirror),主要有以下几种运作情况,分别为MirrorPage (镜像页面),Cache Writeback (缓存回写)、Read Shipping (读传递)、Failover 及faiIback(故障转移及故障恢复),其中Mirror Pager能够达到镜像的目的,但却多了许多页面同步的过程,同时,镜像页面是以页面大小(4K)为单位写入数据的,造成镜像缓存的效率不佳、性能较差。

【发明内容】

[0004]针对缓存镜像运作时效率不佳、性能较差的问题,本发明提供了一种应用于双控存储系统的缓存同步方法及系统,不需镜像缓存,还能够大大提高运作效率,且性能较好。
[0005]为达到发明目的,本发明提供一种应用于双控存储系统的缓存同步方法,包括以下步骤:
[0006]主机发送写请求信号到第一控制器;
[0007]判断所述第一控制器是否为所述写请求信号对应逻辑卷的预设主控制器;
[0008]若所述第一控制器为所述预设主控制器,则所述第一控制器将所述写请求信号对应的数据缓存至所述第一控制器的第一缓存中,并将所述写请求信号传递到第二控制器;
[0009]所述第二控制器接收到所述写请求信号后,将所述写请求信号对应的数据写入所述第二控制器的第二缓存中,使得所述第二缓存的数据与所述第一缓存的数据同步,并在同步后发送确认信号到所述第一控制器,所述第一控制器接收到所述确认信号后返回同步完成信号到所述主机;
[0010]若所述第一控制器不是所述预设主控制器,则所述第一控制器将写请求信号传递给作为所述逻辑卷预设主控制器的第二控制器,所述第二控制器将所述写请求信号对应的数据缓存至所述第二控制器的第二缓存中,发送确认信号到所述第一控制器;
[0011]所述第一控制器接收所述确认信号后,将所述写请求信号对应的数据写入所述第一控制器的第一缓存中,使得所述第一缓存的数据与所述第二缓存的数据同步,并在同步后返回同步完成信号到所述主机。
[0012]作为一种可实施例,若所述第一控制器为所述预设主控制器,且所述第一控制器接收所述确认信号后,包括如下步骤:
[0013]所述第一控制器用已写缓存标记将所述第一缓存标记为已写缓存,将所述已写缓存中与所述写请求信号对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第一缓存中的所述已写缓存标记清空。
[0014]作为一种可实施例,所述第一控制器用已写缓存标记将所述第一缓存标记为已写缓存,将所述已写缓存中与所述写请求对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第一缓存中的所述已写缓存标记清空之后,还包括如下步骤:
[0015]所述第二控制器轮询所述第一缓存的状态,若获得所述已写缓存标记已清空,则所述第二控制器将所述第二缓存中与所述第一缓存中已写入所述磁盘的数据对应的数据删除,从而使所述第二缓存的数据与所述第一缓存的数据同步。
[0016]作为一种可实施例,若所述第二控制器为所述预设主控制器,且所述第一控制器将所述写请求信号对应的数据写入所述第一缓存之后,包括如下步骤:
[0017]所述第二控制器用已写缓存标记将所述第二缓存标记为已写缓存,所述第二控制器将所述已写缓存中与所述写请求信号对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第二缓存中的所述已写缓存标记清空。
[0018]作为一种可实施例,所述第二控制器用已写缓存标记将所述第二缓存标记为已写缓存,所述第二控制器将所述已写缓存中与所述写请求信号对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第二缓存中的所述已写缓存标记清空之后,还包括如下步骤:
[0019]所述第一控制器轮询所述第二缓存的状态,若获得所述已写缓存标记已清空,则所述第一控制器将所述第一缓存中与所述第二缓存中已写入所述磁盘的数据对应的数据删除,从而使所述第一缓存的数据与所述第二缓存的数据同步。
[0020]本发明还提供一种应用于双控存储系统的缓存同步系统,包括第一控制器,第二控制器和主机,所述第一控制器和所述第二控制器均包括接收模块,判断模块,第一缓存模块,第一同步模块,第二缓存模块,第二同步模块和返回模块,其中:
[0021]所述第一控制器,被配置以通过所述接收模块接收主机发送的写请求信号,通过所述判断模块判断所述第一控制器是否为所述写请求信号对应逻辑卷的预设主控制器;
[0022]所述第一控制器,被配置以若所述第一控制器为所述预设主控制器,则通过所述第一缓存模块将所述写请求信号对应的数据缓存至所述第一控制器的第一缓存中,并将所述写请求信号传递到第二控制器;
[0023]所述第二控制器,被配置以若所述第二控制器接收到所述写请求信号后,通过所述第一同步模块将所述写请求信号对应的数据写入所述第二控制器的第二缓存中,使得所述第二缓存的数据与所述第一缓存的数据同步,并在同步后发送确认信号到所述第一控制器,所述第一控制器接收到所述确认信号后,通过所述返回模块返回同步完成信号到所述主机;
[0024]所述第二控制器,被配置以若所述第二控制器为所述预设主控制器,则通过所述第二缓存模块接收所述第一控制器传递的写请求信号,并将所述写请求信号对应的数据缓存至所述第二控制器的第二缓存中,发送确认信号到所述第一控制器;
[0025]所述第一控制器,被配置以若接收到所述确认信号后,通过所述第二同步模块将所述写请求信号对应的数据写入所述第一控制器的第一缓存中,使得所述第一缓存的数据与所述第二缓存的数据同步,并在同步后通过所述返回模块返回同步完成信号到所述主机。
[0026]作为一种可实施例,还包括第一标记模块;
[0027]所述第一控制器,被配置以若所述第一控制器为所述预设主控制器,且接收到所述确认信号后,通过所述第一标记模块用已写缓存标记将所述第一缓存标记为已写缓存,将所述已写缓存中与所述写请求信号对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第一缓存中的所述已写缓存标记清空。
[0028]作为一种可实施例,还包括第一轮询模块;
[0029]所述第二控制器,被配置以通过所述第一轮询模块轮询所述第一缓存的状态,若获得所述已写缓存标记已清空,则将所述第二缓存中与所述第一缓存中已写入所述磁盘的数据对应的数据删除,从而使所述第二缓存的数据与所述第一缓存的数据同步。
[0030]作为一种可实施例,还包括第二标记模块;
[0031]所述第二控制器,被配置以若所述第二控制器为所述预设主控制器,且获得所述第一控制器将所述写请求信号对应的数据写入所述第一缓存后,通过所述第二标记模块用已写缓存标记将所述第二缓存标记为已写缓存,将所述已写缓存中与所述写请求信号对应的数据 写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第二缓存中的所述已写缓存标记清空。
[0032]作为一种可实施例,还包括第二轮询模块;
[0033]所述第一控制器,被配置以通过所述第二轮询模块轮询所述第二缓存的状态,若获得所述已写缓存标记已清空,则将所述第一缓存中与所述第二缓存中已写入所述磁盘的数据对应的数据删除,从而使所述第一缓存的数据与所述第二缓存的数据同步。
[0034]本发明的有益效果包括:
[0035]本发明的应用于双控存储系统的缓存同步方法及系统,结合了写请求信号传递的功能,不仅传递写请求信号,而且将写请求信号对应的数据缓存至本地缓存,并通过写请求信号的传递将对应的数据同步至另一缓存中,不需镜像缓存,且页面的同步只限定在缓存回写过程中,省却许多页面同步的过程,同时,写请求信号传递时对应的数据是批量写入和读出的,大大提高了双控存储系统的效率及性能。
【附图说明】
[0036]图1为本发明的应用于双控存储系统的缓存同步方法的一实施例的流程示意图;
[0037]图2为本发明的应用于双控存储系统的缓存同步方法的另一实施例的流程示意图;
[0038]图3为本发明的应用于双控存储系统的缓存同步系统的一实施例的结构示意图。
【具体实施方式】
[0039]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明应用于双控存储系统的缓存同步方法及系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0040]参见图1,本发明实施例提供一种应用于双控存储系统的缓存同步方法,包括以下步骤:
[0041]S100,主机发送写请求信号到第一控制器。
[0042]S200,判断第一控制器是否为写请求信号对应逻辑卷的预设主控制器。
[0043]S300,若第一控制器为预设主控制器,则第一控制器将写请求信号对应的数据缓存至第一控制器的第一缓存中,并将写请求信号传递到第二控制器。
[0044]S400,第二控制器接收写请求信号后,将写请求信号对应的数据写入第二控制器的第二缓存中,使得第二缓存的数据与第一缓存的数据同步,并在同步后发送确认信号到第一控制器,第一控制器接收到确认信号后返回同步完成信号到主机。
[0045]S500,若第一控制器不是预设主控制器,则第一控制器将写请求信号传递给作为逻辑卷预设主控制器的第二控制器,第二控制器将写请求信号对应的数据缓存至第二控制器的第二缓存中,发送确认信号到第一控制器。
[0046]S600,第一控制器接收确认信号后,将写请求信号对应的数据写入第一控制器的第一缓存中,使得第一缓存的数据与第二缓存的数据同步,并在同步后返回同步完成信号到主机。
[0047]本发明的应用于双控存储系统的缓存同步方法,结合了写请求信号传递的功能,不仅传递写请求信号,而且将写请求信号对应的数据缓存至其中一台控制器的本地缓存(第一缓存或第二缓存),通过写请求信号的传递将其对应的数据缓存至另一控制器的缓存中,只需同步,不需镜像缓存,且page同步只是限定在Cache Writeback(缓存回写)过程中,省却了许多page同步的流程,同时,由于写请求信号进行传递时其对应的数据是批量写入或读出的,大大提高了双控存储系统的效率及性能。
[0048]值得说明的是,双控存储系统一般运行在Linux环境下,包括两个控制器系统,两个控制器系统的配置结构相同,通过PCIe(PCI Express,总线接口)或者SAS(SerialAttached SCSI,串行连接SCSI)连接两个控制器系统的缓存同步模块进行通信,两个控制器系统各包括一个控制器,分别为第一控制器和第二控制器。该双控存储系统的两个控制器在底层都与相同的物理磁盘组连接,可以同时访问所有磁盘,其中,物理磁盘组组成磁盘阵列(RAID,Redundant Arrays of Independent Disks),双控存储系统的 LVM(LogicalVolume Manager,逻辑卷管理卷)将磁盘阵列切割为逻辑卷,由VFS(Virtual File System,虚拟文件系统)中的cache module (快取模块)从磁盘阵列中存取数据,以满足磁盘高速缓存的需求。在LVM切割磁盘阵列为逻辑卷时,设计一个磁盘阵列只属于一个控制器,虽然两个控制器都能访问所有的磁盘,但能够操作写请求信号的只有拥有此磁盘阵列的控制器。当有写请求信号发送到快取模块后,双控存储系统中的一台控制器将写请求信号经由缓存同步模块透过PCIe (或SAS)传递至另一台控制器,并将写请求信号对应的数据缓存至相应的缓存中,以达成缓存同步的需求。
[0049]双控存储系统的HA Module (High Available Module,高可用集群模块)会定期发送讯息确认另一台控制器是否存在,当超出一个预设时间没有收到讯息时,则认为另一台控制器发生故障,此时双控存储系统运作在故障转移(Failover)状态,双控存储系统可视为工作在单控制器状态。故障转移状态主要有以下几种:在Cache Sync(缓存同步)时出现故障转移,在Cache Writeback (缓存回写)时出现故障转移,在Cache Writeback End (缓存回写末端)时出现故障转移以及在Read Shipping(读传递)时出现故障转移。当系统处于FaiIback(故障恢复)状态并且Cache Sync Kernel Thread(缓存同步内核线程)又重新收到确认讯息时,代表另一台控制器又重新恢复运行,此时会让系统停止接受写请求,而另一台控制器也会进入同步模式,待两台控制器的Cache同步结束后,再恢复正常运行的状态。
[0050]作为一种可实施方式,参见图2,若第一控制器为预设主控制器,且第一控制器接收确认信号后,包括如下步骤:
[0051]S400a,第一控制器用已写缓存标记将第一缓存标记为已写缓存,并将已写缓存中与写请求信号对应的数据写入逻辑卷对应的磁盘中,将已写缓存中已写入磁盘的数据删除,并将第一缓存中的已写缓存标记清空。
[0052]Linux在使用缓存时会分为两段,第一段指的是在读写档案时,会先将数据读或写入缓存中,若是写入的情况(即为写请求),会先用已写缓存标记将缓存标记为Dirty (已写缓存),此时数据尚未写入磁盘,但对于上层的应用程序来说,写入已将完成了。第二段指的是Linux kernel会在适当的时间将已写缓存中的数据写入磁盘中,以此来完成真正的写入作业。
[0053]上述实施例为前端控制器(第一控制器)为预设主控制器的流程步骤,其完成了写请求对应数据的真正写操作,将写请求对应的数据批量写入,减小了磁盘的访问频率,大大提高双控存储系统的效率。同时,将第一缓存中已写入磁盘的写请求对应的数据删除,并将已写缓存标记清空,以清空第一缓存,使得第一缓存在存储数据时效率更高。
[0054]作为一种可实施方式,步骤S400a之后,还包括如下步骤:
[0055]S400b,第二控制器轮询第一缓存的状态,若获得已写缓存标记已清空,则第二控制器将第二缓存中与第一缓存中已写入磁盘的数据对应的数据删除,从而使第二缓存的数据与第一缓存的数据同步。
[0056]在第一控制器将写请求对应的数据写入磁盘后(即进行写请求对应数据的真正写操作后),第二控制器通过轮询的方式获取第一缓存的状态(此时第一缓存中与已写入磁盘的数据对应的数据已删除,且第一缓存中的已写缓存标记已清空),从而达到第二缓存与第一缓存同步的效果。且写请求对应的数据批量写入磁盘或删除,大大提高系统效率。其中,需要说明的是,第二控制器在轮询第一缓存的状态时,若获得第一缓存中写入磁盘的数 据已删除,已写缓存标记已清空,即此时第一缓存已不是dirty状态,而此时第二缓存的状态依然为dirty状态(即两个控制器的cache memory的dirty状态是不同的),轮询时会有一定的等待时间,因此第二控制器会占用的更多的内存。当第二控制器的第二缓存快要用尽的时候,调用背景的Cache Writeback流程,将第二缓存与第一缓存同步,以清空第二缓存,从而使得第二缓存释放更多内存,提高其存储效率。
[0057]较优的,在其中一个实施例中,第二控制器将第二缓存中与第一缓存中已写入磁盘的数据对应的数据删除,从而使第二缓存的数据与第一缓存的数据同步之后,还包括以下步骤:第二控制器发送确认信号给第一控制器,第一控制器返回同步完成信号到主机,通知主机当前写请求信号对应的数据已写入相应的磁盘且已同步完成,可以发送下一个写请求信号。其中,需要说明的是,第二控制器将写请求信号对应的数据写入第二缓存后,发送确认信号给第一控制器,此时第一控制器也发送同步完成信号到主机,通知主机写请求信号对应的数据已同步至第一缓存和第二缓存。
[0058]作为一种可实施方式,若第二控制器为预设主控制器,且第一控制器将写请求信号对应的数据写入第一缓存之后,包括如下步骤:
[0059]S600a,第二控制器用已写缓存标记将第二缓存标记为已写缓存,第二控制器将已写缓存中与写请求信号对应的数据写入逻辑卷对应的磁盘中,将已写缓存中已写入磁盘的数据删除,并将第二缓存中的已写缓存标记清空。
[0060]与步骤S400a的原理类似,此处不再赘述,该实施例为前端控制器不是预设主控制器时的流程步骤,其也完成了写请求对应数据的真正写操作,将写请求对应的数据批量写入,减小了磁盘的访问频率,大大提高双控存储系统的效率。同时,将第二缓存中已写入磁盘的写请求对应的数据删除,并将已写缓存标记清空,以清空第二缓存,使得第二缓存在存储数据时效率更高。
[0061]作为一种可实施方式,步骤S600a之后,还包括如下步骤:
[0062]S600b,第一控制器轮询第二缓存的状态,若获得已写缓存标记已清空,则第一控制器将第一缓存中与第二缓存中已写入磁盘的数据对应的数据删除,从而使第一缓存的数据与第二缓存的数据同步。
[0063]与步骤S400b的原理类似,不同的是第一控制器通过轮询的方式获取第二缓存的状态,从而使第一缓存与第二缓存同步,以清空第一缓存,即使得第一缓存释放更多内存,提高其存储效率。且写请求对应的数据批量写入磁盘或删除,大大提高系统效率。其中,第一控制器和第二控制器的cache memory (高速缓存存储器)的dirty状态是不相同的。
[0064]较优的,在其中一个实施例中,第一控制器将第一缓存中与第二缓存中已写入磁盘的数据对应的数据删除,从而使第一缓存的数据与第二缓存的数据同步之后,还包括以下步骤:第一控制器返回同步完成信号到主机,通知主机当前写请求信号对应的数据已写入相应的磁盘且已同步完成,可以发送下一个写请求信号。其中,需要说明的是,第一控制器将写请求信号对应的数据写入第一缓存之后,也发送同步完成信号到主机,通知主机写请求信号对应的数据已同步至第一缓存和第二缓存。
[0065]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0066]基于同一发明构思,本发明还提供了一种应用于双控存储系统的缓存同步系统,由于此系统解决问题的原理与前述一种应用于双控存储系统的缓存同步方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。
[0067]本发明实施例提供的应用于双控存储系统的缓存同步系统,参见图3,包括主机,第一控制器和第二控制器,第一控制器和第二控制器均包括接收模块010,判断模块100,第一缓存模块200,第一同步模块300,第二缓存模块400,第二同步模块500和返回模块600。其中:第一控制器,被配置以通过接收模块010接收主机发送的写请求信号,并通过判断模块100判断第一控制器是否为写请求信号对应逻辑卷的预设主控制器。第一控制器,被配置以若第一控制器为预设主控制器,则通过第一缓存模块200将写请求信号对应的数据缓存至第一控制器的第一缓存中,并将写请求信号传递到第二控制器。第二控制器,被配置以若第二控制器接收到写请求信号后,通过第一同步模块300将写请求信号对应的数据写入第二控制器的第二缓存中,使得第二缓存的数据与第一缓存的数据同步,并在同步后发送确认信号到第一控制器,第一控制器接收到确认信号后,通过返回模块600返回同步完成信号到主机。
[0068]第二控制器,被配置以若第二控制器为预设主控制器,则通过第二缓存模块400接收第一控制器传递的写请求信号,并将写请求信号对应的数据缓存至第二控制器的第二缓存中,发送确认信号到第一控制器。第一控制器,被配置以若接收到确认信号后,通过第二同步模块500将写请求信号对应的数据写入第一控制器的第一缓存中,使得第一缓存的数据与第二缓存的数据同步,并在同步后通过返回模块600返回同步完成信号到主机。
[0069]本发明的应用于双控存储系统的缓存同步系统,结合了写请求信号传递的功能,不仅传递写请求信号,而且将写请求信号对应的数据缓存至一台控制器的本地缓存中,通过写请求信号的传递将其对应的数据缓存至另一控制器的缓存中,只需同步,不需镜像缓存,且page同步只是限定在Cache Writeback(缓存回写)过程中,省却了许多page同步的流程,同时,由于写请求信号进行传递时其对应的数据是批量写入或读出的,减小了磁盘的访问频率,从而大大提高了双控存储系统的效率及性能。
[0070]较优的,在其中一个实施例中,第一控制器和第二控制器的结构、功能相同。当然,第一控制器和第二控制器的结构、功能也可以不相同,能够实现其对应的功能即可。其中,在上述实施例中,是以第一控制器为主作的示例性说明。
[0071]作为一种可实施方式,还包括第一标记模块300a。第一控制器,被配置以若第一控制器为预设主控制器,且接收到确认信号后,通过第一标记模块300a用已写缓存标记将第一缓存标记为已写缓存,并将已写缓存中与写请求信号对应的数据写入逻辑卷对应的磁盘中,将已写缓存中已写入磁盘的数据删除,并将第一缓存中的已写缓存标记清空。
[0072]作为一种可实施方式,还包括第一轮询模块300b。第二控制器,被配置以通过第一轮询模块300b轮询第一缓存的状态,若获得已写缓存标记已清空,则将第二缓存中与第一缓存中已写入磁盘的数据对应的数据删除,从而第二缓存的数据与第一缓存的数据同步。
[0073]作为一种可实施方式,还包括第二标记单元500a。第二控制器,被配置以若第二控制器为预设主控制器,且获得第一控制器将写请求信号对应的数据写入第一缓存后,通过第二标记模块500a用已写缓存标记将第二缓存标记为已写缓存,将已写缓存中与写请求信号对应的数据写入逻辑卷对应的磁盘中,将已写缓存中已写入磁盘的数据删除,并将第二缓存中的已写缓存标记清空。
[0074]作为一种可实施方式,还包括第二轮询模块500b。第一控制器,被配置以通过第二轮询模块500b轮询第二缓存的状态,若获得已写缓存标记已清空,则将第一缓存中与第二缓存中已写入磁盘的数据对应的数据删除,从而使第一缓存的数据与第二缓存的数据同步。
[0075]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出 的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1.一种应用于双控存储系统的缓存同步方法,其特征在于,包括以下步骤: 主机发送写请求信号到第一控制器; 判断所述第一控制器是否为所述写请求信号对应逻辑卷的预设主控制器; 若所述第一控制器为所述预设主控制器,则所述第一控制器将所述写请求信号对应的数据缓存至所述第一控制器的第一缓存中,并将所述写请求信号传递到第二控制器; 所述第二控制器接收到所述写请求信号后,将所述写请求信号对应的数据写入所述第二控制器的第二缓存中,使得所述第二缓存的数据与所述第一缓存的数据同步,并在同步后发送确认信号到所述第一控制器,所述第一控制器接收到所述确认信号后返回同步完成信号到所述主机; 若所述第一控制器不是所述预设主控制器,则所述第一控制器将写请求信号传递给作为所述逻辑卷预设主控制器的第二控制器,所述第二控制器将所述写请求信号对应的数据缓存至所述第二控制器的第二缓存中,发送确认信号到所述第一控制器; 所述第一控制器接收所述确认信号后,将所述写请求信号对应的数据写入所述第一控制器的第一缓存中,使得所述第一缓存的数据与所述第二缓存的数据同步,并在同步后返回同步完成信号到所述主机。2.根据权利要求1所述的应用于双控存储系统的缓存同步方法,其特征在于,若所述第一控制器为所述预设主控制器,且所述第一控制器接收所述确认信号后,包括如下步骤: 所述第一控制器用已写缓存标记将所述第一缓存标记为已写缓存,将所述已写缓存中与所述写请求信号对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第一缓存中的所述已写缓存标记清空。3.根据权利要求2所述的应用于双控存储系统的缓存同步方法,其特征在于,所述第一控制器用已写缓存标记将所述第一缓存标记为已写缓存,将所述已写缓存中与所述写请求信号对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,将所述第一缓存中的所述已写缓存标记清空之后,还包括如下步骤: 所述第二控制器轮询所述第一缓存的状态,若获得所述已写缓存标记已清空,则所述第二控制器将所述第二缓存中与所述第一缓存中已写入所述磁盘的数据对应的数据删除,从而使所述第二缓存的数据与所述第一缓存的数据同步。4.根据权利要求1所述的应用双控存储系统的缓存同步方法,其特征在于,若所述第二控制器为所述预设主控制器,且所述第一控制器将所述写请求信号对应的数据写入所述第一缓存之后,包括如下步骤: 所述第二控制器用已写缓存标记将所述第二缓存标记为已写缓存,所述第二控制器将所述已写缓存中与所述写请求信号对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第二缓存中的所述已写缓存标记清空。5.根据权利要求4所述的应用于双控存储系统的缓存同步方法,其特征在于,所述第二控制器用已写缓存标记将所述第二缓存标记为已写缓存,所述第二控制器将所述已写缓存中与所述写请求信号对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第二缓存中的所述已写缓存标记清空之后,还包括如下步骤: 所述第一控制器轮询所述第二缓存的状态,若获得所述已写缓存标记已清空,则所述第一控制器将所述第一缓存中与所述第二缓存中已写入所述磁盘的数据对应的数据删除,从而使所述第一缓存的数据与所述第二缓存的数据同步。6.一种应用于双控存储系统的缓存同步系统,其特征在于,包括第一控制器,第二控制器和主机,所述第一控制器和所述第二控制器均包括接收模块,判断模块,第一缓存模块,第一同步模块,第二缓存模块,第二同步模块和返回模块,其中: 所述第一控制器,被配置以通过所述接收模块接收主机发送的写请求信号,通过所述判断模块判断所述第一控制器是否为所述写请求信号对应逻辑卷的预设主控制器; 所述第一控制器,被配置以若所述第一控制器为所述预设主控制器,则通过所述第一缓存模块将所述写请求信号对应的数据缓存至所述第一控制器的第一缓存中,并将所述写请求信号传递到第二控制器; 所述第二控制器,被配置以若所述第二控制器接收到所述写请求信号后,通过所述第一同步模块将所述写请求信号对应的数据写入所述第二控制器的第二缓存中,使得所述第二缓存的数据与所述第一缓存的数据同步,并在同步后发送确认信号到所述第一控制器,所述第一控制器接收到所述确认信号后,通过所述返回模块返回同步完成信号到所述主机; 所述第二控制器,被配置以若所述第二控制器为所述预设主控制器,则通过所述第二控制器接收所述第一控制器传递的写请求信号,并将所述写请求信号对应的数据缓存至所述第二控制器的第二缓存中,发送确认信号到所述第一控制器; 所述第一控制器,被配置以若接收到所述确认信号后,通过所述第二同步模块将所述写请求信号对应的数据写入所述第一控制器的第一缓存中,使得所述第一缓存的数据与所述第二缓存的数据同步,并在同步后通过所述返回模块返回同步完成信号到所述主机。7.根据权利要求6所述的应用于双控存储系统的缓存同步系统,其特征在于,还包括第一标记模块; 所述第一控制器,被配置以若所述第一控制器为所述预设主控制器,且接收到所述确认信号后,通过所述第一标记模块用已写缓存标记将所述第一缓存标记为已写缓存,将所述已写缓存中与所述写请求信号对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第一缓存中的所述已写缓存标记清空。8.根据权利要求7所述的应用于双控存储系统的缓存同步系统,其特征在于,还包括第一轮询模块; 所述第二控制器,被配置以通过所述第一轮询模块轮询所述第一缓存的状态,若获得所述已写缓存标记已清空,则将所述第二缓存中与所述第一缓存中已写入所述磁盘的数据对应的数据删除,从而使所述第二缓存的数据与所述第一缓存的数据同步。9.根据权利要求6所述的应用于双控存储系统的缓存同步系统,其特征在于,还包括第二标记模块; 所述第二控制器,被配置以若所述第二控制器为所述预设主控制器,且获得所述第一控制器将所述写请求信号对应的数据写入所述第一缓存后,通过所述第二标记模块用已写缓存标记将所述第二缓存标记为已写缓存,将所述已写缓存中与所述写请求信号对应的数据写入所述逻辑卷对应的磁盘中,将所述已写缓存中已写入所述磁盘的数据删除,并将所述第二缓存中的所述已写缓存标记清空。10.根据权利要求9所述的应用于双控存储系统的缓存同步系统,其特征在于,还包括第二轮询模块; 所述第一控制器,被配置以通过所述第二轮询模块轮询所述第二缓存的状态,若获得所述已写缓存标记已清空,则将所述第一缓存中与所述第二缓存中已写入所述磁盘的数据对应的数据删除,从而使所述第一缓存的数据与所述第二缓存的数据同步。
【专利摘要】本发明提供一种应用于双控存储系统的缓存同步方法及系统。其中方法包括以下步骤:主机发送写请求信号到第一控制器;若第一控制器为主控制器,缓存写请求信号对应的数据至第一缓存,并将写请求信号传递到第二控制器,第二控制器同步数据并发送确认信号到第一控制器,第一控制器返回同步完成信号到主机;否则,第一控制器将写请求信号传递给作为逻辑卷主控制器的第二控制器,第二控制器缓存数据至第二缓存并发送确认信号到第一控制器,第一控制器同步数据并返回同步完成信号到主机。其结合写请求信号传递的功能,将页面同步限定在缓存回写中,省却许多页面同步的过程,且写请求信号对应的数据是批量的,大大提高了双控存储系统的效率。
【IPC分类】G06F12/08
【公开号】CN104881368
【申请号】CN201510229534
【发明人】陈杰, 沈伟亮
【申请人】北京飞杰信息技术有限公司
【公开日】2015年9月2日
【申请日】2015年5月7日
转载请注明原文地址:https://www.famiwei.com/read-8138707.html

最新回复(0)