CN105045531B - 一种存储双控制器间缓存同步机制 - Google Patents
一种存储双控制器间缓存同步机制 Download PDFInfo
- Publication number
- CN105045531B CN105045531B CN201510375634.XA CN201510375634A CN105045531B CN 105045531 B CN105045531 B CN 105045531B CN 201510375634 A CN201510375634 A CN 201510375634A CN 105045531 B CN105045531 B CN 105045531B
- Authority
- CN
- China
- Prior art keywords
- read
- controller
- cache synchronization
- data
- write requests
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种存储双控制器间缓存同步机制,属于存储双控制器的技术领域,本发明解决传统缓存同步实现中额外增加从控制器缓存同步的开销,影响控制器处理效率的问题。技术方案为:存储双控制器间采用万兆网络连接,由心跳进程和缓存同步进程完成相互间的通讯,具体使用内核层的socket完成;缓存同步功能的实现分为缓存同步进程及心跳进程的实现;缓存同步进程分为主从工作模式,在主工作模式下通过读写请求及读写异常触发缓存同步进程的发起,在从工作模式下,结合心跳进程进行故障检测进而转至故障接管线程的处理;缓存同步通讯协议数据包包括:命令类型、逻辑磁盘地址、物理设备号、数据大小、数据及读写返回值。
Description
技术领域
本发明涉及一种存储双控制器的技术领域,具体地说是一种存储双控制器间缓存同步机制。
背景技术
目前的存储系统体系结构已从传统的直接存储(DAS)发展为网络附加存储(NAS)体系结构和存储局域网络(SAN)体系结构。SAN(Storage Aera Network-存储区域网络)是一种通过网络方式连接存储设备和应用服务器的存储构架,这个网络专用于主机和存储设备之间的访问。当有数据的存取需求时,数据可以通过存储区域网络在服务器和后台存储设备之间高速传输。SAN体系结构的实现有赖于存储端SCSI Target软件,它使SCSI协议应用于高速数据传输网络成为可能。SAN体系结构存在单点故障的隐患,控制器无法处理写入失败,为提高写入可靠性,一般采用双控制器共同处理客户端读写命令。
双控制器的实现包括缓存模块及缓存同步两部分的实现。SCSI Target软件有FILEIO和BlockIO两种读写方式,FileIO一般采用文件系统中设计的缓存,而BlockIO没有自己的缓存,直接将数据传输至块设备层。为提高BlockIO性能,一般需要设计缓存模块。双控制器之间的数据备份也是基于该缓存模块进行设计,缓存同步的数据即该模块中存放的数据。
双控制器间缓存同步模式分为active-active及active-standby两种。active-active模式下两个控制器要分别备份对方控制器的缓存数据,保证缓存数据的可靠性。每个控制器本身的缓存空间分为两部分,一部分是当前控制器的缓存数据,另一部分是对方控制器的缓存备份。当其中一个控制器发生异常无法工作后,另一个接管所有的客户端数据请求,不会导致存储服务中断,并且缓存里的数据没有丢失。
active-standby模式下客户端的数据请求都由主控制器来处理,从控制器不接收数据请求也不会操作磁盘,从控制器的主要功能是缓存数据备份。主控制器所有对本地缓存的更新,都必须实时同步到从控制器的缓存中,即使主控制器故障,缓存数据也不会丢失。从控制器时刻监控主控制器是否工作正常,当主控制器发生异常状况后,客户端接收不到数据请求响应,会使用与从控制器的连接发送命令。此时从控制器代替主控制器处理请求,保证了高可用性。同时,从控制器将缓存中的备份数据作适当的处理,写入磁盘,或者直接作为缓存数据使用。
传统缓存同步实现中主控制器需要等待从控制器端同步完成才给客户端做出读写请求响应,由于主控制器大部分时间工作是正常的,从控制器端端缓存是没有必要的,因此对于正常的读写请求这种处理方式会额外增加从控制器缓存同步的开销,影响控制器处理效率。
发明内容
本发明的技术任务是针对以上不足之处,提供一种存储双控制器间缓存同步机制。解决传统缓存同步实现中额外增加从控制器缓存同步的开销,影响控制器处理效率的问题。
本发明解决其技术问题所采用的技术方案是:
一种存储双控制器间缓存同步机制,存储双控制器间采用万兆网络连接,由心跳进程和缓存同步进程完成相互间的通讯,具体使用内核层的socket完成;
将缓存同步功能的实现分为缓存同步进程及心跳进程的实现;将缓存同步进程分为主从工作模式,在主工作模式下通过读写请求及读写异常触发缓存同步进程的发起,在从工作模式下,结合心跳进程进行故障检测进而转至故障接管线程的处理;对读写返回正常时不用等待从控制器缓存完成即可响应客户端请求;
缓存同步通讯协议数据包包括:命令类型、逻辑磁盘地址、物理设备号、数据大小、数据及读写返回值。
当有读写请求及异常的数据及读写返回值时,将触发缓存同步进程的启动,对于读写失败的操作,从控制器将获得实时通知并结合故障检测结果做相应处理,如果是常规故障,即主控制器可通过再次发送读写请求完成,则从控制器只做缓存同步;如果是掉电故障,从控制器需对本次读写操作进行掉电后缓存同步并接管相应读写任务;
其中从控制器端接收的缓存数据还包括数据及读写返回值,通过记录读写请求在队列中的位置正确获得读写请求内容及相应返回值; 当数据及读写返回值正常时,不用等待从控制器缓存完成即可响应客户端请求;当数据及读写返回值异常时,等待从控制器缓存成功后对客户端请求响应。
双控制器间缓存同步处理流程如下:
(1)、主控制器端缓存同步进程检测到SCSI Target进程有新的读写请求时,启动缓存同步模块并读取其数据,读取的数据为读写命令的控制信息、数据及读写返回值;
(2)、将读取的数据进行封包传输至从控制器端,从控制器端缓存同步模块接收数据解包后存放到本地缓存;
(3)、主控制器端SCSI Target根据读取的数据响应客户端,当读写请求正常返回时,直接响应客户端,当读写请求异常时再次启动缓存同步进程将缓存数据发往从控制器;
(4)、从控制器端缓存同步模块将此次缓存数据与已有数据比较,如果没有则进行缓存,如果已有则更新数据及读写返回值;
(5)、对于读写请求返回值异常的缓存,从控制器根据心跳进程做故障检测,如果是常规故障,即主控制器可通过再次发送读写请求完成,则从控制器只做缓存同步;如果是掉电故障,从控制器对本次读写操作进行掉电后缓存同步并接管相应读写任务。
本发明的一种存储双控制器间缓存同步机制和现有技术相比,具有以下优点:
1、对双控制器缓存同步机制进行了重新设计,通过根据读写请求返回值做不同处理,节省读写返回正常时在从控制器端的缓存同步开销,从而提高控制器效率;
2、当读写返回值正常时,不用等待从控制器缓存完成即可响应客户端请求;当读写返回值异常时,才需等待从控制器缓存成功后对客户端请求响应;其中读写返回值如果正常,将省去从控制器端故障检测过程产生的开销;
3、缓存同步通讯协议数据包的设计,加入了对读写请求返回值的传输,如果该值正常可省去故障检测产生的开销,否则将该值与故障检测结果结合,判断是否需要进行故障接管。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种存储双控制器间缓存同步机制的双控制器间缓存同步处理流程框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
实施例1:
本发明的一种存储双控制器间缓存同步机制,存储双控制器间采用万兆网络连接,由心跳进程和缓存同步进程完成相互间的通讯,具体使用内核层的socket完成;
将缓存同步功能的实现分为缓存同步进程及心跳进程的实现;将缓存同步进程分为主从工作模式,在主工作模式下通过读写请求及读写异常触发缓存同步进程的发起,在从工作模式下,结合心跳进程进行故障检测进而转至故障接管线程的处理;对读写返回正常时不用等待从控制器缓存完成即可响应客户端请求;
缓存同步通讯协议数据包包括:命令类型、逻辑磁盘地址、物理设备号、数据大小、数据及读写返回值。
当有读写请求及异常的数据及读写返回值时,将触发缓存同步进程的启动,对于读写失败的操作,从控制器将获得实时通知并结合故障检测结果做相应处理,如果是常规故障,即主控制器可通过再次发送读写请求完成,则从控制器只做缓存同步;如果是掉电故障,从控制器需对本次读写操作进行掉电后缓存同步并接管相应读写任务;
其中从控制器端接收的缓存数据还包括数据及读写返回值,通过记录读写请求在队列中的位置正确获得读写请求内容及相应返回值; 当数据及读写返回值正常时,不用等待从控制器缓存完成即可响应客户端请求;当数据及读写返回值异常时,等待从控制器缓存成功后对客户端请求响应。
实施例2:
本发明的一种存储双控制器间缓存同步机制,存储双控制器间采用万兆网络连接,由心跳进程和缓存同步进程完成相互间的通讯,具体使用内核层的socket完成;
将缓存同步功能的实现分为缓存同步进程及心跳进程的实现;将缓存同步进程分为主从工作模式,在主工作模式下通过读写请求及读写异常触发缓存同步进程的发起,在从工作模式下,结合心跳进程进行故障检测进而转至故障接管线程的处理;对读写返回正常时不用等待从控制器缓存完成即可响应客户端请求;
缓存同步通讯协议数据包包括:命令类型、逻辑磁盘地址、物理设备号、数据大小、数据及读写返回值。
双控制器间缓存同步处理流程如下:
(1)、主控制器端缓存同步进程检测到SCSI Target进程有新的读写请求时,启动缓存同步模块并读取其数据,读取的数据为读写命令的控制信息、数据及读写返回值;
(2)、将读取的数据进行封包传输至从控制器端,从控制器端缓存同步模块接收数据解包后存放到本地缓存;
(3)、主控制器端SCSI Target根据读取的数据响应客户端,当读写请求正常返回时,直接响应客户端,当读写请求异常时再次启动缓存同步进程将缓存数据发往从控制器;
(4)、从控制器端缓存同步模块将此次缓存数据与已有数据比较,如果没有则进行缓存,如果已有则更新数据及读写返回值;
(5)、对于读写请求返回值异常的缓存,从控制器根据心跳进程做故障检测,如果是常规故障,即主控制器可通过再次发送读写请求完成,则从控制器只做缓存同步;如果是掉电故障,从控制器对本次读写操作进行掉电后缓存同步并接管相应读写任务。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种存储双控制器间缓存同步机制的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (1)
1.一种存储双控制器间缓存同步机制,其特征在于存储双控制器包括主控制器和从控制器,主控制器和从控制器均配置有心跳进程和缓存同步进程及内核层,主控制器和从控制器间采用万兆网络连接,由心跳进程和缓存同步进程完成相互间的通讯,具体使用内核层的socket完成;
将缓存同步功能的实现分为缓存同步进程及心跳进程的实现;将缓存同步进程分为主工作模式和从工作模式,主控制器端为主工作模式,从控制器端为从工作模式,在主工作模式下通过读写请求或读写请求返回值异常触发缓存同步进程的启动,在从工作模式下,结合心跳进程进行故障检测进而转至故障接管线程的处理;主控制器端当读写请求返回值正常时即刻响应客户端的读写请求;
缓存同步通讯协议数据包包括:命令类型、逻辑磁盘地址、物理设备号、数据的大小、数据及读写请求返回值;
双控制器间缓存同步处理流程如下:
(1)、主控制器端缓存同步进程检测到SCSI Target进程有客户端发送的新的读写请求时,启动主控制器的缓存同步进程并读取该新的读写请求所请求的数据信息,数据信息包含:读写命令的控制信息、被请求数据及读写请求返回值;
(2)、主控制器端将读取的数据信息进行封包传输至从控制器端,从控制器端的缓存同步进程接收数据信息解包后存放到本地缓存;
(3)、主控制器端SCSI Target进程根据读取的数据信息响应客户端,当读写请求返回值正常时,直接响应客户端;当读写请求返回值异常时,再次启动主控制器的缓存同步进程将客户端所请求的数据信息发往从控制器;
(4)、从控制器端的缓存同步进程将主控制器发来的数据信息与已有数据信息比较,如果已有数据信息中不包含此数据信息则进行缓存,若已有数据信息中包含此数据信息则更新数据信息;
(5)、对于读写请求返回值异常的数据信息,从控制器根据心跳进程对该数据信息做故障检测,如果是常规故障,即主控制器可通过再次发送读写请求完成,则从控制器只做缓存同步;如果是主控制器掉电故障,从控制器对本次读写操作进行掉电后缓存同步并接管相应客户端的读写请求任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510375634.XA CN105045531B (zh) | 2015-07-01 | 2015-07-01 | 一种存储双控制器间缓存同步机制 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510375634.XA CN105045531B (zh) | 2015-07-01 | 2015-07-01 | 一种存储双控制器间缓存同步机制 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105045531A CN105045531A (zh) | 2015-11-11 |
CN105045531B true CN105045531B (zh) | 2018-01-02 |
Family
ID=54452102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510375634.XA Active CN105045531B (zh) | 2015-07-01 | 2015-07-01 | 一种存储双控制器间缓存同步机制 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045531B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106331081B (zh) * | 2016-08-19 | 2020-03-06 | 苏州浪潮智能科技有限公司 | 一种信息同步方法及装置 |
CN106528447A (zh) * | 2016-10-25 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种分布式san的缓存同步方法 |
CN106603665B (zh) * | 2016-12-16 | 2018-04-13 | 无锡华云数据技术服务有限公司 | 云平台连续数据同步方法及其装置 |
CN106843754A (zh) * | 2016-12-30 | 2017-06-13 | 山东大学 | 一种采用udp协议的双控制器存储设备数据同步方法 |
CN107766181B (zh) * | 2017-09-12 | 2021-04-20 | 中国电子科技集团公司第五十二研究所 | 一种基于PCIe非透明桥的双控制器存储高可用子系统 |
CN108347476B (zh) * | 2018-01-22 | 2020-01-14 | Oppo广东移动通信有限公司 | 跨机房数据同步方法、装置以及服务器 |
CN108897644A (zh) * | 2018-06-22 | 2018-11-27 | 山东超越数控电子股份有限公司 | 一种双控制器故障处理方法与系统 |
CN109995665B (zh) * | 2019-03-29 | 2022-03-22 | 新华三信息安全技术有限公司 | 一种业务数据存储方法及装置 |
CN113472891B (zh) * | 2021-07-15 | 2024-04-26 | 浪潮思科网络科技有限公司 | 一种sdn控制器集群数据处理方法、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118478A (zh) * | 2007-09-10 | 2008-02-06 | 杭州华三通信技术有限公司 | 缓存管理系统 |
CN101645915A (zh) * | 2008-08-06 | 2010-02-10 | 中兴通讯股份有限公司 | 一种磁盘阵列主机通道子卡、在线切换系统及其切换方法 |
CN103678013A (zh) * | 2013-12-18 | 2014-03-26 | 哈尔滨工业大学 | 多核处理器操作系统级进程的冗余检测系统 |
CN104049918A (zh) * | 2014-07-03 | 2014-09-17 | 浪潮集团有限公司 | 一种双控存储服务器的缓存管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5213108B2 (ja) * | 2008-03-18 | 2013-06-19 | 株式会社日立製作所 | データ複製方法及びデータ複製システム |
-
2015
- 2015-07-01 CN CN201510375634.XA patent/CN105045531B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118478A (zh) * | 2007-09-10 | 2008-02-06 | 杭州华三通信技术有限公司 | 缓存管理系统 |
CN101645915A (zh) * | 2008-08-06 | 2010-02-10 | 中兴通讯股份有限公司 | 一种磁盘阵列主机通道子卡、在线切换系统及其切换方法 |
CN103678013A (zh) * | 2013-12-18 | 2014-03-26 | 哈尔滨工业大学 | 多核处理器操作系统级进程的冗余检测系统 |
CN104049918A (zh) * | 2014-07-03 | 2014-09-17 | 浪潮集团有限公司 | 一种双控存储服务器的缓存管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105045531A (zh) | 2015-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105045531B (zh) | 一种存储双控制器间缓存同步机制 | |
JP4107083B2 (ja) | 高可用ディスク制御装置とその障害処理方法及び高可用ディスクサブシステム | |
JP4733399B2 (ja) | 計算機システム、計算機、ストレージ装置及び管理端末 | |
CN103199972B (zh) | 基于soa、rs485总线实现的双机热备份切换方法及热备份系统 | |
US6578158B1 (en) | Method and apparatus for providing a raid controller having transparent failover and failback | |
CN103346903B (zh) | 一种双机备份的方法和装置 | |
CN102629225B (zh) | 双控制器磁盘阵列、存储系统以及数据存储路径切换方法 | |
CN105426275B (zh) | 双活集群系统中容灾的方法及装置 | |
US8321622B2 (en) | Storage system with multiple controllers and multiple processing paths | |
CN110807064B (zh) | Rac分布式数据库集群系统中的数据恢复装置 | |
CN106850255B (zh) | 一种多机备份的实现方法 | |
JPH08227344A (ja) | 二重磁気ディスク制御装置間の通信制御装置 | |
US6785840B1 (en) | Call processor system and methods | |
CN103257908A (zh) | 一种软硬件协同的多控制器磁盘阵列设计方法 | |
JP2006072591A (ja) | 仮想計算機制御方法 | |
CN102567227A (zh) | 共享缓存设备的双控制器存储系统和方法 | |
CN105554074A (zh) | 一种基于rpc通信的nas资源监控系统及监控方法 | |
JP5288185B2 (ja) | ネットワークインタフェース、計算機システム、それらの動作方法、及びプログラム | |
CN104170307B (zh) | 失效切换方法、装置和系统 | |
CN108512753A (zh) | 一种集群文件系统中消息传输的方法及装置 | |
CN105938461B (zh) | 一种dma数据传输方法、装置以及网络设备 | |
JP6134720B2 (ja) | 接続方法 | |
JP2002344450A (ja) | 高可用性処理方法及びその実施システム並びにその処理プログラム | |
US11860719B2 (en) | Method for implementing storage service continuity in storage system, front-end interface card, and storage system | |
WO2017017763A1 (ja) | ストレージシステム、及び、記憶制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |