CN103116476A - 一种多控制器间的缓存管理系统 - Google Patents
一种多控制器间的缓存管理系统 Download PDFInfo
- Publication number
- CN103116476A CN103116476A CN2013100567347A CN201310056734A CN103116476A CN 103116476 A CN103116476 A CN 103116476A CN 2013100567347 A CN2013100567347 A CN 2013100567347A CN 201310056734 A CN201310056734 A CN 201310056734A CN 103116476 A CN103116476 A CN 103116476A
- Authority
- CN
- China
- Prior art keywords
- controller
- data
- disk
- controllers
- buffer memory
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种多控制器间的缓存管理系统,通过控制器id记录数据块的分布,在单个缓存更新时,同时更新其它控制器的缓存,有效地克服了多控制器节点故障导致缓存数据丢失的缺陷,保证了数据的一致性,当系统中存在N+1个控制器时,能容忍N个控制器同时出现故障,同一数据在缓存中存在多份,并维持一张全局目录表,记录数据块的分布。在单个缓存更新时,同时更新其它控制器的缓存,有效地克服了多控制器节点故障导致缓存数据丢失的缺点,保证了数据的一致性。
Description
技术领域
本发明涉及计算机应用领域,具体地说是一种多控制器间的缓存管理系统。
背景技术
存储设备出现故障, 一直是IT人员头痛的事,因为没有有效的手段,让多个控制器间数据高速缓存保持一致。某个或某些控制器出现故障后,没有足够的缓存备份,导致数据丢失。这会严重影响到企业的正常营运。目前市面存储产品大多只支持一个或几个特定的控制器出故障后数据不丢失。采用此方案的系统,可以做到N+1个控制器的系统中,N个控制器出故障后缓存数据不丢失。
多控器间的缓存管理系统如字义所言,就是对多个控制器间的缓存资源虚拟化全局共享,实现缓存的统一管理与冗余分配,解决多个控制器同时故障时缓存数据丢失问题。
发明内容
本发明的目的是提供一种多控制器间的缓存管理系统。
本发明的目的是按以下方式实现的,同一数据在缓存中存在多份,通过控制器id记录数据块的分布,在单个缓存更新时,同时更新其它控制器的缓存,有效地克服了多控制器节点故障导致缓存数据丢失的缺陷,保证了数据的一致性,当系统中存在N+1个控制器时,能容忍N个控制器同时出现故障,该系统结构包括:缓存管理模块(1)、缓存同步模块(2)、故障处理模块(3),其中:
缓存管理模块(1)提供如下功能:
磁盘管理功能:所有加入到多控系统缓存管理模块的磁盘对于每台控制器来说都需要创建对应的红黑树用来缓存数据,所有红黑树用链表连接起来,并记录此磁盘所属控制器id,便于确定此磁盘属于哪个控制器,并通知所有控制器,使其他控制器也创建此磁盘的红黑树并记录所属控制器id,从系统中移除磁盘时,需要通知所有控制器释放此结构;
缓存数据组织缓存功能:将所有从本控制器或其他控制器发送的数据按照一定规则有序组织并缓存到内存中,每台控制器用链表将所有分配的空闲页挂接在一个链表中,对于所有控制器的每个磁盘,写入的数据都缓存在每台控制器对应磁盘的红黑树上;
刷写缓存数据功能:根据磁盘id判断所属本控制器磁盘,刷新本磁盘上的红黑树中缓存数据到磁盘中,并通知所有其他控制器释放此缓存数据,其他磁盘释放对应红黑树的缓存数据,所有释放的缓存移动到空余页链表中;
预读功能:在读数据时,如果数据存在于内存中,直接从内存返回数据内容,避免在磁盘上查找的低效率;
缓存同步模块(2)提供如下功能:
从任意控制器写入数据时,将此缓存数据发送到其余控制器缓存中保存,其余控制器更新自己的缓存,从而保证所有控制器缓存数据一致;
从任意控制器读取数据时,如果数据不存在于缓存中,需要根据磁盘所属控制器id来通知此控制器读取实际数据,此控制器将数据读到缓存中后,将此缓存数据发送到其余控制器缓存中保存,其余控制器更新自己的缓存,从而保证所有控制器缓存数据一致;
故障处理模块(3)提供如下功能:
故障处理:负责通过心跳包检测各个控制器的状态,当某个或某些控制器出现故障时,相邻控制器会接管这些故障控制器磁盘,并更新此磁盘的所属控制器id;
新增控制器:向系统新增控制器时,从相邻控制器复制缓存数据,保证缓存数据一致性。
在体系结构中,所有控制器保存一份相同的缓存数据。
缓存管理模块(1),当加入磁盘时通知所有控制器,使其他控制器也创建此磁盘的数据结构用来缓存数据。
缓存同步模块(2),从任意控制器写入数据时,将此缓存数据发送到其余控制器缓存中保存,其余控制器更新自己的缓存,从而保证所有控制器缓存数据一致,从任意控制器读取数据时,如果数据不存在于缓存中,需要根据磁盘所属控制器id来通知此控制器读取实际数据,此控制器将数据读到缓存中后,将此缓存数据发送到其余控制器缓存中保存,其余控制器更新自己的缓存,从而保证所有控制器缓存数据一致。
故障处理模块(3),向系统新增控制器时,从相邻控制器复制缓存数据,保证缓存数据一致性。
本发明的有益效果是:一种多控器间的缓存管理系统支持在N+1个节点的存储系统中,N个节点同时故障。因此采用这种“多控器间的缓存管理系统”技术可以增加系统可靠性,防止在多个控制器出现故障时,缓存数据丢失问题。
附图说明
图1是磁盘注册流程图;
图2是缓存数据写入同步流程图;
图3是缓存数据读取同步流程图;
图4是单台控制器缓存数据组织形式图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
正如发明内容中所描述的,本发明体系结构主要包括:缓存管理模块(1)、缓存同步模块(2)、故障处理模块(3)。
在一个典型的配置环境里,如果是写入数据,数据写入到缓存中,缓存同步模块(2)根据将写入数据同步到其他控制器缓存,其他控制器缓存管理模块(1)会记录此数据,同步完成后本地控制器缓存管理模块(1)也记录此数据并通知上层写入完成。如果是读取数据,首先查找是否在本控制器缓存中,如果不存在则根据磁盘所属控制器id,缓存备份模块(2)通知所在控制器读取磁盘数据到缓存中并同步缓存数据。同步完成后直接读取本地控制器的缓存,返回读成功。当系统中某台控制器出现故障时,相邻控制器的故障处理模块(3)接管出错控制器的磁盘,并修改这些磁盘的所属控制器id为本控制器id,然后通知其他控制器更新这些磁盘修改的所属控制器id。
至此,已经完整实现了整个一种多控器间的缓存管理系统,这种技术与传统的缓存管理系统不一样之处在于实现了多个控制器的缓存同步功能,并且保障了N+1个控制器存储系统中,N个控制器同时故障系统不会丢失缓存数据。
因此采用这种技术,使其应用在存储系统中,解决了多控制器间数据高速缓存的一致性问题,极大的提高了系统的可靠性。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (5)
1.一种多控制器间的缓存管理系统, 其特征在于同一数据在缓存中存在多份,通过控制器id记录数据块的分布,在单个缓存更新时,同时更新其它控制器的缓存,有效地克服了多控制器节点故障导致缓存数据丢失的缺陷,保证了数据的一致性,当系统中存在N+1个控制器时,能容忍N个控制器同时出现故障,该系统结构包括:缓存管理模块(1)、缓存同步模块(2)、故障处理模块(3),其中:
缓存管理模块(1)提供如下功能:
磁盘管理功能:所有加入到多控系统缓存管理模块的磁盘对于每台控制器来说都需要创建对应的红黑树用来缓存数据,所有红黑树用链表连接起来,并记录此磁盘所属控制器id,便于确定此磁盘属于哪个控制器,并通知所有控制器,使其他控制器也创建此磁盘的红黑树并记录所属控制器id,从系统中移除磁盘时,需要通知所有控制器释放此结构;
缓存数据组织缓存功能:将所有从本控制器或其他控制器发送的数据按照一定规则有序组织并缓存到内存中,每台控制器用链表将所有分配的空闲页挂接在一个链表中,对于所有控制器的每个磁盘,写入的数据都缓存在每台控制器对应磁盘的红黑树上;
刷写缓存数据功能:根据磁盘id判断所属本控制器磁盘,刷新本磁盘上的红黑树中缓存数据到磁盘中,并通知所有其他控制器释放此缓存数据,其他磁盘释放对应红黑树的缓存数据,所有释放的缓存移动到空余页链表中;
预读功能:在读数据时,如果数据存在于内存中,直接从内存返回数据内容,避免在磁盘上查找的低效率;
缓存同步模块(2)提供如下功能:
从任意控制器写入数据时,将此缓存数据发送到其余控制器缓存中保存,其余控制器更新自己的缓存,从而保证所有控制器缓存数据一致;
从任意控制器读取数据时,如果数据不存在于缓存中,需要根据磁盘所属控制器id来通知此控制器读取实际数据,此控制器将数据读到缓存中后,将此缓存数据发送到其余控制器缓存中保存,其余控制器更新自己的缓存,从而保证所有控制器缓存数据一致;
故障处理模块(3)提供如下功能:
故障处理:负责通过心跳包检测各个控制器的状态,当某个或某些控制器出现故障时,相邻控制器会接管这些故障控制器磁盘,并更新此磁盘的所属控制器id;
新增控制器:向系统新增控制器时,从相邻控制器复制缓存数据,保证缓存数据一致性。
2.根据权利要求1所述的方法,其特征在于在体系结构中,所有控制器保存一份相同的缓存数据。
3.根据权利要求1所述的方法,其特征在于缓存管理模块(1),当加入磁盘时通知所有控制器,使其他控制器也创建此磁盘的数据结构用来缓存数据。
4.根据权利要求1所述方法,其特征在于缓存同步模块(2),从任意控制器写入数据时,将此缓存数据发送到其余控制器缓存中保存,其余控制器更新自己的缓存,从而保证所有控制器缓存数据一致,从任意控制器读取数据时,如果数据不存在于缓存中,需要根据磁盘所属控制器id来通知此控制器读取实际数据,此控制器将数据读到缓存中后,将此缓存数据发送到其余控制器缓存中保存,其余控制器更新自己的缓存,从而保证所有控制器缓存数据一致。
5.根据权利要求1所述的方法,其特征在于故障处理模块(3),向系统新增控制器时,从相邻控制器复制缓存数据,保证缓存数据一致性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310056734.7A CN103116476B (zh) | 2013-02-22 | 2013-02-22 | 一种多控制器间的缓存管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310056734.7A CN103116476B (zh) | 2013-02-22 | 2013-02-22 | 一种多控制器间的缓存管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103116476A true CN103116476A (zh) | 2013-05-22 |
CN103116476B CN103116476B (zh) | 2016-12-28 |
Family
ID=48414868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310056734.7A Active CN103116476B (zh) | 2013-02-22 | 2013-02-22 | 一种多控制器间的缓存管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103116476B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506625A (zh) * | 2016-11-02 | 2017-03-15 | 郑州云海信息技术有限公司 | 四控服务器及四控服务器通信方法 |
CN106528447A (zh) * | 2016-10-25 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种分布式san的缓存同步方法 |
CN106897175A (zh) * | 2017-02-19 | 2017-06-27 | 郑州云海信息技术有限公司 | 热替换nc节点的方法及装置 |
CN107643988A (zh) * | 2017-09-15 | 2018-01-30 | 郑州云海信息技术有限公司 | 一种具有失效切换机制的存储系统及存储方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6549988B1 (en) * | 1999-01-22 | 2003-04-15 | Ilya Gertner | Data storage system comprising a network of PCs and method using same |
CN102006330A (zh) * | 2010-12-01 | 2011-04-06 | 北京瑞信在线系统技术有限公司 | 分布式缓存系统、数据的缓存方法及缓存数据的查询方法 |
US20110145499A1 (en) * | 2009-12-16 | 2011-06-16 | International Business Machines Corporation | Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system |
CN102333108A (zh) * | 2011-03-18 | 2012-01-25 | 北京神州数码思特奇信息技术股份有限公司 | 分布式缓存同步系统及方法 |
-
2013
- 2013-02-22 CN CN201310056734.7A patent/CN103116476B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6549988B1 (en) * | 1999-01-22 | 2003-04-15 | Ilya Gertner | Data storage system comprising a network of PCs and method using same |
US20110145499A1 (en) * | 2009-12-16 | 2011-06-16 | International Business Machines Corporation | Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system |
CN102006330A (zh) * | 2010-12-01 | 2011-04-06 | 北京瑞信在线系统技术有限公司 | 分布式缓存系统、数据的缓存方法及缓存数据的查询方法 |
CN102333108A (zh) * | 2011-03-18 | 2012-01-25 | 北京神州数码思特奇信息技术股份有限公司 | 分布式缓存同步系统及方法 |
Non-Patent Citations (2)
Title |
---|
李文中等: "分布式缓存系统中一种优化缓存部署的图算法", 《JOURNAL OF SOFTWARE》 * |
杨波等: "多控制器集群流媒体缓存代理的研究", 《电子与信息学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528447A (zh) * | 2016-10-25 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种分布式san的缓存同步方法 |
CN106506625A (zh) * | 2016-11-02 | 2017-03-15 | 郑州云海信息技术有限公司 | 四控服务器及四控服务器通信方法 |
CN106897175A (zh) * | 2017-02-19 | 2017-06-27 | 郑州云海信息技术有限公司 | 热替换nc节点的方法及装置 |
CN107643988A (zh) * | 2017-09-15 | 2018-01-30 | 郑州云海信息技术有限公司 | 一种具有失效切换机制的存储系统及存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103116476B (zh) | 2016-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7882316B2 (en) | Shared data mirroring apparatus, method, and system | |
US5210866A (en) | Incremental disk backup system for a dynamically mapped data storage subsystem | |
US9141486B2 (en) | Intelligent I/O cache rebuild in a storage controller | |
TWI450087B (zh) | 複數個磁碟陣列系統之資料儲存方法及資料儲存系統 | |
US7600152B2 (en) | Configuring cache memory from a storage controller | |
AU2013403132B2 (en) | Data storage method, data storage apparatus, and storage device | |
CN102033786B (zh) | 一种对象存储系统中修复副本一致性的方法 | |
CN104881368B (zh) | 应用于双控存储系统的缓存同步方法及系统 | |
CN105897859B (zh) | 一种存储系统 | |
JP2007122477A (ja) | Raidシステム、raidコントローラ及びそのリビルド/コピーバック処理方法 | |
US9286175B2 (en) | System and method of write hole protection for a multiple-node storage cluster | |
TW201107981A (en) | Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system | |
CN103116476A (zh) | 一种多控制器间的缓存管理系统 | |
US10642508B2 (en) | Method to limit impact of partial media failure of disk drive and detect/report the loss of data for objects due to partial failure of media | |
CN104166601A (zh) | 一种存储数据的备份方法和装置 | |
CN110134551B (zh) | 一种持续数据保护方法及装置 | |
CN105843560A (zh) | 一种维护主从式双控软Raid6一致性的方法及系统 | |
JP2006268420A (ja) | ディスクアレイ装置、ストレージシステムおよび制御方法 | |
CN101046760B (zh) | 存储装置、数据设置方法以及程序 | |
CN105740172A (zh) | 一种块设备数据缓存掉电保护的方法及系统 | |
CN100492323C (zh) | 对缓存内容进行保护的方法和装置以及缓存控制器 | |
JP2003316525A (ja) | ディスクアレイ制御装置 | |
CN104156327A (zh) | 一种分布式文件系统中写回模式下对象掉电识别方法 | |
WO2022033269A1 (zh) | 数据处理的方法、设备及系统 | |
CN105871987A (zh) | 数据写入的高可用系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |