CN106775472B - 一种控制器缓存方法、存储控制器及多控制器存储系统 - Google Patents
一种控制器缓存方法、存储控制器及多控制器存储系统 Download PDFInfo
- Publication number
- CN106775472B CN106775472B CN201611131344.1A CN201611131344A CN106775472B CN 106775472 B CN106775472 B CN 106775472B CN 201611131344 A CN201611131344 A CN 201611131344A CN 106775472 B CN106775472 B CN 106775472B
- Authority
- CN
- China
- Prior art keywords
- controller
- controllers
- mirror image
- fault
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 116
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000011084 recovery Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 4
- 230000014759 maintenance of location Effects 0.000 description 3
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种控制器缓存方法,用于多控制器存储系统,包括接收计算机发送的IO数据,将IO数据缓存至自身所在的控制器并生成对应的镜像;从除自身所在的控制器以外的其他控制器中按照预设规则选择N个控制器作为镜像控制器,并将镜像分别发送至两个镜像控制器内存储;N为不小于2的正整数;周期性地检测自身是否故障,若是,发送故障信号至对应的镜像控制器内,供镜像控制器将存储的故障控制器的镜像刷写至后端存储设备内。本发明能够尽可能避免缓存数据的丢失,减少后端存储数据与IO输入的数据不一致的情况发生,可靠性高;本发明还公开了一种基于上述方法的存储控制器以及一种多控制器存储系统。
Description
技术领域
本发明涉及IO缓存技术领域,特别是涉及一种控制器缓存方法及存储控制器。本发明还涉及一种多控制器存储系统。
背景技术
存储区域网络(Storage Area Network and SAN Protocols,简写SAN,即存储区域网络及其协议)是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。
现有的磁盘阵列通常包括两个或多个控制器,俗称双控或多控。双控一般采用紧耦合的物理硬件结构,即一般双控存储硬件呈现出来的是一个机器盒子;多控一般采用松耦合的物理结构,即一般由多个双控,通过某种控制器/引擎互联技术,将多个双控直接连接起来,使其对外呈现为一个整体。
存储系统和其它计算机系统一样,一般通过物理内存来缓存读写数据,IO读取进来的数据先缓存在控制器内,当缓存的数据达到一定量时统一刷写至后端存储内。而存储系统为了提高高可用性,一般在控制器中的缓存数据,都会有镜像的,比如控制器A上的缓存数据,会实时镜像到控制器B上,确保任何时间A和B上的缓存数据是一致的,这样在任意时间,当某一控制器故障时,其镜像控制器会将镜像数据刷写至后端存储,避免了数据丢失。
但在多控存储系统,由于物理上是有多个双控存储组成的,所以,目前采用的普遍都是在双控存储之间进行缓存镜像,这种情况下只能允许同一时间内仅一个控制器故障;但因为双控存储本身为一体,所以同时故障的概率很大,而同一个双控存储的两个控制器同时故障后会导致缓存数据丢失,后端存储数据与IO输入的数据不一致的情况发生。
因此,如何提供一种存储可靠性高的控制器缓存方法及存储控制器和多控制器存储系统是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种控制器缓存方法及存储控制器,能够尽可能避免缓存数据的丢失,减少后端存储数据与IO输入的数据不一致的情况发生,可靠性高;本发明的另一目的是提供一种多控制器存储系统。
为解决上述技术问题,本发明提供了一种控制器缓存方法,用于多控制器存储系统,包括:
接收计算机发送的IO数据,将所述IO数据缓存至自身所在的控制器并生成对应的镜像;
从除自身所在的控制器以外的其他控制器中按照预设规则选择N个控制器作为镜像控制器,并将所述镜像分别发送至两个所述镜像控制器内存储;N为不小于2的正整数;
周期性地检测自身是否故障,若是,发送故障信号至对应的镜像控制器内,供所述镜像控制器将存储的故障控制器的镜像刷写至后端存储设备内。
优选地,还包括:
当接收到其他控制器发送的故障信号后,确定当前除故障控制器以外的非故障控制器的总个数;
若所述总个数大于N,则按照预设规则从除自身所在控制器以外的其余非故障控制器内重新选择N个控制器作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储;
若所述总个数大于1但不大于N,则将除自身所在控制器以外的全部非故障控制器均作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储。
优选地,每次选择镜像控制器后,还包括:
对当前自身选择的各个镜像控制器的标识信息进行记录,得到对应当前控制器情况的记录结果;
当检测到其他控制器发送的恢复信号后,依据所述记录结果、所述恢复信号对应的控制器的信息、当前非故障控制器的总个数以及所述预设规则重新选择自身对应的镜像控制器。
优选地,N取2。
为解决上述技术问题,本发明还提供了一种存储控制器,用于多控制器存储系统,包括:
缓存模块,用于接收计算机发送的IO数据,将所述IO数据缓存至自身所在的控制器并生成对应的镜像;
镜像控制器选择模块,用于从除自身所在的控制器以外的其他控制器中按照预设规则选择N个控制器作为镜像控制器,并将所述镜像分别发送至两个所述镜像控制器内存储;N为不小于2的正整数;
高可用模块,用于周期性地检测自身是否故障,若是,发送故障信号至对应的所述镜像控制器内,供所述镜像控制器将存储的故障控制器的镜像刷写至后端存储设备内;
互联模块,用于建立自身所在控制器与所述多控制器存储系统内的其他全部控制器之间的通信连接。
优选地,所述镜像控制器选择模块还用于:
当接收到其他控制器发送的故障信号后,确定当前除故障控制器以外的非故障控制器的总个数;若所述总个数大于N,则按照预设规则从除自身所在控制器以外的其余非故障控制器内重新选择N个控制器作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储;若所述总个数大于1但不大于N,则将除自身所在控制器以外的全部非故障控制器均作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储。
优选地,还包括:
镜像历史数据库,用于在每次选择镜像控制器后,对当前自身选择的各个镜像控制器的标识信息进行记录,得到对应当前控制器情况的记录结果;
相应的,所述镜像控制器选择模块还用于:
当检测到其他控制器发送的恢复信号后,依据所述记录结果、所述恢复信号对应的控制器的信息、当前非故障控制器的总个数以及所述预设规则重新选择自身对应的镜像控制器。
为解决上述技术问题,本发明还提供了一种多控制器存储系统,包括后端存储设备、计算机以及多个如以上任一项所述的存储控制器;其中,所述存储控制器的个数不少于N+1个,N为不小于2的正整数。
本发明提供了一种控制器缓存方法及存储控制器,用于多控制器存储系统,本发明中,控制器接收计算机发送的IO数据后,会将IO数据缓存至自身,并且,还会将该IO数据的镜像缓存至另外N个控制器内,其中,N不小于2。可见,即使有一组双控存储中的两个控制器均出现故障,本发明还有另外的至少一个控制器内存储有故障控制器的镜像,尽可能避免了缓存数据的丢失,减少了后端存储数据与IO输入的数据不一致的情况发生,可靠性高。本发明还提供了一种多控制器存储系统,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种控制器缓存方法的过程的流程图;
图2为本发明提供的一种存储控制器的结构示意图。
具体实施方式
本发明的核心是提供一种控制器缓存方法及存储控制器,能够尽可能避免缓存数据的丢失,减少后端存储数据与IO输入的数据不一致的情况发生,可靠性高;本发明的另一核心是提供一种多控制器存储系统。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种控制器缓存方法,用于多控制器存储系统,参见图1所示,图1为本发明提供的一种控制器缓存方法的过程的流程图;该方法包括:
步骤s101:接收计算机发送的IO数据,将IO数据缓存至自身所在的控制器并生成对应的镜像;
步骤s102:从除自身所在的控制器以外的其他控制器中按照预设规则选择N个控制器作为镜像控制器,并将镜像分别发送至两个镜像控制器内存储;N为不小于2的正整数;
步骤s103:周期性地检测自身是否故障,若是,发送故障信号至对应的镜像控制器内,供镜像控制器将存储的故障控制器的镜像刷写至后端存储设备内。
其中,步骤s103与步骤s101以及步骤s102并无先后顺序之分,在周期性检测当前控制器是否故障时,也可以同时接收计算机发送的IO数据,并将生成的镜像发送至镜像控制器进行存储。正常来说,若多控制器存储系统内没有控制器发生故障的话,则每个控制器的镜像控制器一旦选定即不再变化,即每次接收到IO数据后,均会将生成的镜像发送至之前选定的N个控制器内存储。
可以理解的是,控制器会将接收到的IO数据进行缓存,存够一定量的数据后才会统一刷写至后端存储设备,而不是立即刷写至后端存储设备,故一旦控制器故障的话,若没有存储镜像的话,尚未刷写至后端存储设备的数据即会丢失。
另外,这里的预设规则一般需要避免个别控制器内存储的镜像过多,尽可能保证每个控制器作为其他控制器的镜像控制器的次数相同。例如,若包括ABCD四个控制器,N取2;则可令A作为B和C的镜像控制器,B作为C和D的镜像控制器,C作为A和D的镜像控制器,D作为A和B的镜像控制器,这样每个控制器均作为其他两个控制器的镜像控制器,每个控制器内存储的数据总量不会差异过大。
并且,这里的预设规则还包括若当前已经选择好对应的镜像控制器,且此时并未出现新的故障控制器时,则将镜像发送至之前选定的镜像控制器,而不需要每次均重新选择。
作为优选地,该方法还包括:
当接收到其他控制器发送的故障信号后,确定当前除故障控制器以外的非故障控制器的总个数;
若总个数大于N,则按照预设规则从除自身所在控制器以外的其余非故障控制器内重新选择N个控制器作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储;
若总个数大于1但不大于N,则将除自身所在控制器以外的全部非故障控制器均作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储。
可以理解的是,当多控制器存储系统内有控制器发生故障时,将该故障控制器作为镜像控制器的若干个控制器则会失去自身的一个镜像控制器,这样剩余未故障的各个控制器的镜像分布即变得不均匀,镜像控制器变少的这部分控制器的数据丢失危险增大。为了尽可能保证各个控制器的数据不丢失,故需要对镜像控制器进行重新分配,即根据当前非故障控制器的情况,重新为每个控制器选择镜像控制器,尽可能保证每个非故障控制器的镜像控制器的个数相同。
进一步可知,每次选择镜像控制器后,该方法还包括:
对当前自身选择的各个镜像控制器的标识信息进行记录,得到对应当前控制器情况的记录结果;
当检测到其他控制器发送的恢复信号后,依据记录结果、恢复信号对应的控制器的信息、当前非故障控制器的总个数以及预设规则重新选择自身对应的镜像控制器。
可以理解的是,这里的记录结果记录的是,在当前多控制器存储系统的故障情况下,自身对应的控制器所选择的的镜像控制器是哪几个。当由于故障恢复等原因,导致多控制器存储系统变回上述故障情况时,即可令自身对应的镜像控制器恢复成上次所选择的的那几个。即上述实施例的目的是为了使多控制器存储系统在每种故障情况下,采用同一种镜像分配方式。
例如,若包括ABCD四个控制器,N取2;当A故障后,对BCD进行重分配,得到分配结果1,之后B故障,对CD进行重分配,得到分配结果2;若之后B恢复正常,则此时系统又处于仅有A故障,故此时BCD的分配方式采用之前的分配结果1。
为方便理解,下面就一个具体实施例对本发明提出的方案进行介绍:
多控制器存储系统包括两个双控存储,共组成四控存储系统,每个双控系统称之为一个引擎,即引擎0和引擎1。每个引擎中包括两个控制器,引擎0中包括控制器A和控制器B,引擎1中包括控制器C和控制器D。N取2。
参见表1所示,表1为各个控制器的镜像分配情况。其中,每个控制器也存储了一份自己本身的镜像。
表1各个控制器存储的镜像情况
控制器 | A | B | C | D |
缓存部分一镜像 | A | A | A | B |
缓存部分二镜像 | C | B | B | C |
缓存部分三镜像 | D | D | C | D |
故由表1可知,从单个控制器来看,即:
控制器A的缓存的是控制器A、C、D的缓存数据;
控制器B的缓存的是控制器A、B、D的缓存数据;
控制器C的缓存的是控制器A、B、C的缓存数据;
控制器D的缓存的是控制器B、C、D的缓存数据。
从缓存镜像来看,即:
控制器A的镜像,缓存到控制器A、B、C上面;
控制器B的镜像,缓存到控制器B、C、D上面;
控制器C的镜像,缓存到控制器A、C、D上面;
控制器D的镜像,缓存到控制器A、B、D上面。
即若控制器A接收到IO数据后,会将该IO镜像到控制器B、C上面;
即若控制器B接收到IO数据后,会将该IO镜像到控制器C、D上面;
即若控制器C接收到IO数据后,会将该IO镜像到控制器A、D上面;
即若控制器D接收到IO数据后,会将该IO镜像到控制器A、B上面;
从而可以确保每个IO数据都会有三份镜像存在;且每个控制器作为另外两个控制器的镜像控制器,镜像存储分布均匀。
这样,可以保证满足任意两个控制器故障,缓存中的数据依然存在不丢失,提高了数据存储的可靠性。
进一步的,若检测到控制器A故障,则将B或C中存储的控制器A的镜像刷写至后端存储设备(磁盘或非易失存储)上,并进行镜像重新分配,同时记录分配情况,得到记录结果。重分配后的镜像分布如表2。
表2控制器A故障后各个控制器存储的镜像情况
控制器 | B | C | D |
缓存部分一镜像 | B | B | B |
缓存部分二镜像 | C | C | C |
缓存部分三镜像 | D | D | D |
此时因为只剩下3个控制器,故每个控制器上的缓存数据是一样的。
进一步的,若在控制器A故障的基础上,又检测到控制器D故障,将B或C中存储的控制器D的镜像刷写至后端存储设备(磁盘或非易失存储)上,并进行镜像重新分配,同时记录分配情况,得到记录结果。重分配后的镜像分布如表3。
表3控制器A和D故障后各个控制器存储的镜像情况
控制器 | B | C |
缓存部分一镜像 | B | B |
缓存部分二镜像 | C | C |
此时因为只剩下2个控制器,故重新划分每个控制器的缓存部分,只划分为两部分,类似双控存储系统。
进一步的,当检测到故障控制器D恢复后,依据存储的记录结果,将镜像控制器的分配情况恢复到表2所示的状态;当若检测到故障控制器A和D均恢复后,则依据存储的记录结果,将镜像控制器的分配情况恢复到表1所示的状态。
另外,若在表1的基础上,检测到控制器A、D同时故障,则会将控制器B、C上面关于控制器A、D的缓存数据刷写到后端存储设备上,然后重新分布镜像控制器,因为只剩下2个控制器,故重新划分每个控制器的缓存部分,只划分为两部分。当然,A、B同时故障后的步骤与上述步骤相同。
可见,本发明可以确保支持任意N个控制器同时故障,其中,N可以为2,当然,本发明不限定N的具体数值。
本发明提供了一种控制器缓存方法,用于多控制器存储系统,本发明中,控制器接收计算机发送的IO数据后,会将IO数据缓存至自身,并且,还会将该IO数据的镜像缓存至另外N个控制器内,其中,N不小于2。可见,即使有一组双控存储中的两个控制器均出现故障,本发明还有另外的至少一个控制器内存储有故障控制器的镜像,尽可能避免了缓存数据的丢失,减少了后端存储数据与IO输入的数据不一致的情况发生,可靠性高。
本发明还提供了一种存储控制器,用于多控制器存储系统,参见图2所示,图2为本发明提供的一种存储控制器的结构示意图。该存储控制器包括:
缓存模块1,用于接收计算机发送的IO数据,将IO数据缓存至自身所在的控制器并生成对应的镜像;
镜像控制器选择模块2,用于从除自身所在的控制器以外的其他控制器中按照预设规则选择N个控制器作为镜像控制器,并将镜像分别发送至两个镜像控制器内存储;N为不小于2的正整数;
高可用模块3,用于周期性地检测自身是否故障,若是,发送故障信号至对应的镜像控制器内,供镜像控制器将存储的故障控制器的镜像刷写至后端存储设备内;
互联模块4,用于建立自身所在控制器与多控制器存储系统内的其他全部控制器之间的通信连接。
可以理解的是,为了实现镜像文件的传输,各个控制器两两之间均应建立有通信连接。
作为优选地,镜像控制器选择模块2还用于:
当接收到其他控制器发送的故障信号后,确定当前除故障控制器以外的非故障控制器的总个数;若总个数大于N,则按照预设规则从除自身所在控制器以外的其余非故障控制器内重新选择N个控制器作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储;若总个数大于1但不大于N,则将除自身所在控制器以外的全部非故障控制器均作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储。
作为优选地,该存储控制器还包括:
镜像历史数据库,用于在每次选择镜像控制器后,对当前自身选择的各个镜像控制器的标识信息进行记录,得到对应当前控制器情况的记录结果;
相应的,镜像控制器选择模块2还用于:
当检测到其他控制器发送的恢复信号后,依据记录结果、恢复信号对应的控制器的信息、当前非故障控制器的总个数以及预设规则重新选择自身对应的镜像控制器。
本发明提供了一种存储控制器,用于多控制器存储系统,本发明中,控制器接收计算机发送的IO数据后,会将IO数据缓存至自身,并且,还会将该IO数据的镜像缓存至另外N个控制器内,其中,N不小于2。可见,即使有一组双控存储中的两个控制器均出现故障,本发明还有另外的至少一个控制器内存储有故障控制器的镜像,尽可能避免了缓存数据的丢失,减少了后端存储数据与IO输入的数据不一致的情况发生,可靠性高。
本发明还提供了一种多控制器存储系统,包括后端存储设备、计算机以及多个如以上任一项的存储控制器;其中,存储控制器的个数不少于N+1个,N为不小于2的正整数。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种控制器缓存方法,用于多控制器存储系统,其特征在于,包括:
接收计算机发送的IO数据,将所述IO数据缓存至自身所在的控制器并生成对应的镜像;
从除自身所在的控制器以外的其他控制器中按照预设规则选择N个控制器作为镜像控制器,并将所述镜像分别发送至两个所述镜像控制器内存储;N为不小于2的正整数;其中,所述预设规则控制每个控制器作为其他控制器的镜像控制器的次数相同;
周期性地检测自身是否故障,若是,发送故障信号至对应的镜像控制器内,供所述镜像控制器将存储的故障控制器的镜像刷写至后端存储设备内。
2.根据权利要求1所述的方法,其特征在于,还包括:
当接收到其他控制器发送的故障信号后,确定当前除故障控制器以外的非故障控制器的总个数;
若所述总个数大于N,则按照预设规则从除自身所在控制器以外的其余非故障控制器内重新选择N个控制器作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储;
若所述总个数大于1但不大于N,则将除自身所在控制器以外的全部非故障控制器均作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储。
3.根据权利要求2所述的方法,其特征在于,每次选择镜像控制器后,还包括:
对当前自身选择的各个镜像控制器的标识信息进行记录,得到对应当前控制器情况的记录结果;
当检测到其他控制器发送的恢复信号后,依据所述记录结果、所述恢复信号对应的控制器的信息、当前非故障控制器的总个数以及所述预设规则重新选择自身对应的镜像控制器。
4.根据权利要求1-3任一项所述的方法,其特征在于,N取2。
5.一种存储控制器,用于多控制器存储系统,其特征在于,包括:
缓存模块,用于接收计算机发送的IO数据,将所述IO数据缓存至自身所在的控制器并生成对应的镜像;
镜像控制器选择模块,用于从除自身所在的控制器以外的其他控制器中按照预设规则选择N个控制器作为镜像控制器,并将所述镜像分别发送至两个所述镜像控制器内存储;N为不小于2的正整数;其中,所述预设规则控制每个控制器作为其他控制器的镜像控制器的次数相同;
高可用模块,用于周期性地检测自身是否故障,若是,发送故障信号至对应的所述镜像控制器内,供所述镜像控制器将存储的故障控制器的镜像刷写至后端存储设备内;
互联模块,用于建立自身所在控制器与所述多控制器存储系统内的其他全部控制器之间的通信连接。
6.根据权利要求5所述的存储控制器,其特征在于,所述镜像控制器选择模块还用于:
当接收到其他控制器发送的故障信号后,确定当前除故障控制器以外的非故障控制器的总个数;若所述总个数大于N,则按照预设规则从除自身所在控制器以外的其余非故障控制器内重新选择N个控制器作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储;若所述总个数大于1但不大于N,则将除自身所在控制器以外的全部非故障控制器均作为镜像控制器,并将自身所在控制器生成的镜像发送至对应的镜像控制器内进行存储;其中,所述预设规则控制每个控制器作为其他控制器的镜像控制器的次数相同。
7.根据权利要求6所述的存储控制器,其特征在于,还包括:
镜像历史数据库,用于在每次选择镜像控制器后,对当前自身选择的各个镜像控制器的标识信息进行记录,得到对应当前控制器情况的记录结果;
相应的,所述镜像控制器选择模块还用于:
当检测到其他控制器发送的恢复信号后,依据所述记录结果、所述恢复信号对应的控制器的信息、当前非故障控制器的总个数以及所述预设规则重新选择自身对应的镜像控制器。
8.一种多控制器存储系统,其特征在于,包括后端存储设备、计算机以及多个如权利要求5-7任一项所述的存储控制器;其中,所述存储控制器的个数不少于N+1个,N为不小于2的正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611131344.1A CN106775472B (zh) | 2016-12-09 | 2016-12-09 | 一种控制器缓存方法、存储控制器及多控制器存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611131344.1A CN106775472B (zh) | 2016-12-09 | 2016-12-09 | 一种控制器缓存方法、存储控制器及多控制器存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106775472A CN106775472A (zh) | 2017-05-31 |
CN106775472B true CN106775472B (zh) | 2020-03-06 |
Family
ID=58879770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611131344.1A Active CN106775472B (zh) | 2016-12-09 | 2016-12-09 | 一种控制器缓存方法、存储控制器及多控制器存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106775472B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107342902B (zh) * | 2017-07-14 | 2020-05-26 | 苏州浪潮智能科技有限公司 | 一种四控服务器的链路重组方法及系统 |
CN107678689A (zh) * | 2017-09-27 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种数据写入的方法及装置 |
CN107704343A (zh) * | 2017-09-29 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种多控制器的数据备份方法、装置、设备及存储介质 |
US20200042066A1 (en) * | 2018-08-02 | 2020-02-06 | Alibaba Group Holding Limited | System and method for facilitating dram data cache dumping and rack-scale battery backup |
CN109298837A (zh) * | 2018-09-13 | 2019-02-01 | 郑州云海信息技术有限公司 | 一种多控制器缓存备份方法、装置、设备及可读存储介质 |
CN109407998B (zh) * | 2018-11-09 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种缓存中io流同步的方法、系统及相关组件 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122257A (zh) * | 2011-03-11 | 2011-07-13 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘阵列缓存数据的保存方法以及磁盘阵列 |
CN103092778A (zh) * | 2013-01-23 | 2013-05-08 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统的缓存镜像方法 |
CN103605616A (zh) * | 2013-11-21 | 2014-02-26 | 浪潮电子信息产业股份有限公司 | 一种多控制器间的缓存数据一致性保障方法 |
CN105335254A (zh) * | 2015-11-03 | 2016-02-17 | 烽火通信科技股份有限公司 | 虚拟化备份容错系统及方法 |
CN105573857A (zh) * | 2014-10-10 | 2016-05-11 | 北京计算机技术及应用研究所 | 一种多控磁盘阵列缓存镜像方法及系统 |
-
2016
- 2016-12-09 CN CN201611131344.1A patent/CN106775472B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122257A (zh) * | 2011-03-11 | 2011-07-13 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘阵列缓存数据的保存方法以及磁盘阵列 |
CN103092778A (zh) * | 2013-01-23 | 2013-05-08 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统的缓存镜像方法 |
CN103605616A (zh) * | 2013-11-21 | 2014-02-26 | 浪潮电子信息产业股份有限公司 | 一种多控制器间的缓存数据一致性保障方法 |
CN105573857A (zh) * | 2014-10-10 | 2016-05-11 | 北京计算机技术及应用研究所 | 一种多控磁盘阵列缓存镜像方法及系统 |
CN105335254A (zh) * | 2015-11-03 | 2016-02-17 | 烽火通信科技股份有限公司 | 虚拟化备份容错系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106775472A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106775472B (zh) | 一种控制器缓存方法、存储控制器及多控制器存储系统 | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
KR101259557B1 (ko) | 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법 | |
US7483318B2 (en) | Storage management process, storage management apparatus, and computer-readable medium storing storage management program | |
EP1625502B1 (en) | Redundant data assigment in a data storage system | |
JP4606455B2 (ja) | ストレージ管理装置、ストレージ管理プログラムおよびストレージシステム | |
EP1625501B1 (en) | Read, write, and recovery operations for replicated data | |
JP6056453B2 (ja) | プログラム、データ管理方法および情報処理装置 | |
CN110807064B (zh) | Rac分布式数据库集群系统中的数据恢复装置 | |
US11232007B2 (en) | Server system and method of switching server | |
CN103152395A (zh) | 一种分布式文件系统的存储方法及装置 | |
US20100306466A1 (en) | Method for improving disk availability and disk array controller | |
WO2017041616A1 (zh) | 数据读写方法及装置、双活存储系统及其实现方法 | |
CN108205573B (zh) | 一种数据分布式存储方法及系统 | |
US9996599B2 (en) | Using access count of the remote site to optimize file transfer order for asynchronous replication | |
CN115454727B (zh) | 一种数据恢复方法、装置、设备及可读存储介质 | |
CN111309245A (zh) | 一种分层存储写入方法和装置、读取方法和装置及系统 | |
CN110941666A (zh) | 数据库多活方法及装置 | |
CN116501259A (zh) | 磁盘组双活同步方法、装置、计算机设备及存储介质 | |
US20160070491A1 (en) | Information processor, computer-readable recording medium in which input/output control program is recorded, and method for controlling input/output | |
US7913109B2 (en) | Storage control apparatus and storage control method | |
CN110244904B (zh) | 一种数据存储系统、方法及装置 | |
CN117632808A (zh) | 多控存储阵列、存储系统、数据处理方法以及存储介质 | |
CN113391937A (zh) | 用于存储管理的方法、电子设备以及计算机程序产品 | |
CN105323271A (zh) | 一种云计算系统以及云计算系统的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |