CN111949452B - 一种存储***单节点故障快速恢复io的方法及装置 - Google Patents
一种存储***单节点故障快速恢复io的方法及装置 Download PDFInfo
- Publication number
- CN111949452B CN111949452B CN202010987811.0A CN202010987811A CN111949452B CN 111949452 B CN111949452 B CN 111949452B CN 202010987811 A CN202010987811 A CN 202010987811A CN 111949452 B CN111949452 B CN 111949452B
- Authority
- CN
- China
- Prior art keywords
- service
- service representative
- event
- cluster
- node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000004891 communication Methods 0.000 claims abstract description 17
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims description 22
- 230000004083 survival effect Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 5
- 238000011084 recovery Methods 0.000 abstract description 9
- 238000013461 design Methods 0.000 abstract description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种存储***单节点故障快速恢复IO的方法及装置,采用业务代表模式设计,由一个中间业务代表来连接客户端和业务端,减少客户端和业务端的通信复杂度,业务实现向外统一暴露接口,由业务代表来具体查询和掉用业务接口执行相关业务,而客户则只需要向业务代表调用相关简化后的接口即可实现响应业务。同时减少通信和对表示层代码中的业务层代码的远程查询功能,减少通信时间以及各模块交叉触发中断和恢复造成的时间差,保证最短I/O中断时间。通过上述方式,本发明能够减少通信时间以及各模块交叉触发中断和恢复造成的时间差,保证中断时间最优。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种存储***单节点故障快速恢复 IO的方法及装置。
背景技术
现有节点故障恢复事件处理IO中断的方式主要采用观察者模式,但是观察者模式存在以下问题,存储***集群作为被观察者,转发层、缓存、卷、RAID 等子模块作为观察者:1、被观察者对象有很多的直接和间接观察者,将所有的观察者都通知到会花费很多时间。2、观察者和观察目标之间有循环依赖,观察目标会触发它们之间进行循环调用,可能导致***崩溃。3、观察者模式没有相应的机制让观察者知道所观察的目标对象是怎么发生变化的,而仅仅只是知道观察目标发生了变化。4.观察者通知被观察者也会花费较多时间,并且被观察者需要检查是否所有的观察者已经恢复,才能通知主机恢复I/O。
发明内容
本发明主要解决的技术问题是提供一种存储***单节点故障快速恢复IO的方法及装置,能够减少通信时间以及各模块交叉触发中断和恢复造成的时间差,保证中断时间最优。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种存储***单节点故障快速恢复IO的方法,包括:第一步,由业务代表查询和调用业务接口执行业务,存储业务子模块向业务代表调用接口实现响应业务,所述业务代表连接存储业务子模块和集群事件管理模块,业务代表向外统一暴露接口;第二步,业务代表管理集群事件序列化,控制事件的统一发布和响应处理。
进一步,所述第一步具体包括以下步骤:
S100、将需要处理的事件传输到业务代表的缓存中,所述缓存为创建于集群主机端与业务代表端进行数据通信的缓存;
S101、设置业务代表属性类以及状态机;
S102、控制启动状态机业务代表算法;
S103、等待集群单节点加入离开事件的发生,从业务代表的缓存中,将接收的事件读取到业务代表状态机,完成事件发布状态更新以及通知主机I/O的下发。
进一步,所述步骤S100中的缓存存放于集群配置管理中。
进一步,所述步骤S101中的状态机用于控制发布事件给子模块,以及响应各模块处理结果。
进一步,所述第二步具体包括以下步骤:
S200、节点离开时,集群生成Pend,发送到业务代表端,I/O栈业务子模块存活节点保持I/O,并在业务端处理因节点离开所需的事务处理;
S201、集群BOSS节点切换、重构视图后生成Remove事件,发送到业务代表端,业务代表判断各业务个子模块业务处理是否完成;
S202、业务代表监听I/O所有业务子模块处理完成,统一下发Remove事件到各业务配置管理模块,触发I/O开始中断;
S203、IO中断后,所有子模块一起进行首选节点切换,元数据更新同步操作,完成后通知业务代表;
S204、业务代表收到所有子模块配置更新完成后通知主机,立即恢复I/O;
S205、节点加入时,集群生成Add/Unpend/UnpendDone事件;
S206 、业务代表收到集群事件放到缓存中,Add触发状态机通知各子模块业务层进行Nodes属性更新等操作,同时存活节点保持I/O;
S207、更新完成后,通知业务代表,等待节点加入后集群Unpend事件的触发,业务代表触发子业务模块进行Discard操作,存活节点不做操作,继续保持 I/O;
S208、集群完成视图重建操作发送UnpendDone事件到业务代表;
S209、业务代表收到所有子模块配置更新完成后通知主机,立即恢复I/O。
进一步,所述步骤S205中Add/Unpend/UnpendDone事件为节点加入、解除、解除完成事件。
进一步,所述步骤S208中各子模块已完成Discard操作,业务代表统一触发各子模块配置模块中断I/O,进行首选节点切换,元数据更新和同步。
进一步,所述第二步之后减少通信或对表示层代码中的业务层代码的远程查询功能。
一种存储***单节点故障快速恢复IO的装置,包括业务代表模块、存储业务子模块和集群事件管理模块;所述业务代表模块查询和调用业务接口执行业务,存储业务子模块向业务代表调用接口实现响应业务;所述业务代表模块作为中间代表连接存储业务子模块和集群事件管理模块,业务代表模块向外统一暴露接口;所述业务代表模块管理集群事件序列化,控制事件的统一发布和响应处理。
本发明的有益效果是:本发明由一个中间代表来连接存储业务子模块和集群事件管理,减少存储业务子模块和集群事件管理的通信复杂度,集群业务实现向外统一暴露接口,由业务代表来具体查询和调用业务接口执行相关业务,而客户则只需要向业务代表调用相关简化后的接口即可实现响应业务。减少通信或对表示层代码中的业务层代码的远程查询功能,减少通信时间以及各模块交叉触发中断和恢复造成的时间差,保证中断时间最优。
附图说明
图1是本发明一种存储***单节点故障快速恢复IO的方法一较佳实施例的架构图。
图2是本发明一种存储***单节点故障快速恢复IO的装置的结构图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
第一方面,请参阅图1,本发明实施例提供一种存储***单节点故障快速恢复IO的方法,包括:首先,采用业务代表模式设计,由一个中间代表来连接存储业务子模块和集群事件管理模块,减少业务子模块和集群事件管理模块的通信复杂度,业务代表实现向外统一暴露接口,由业务代表来具体查询和调用业务接口执行相关业务,而业务子模块则只需要向业务代表调用相关简化后的接口即可实现响应业务;然后,业务代表管理集群事件序列化,控制事件的统一发布和响应处理,减少因发布和响应事件造成各子模块交叉触发中断和恢复造成的时间差;最后,减少通信或对表示层代码中的业务层代码的远程查询功能,减少通信时间保证最低中断时间。
快速恢复I/O程序实现时主要包括以下几个步骤:
(1)创建集群主机端与业务代表端进行数据通信的缓存,该缓存存放集群配置管理中;
(2)将需要处理的事件传输到业务代表的缓存中;
(3)设置业务代表属性类以及状态机,用于控制发布事件给子模块,以及响应各模块处理结果;
(4)控制启动状态机业务代表算法;
(5)等待集群单节点加入/离开事件的发生,从业务代表的缓存中,将接收的事件读取到业务代表状态机,完成事件发布状态更新以及通知主机I/O的下发。
采用业务代表模式控制优化IO快速恢复I/O程序主要包括以下步骤:
(1)节点离开时,集群生成Pend,发送到业务代表端,I/O栈业务子模块存活节点保持I/O,并在业务端处理因节点离开所需的事务处理;
(2)集群BOSS节点切换、重构视图后生成Remove事件,发送到业务代表端,业务代表判断各业务个子模块业务处理是否完成;
(3)业务代表监听I/O所有业务子模块处理完成,统一下发Remove事件到各业务配置管理模块,触发I/O开始中断;
(4)IO中断后,所有子模块一起进行首选节点切换,元数据更新同步等操作,完成后通知业务代表;
(5)业务代表收到所有子模块配置更新完成后通知主机,无需返回集群,立即恢复I/O;
(6)节点加入时,集群生成Add/Unpend/UnpendDone事件;
(7)业务代表收到集群事件放到缓存中,Add触发状态机通知各子模块业务层进行Nodes属性更新等操作,同时存活节点保持I/O;
(8)更新完成后,通知业务代表,等待节点加入后集群Unpend事件的触发,业务代表触发子业务模块进行Discard操作,存活节点不做操作,继续保持 I/O;
(9)集群完成视图重建等操作发送UnpendDone事件到业务代表,此时各子模块已完成Discard操作,业务代表统一触发各子模块配置模块中断I/O,进行首选节点切换,元数据更新和同步;
(10)业务代表收到所有子模块配置更新完成后通知主机,立即恢复I/O。
第二方面,基于与前述实施例中存储***单节点故障快速恢复IO的方法同样的发明构思,本说明书实施例还提供一种存储***单节点故障快速恢复IO的装置,如图2所示,包括业务代表模块、存储业务子模块和集群事件管理模块;所述业务代表模块查询和调用业务接口执行业务,存储业务子模块向业务代表模块调用接口实现响应业务;所述业务代表模块作为中间代表连接存储业务子模块和集群事件管理模块,业务代表模块向外统一暴露接口;所述业务代表模块管理集群事件序列化,控制事件的统一发布和响应处理。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种存储***单节点故障快速恢复IO的方法,其特征在于,包括:第一步,由业务代表查询和调用业务接口执行业务,存储业务子模块向业务代表调用接口实现响应业务,所述业务代表连接存储业务子模块和集群事件管理模块,业务代表向外统一暴露接口;第二步,业务代表管理集群事件序列化,控制事件的统一发布和响应处理;
所述第一步具体包括以下步骤:
S100、将需要处理的事件传输到业务代表的缓存中,所述缓存为创建于集群主机端与业务代表端进行数据通信的缓存;
S101、设置业务代表属性类以及状态机;
S102、控制启动状态机业务代表算法;
S103、等待集群单节点加入离开事件的发生,从业务代表的缓存中,将接收的事件读取到业务代表状态机,完成事件发布状态更新以及通知主机I/O的下发;
所述第二步具体包括以下步骤:
S200、节点离开时,集群生成Pend,发送到业务代表端,I/O栈业务子模块存活节点保持I/O,并在业务端处理因节点离开所需的事务处理;
S201、集群BOSS节点切换、重构视图后生成Remove事件,发送到业务代表端,业务代表判断各业务个子模块业务处理是否完成;
S202、业务代表监听I/O所有业务子模块处理完成,统一下发Remove事件到各业务配置管理模块,触发I/O开始中断;
S203、IO中断后,所有子模块一起进行首选节点切换,元数据更新同步操作,完成后通知业务代表;
S204、业务代表收到所有子模块配置更新完成后通知主机,立即恢复I/O;
S205、节点加入时,集群生成Add/Unpend/UnpendDone事件;
S206 、业务代表收到集群事件放到缓存中,Add触发状态机通知各子模块业务层进行Nodes属性更新等操作,同时存活节点保持I/O;
S207、更新完成后,通知业务代表,等待节点加入后集群Unpend事件的触发,业务代表触发子业务模块进行Discard操作,存活节点不做操作,继续保持I/O;
S208、集群完成视图重建操作发送UnpendDone事件到业务代表;
S209、业务代表收到所有子模块配置更新完成后通知主机,立即恢复I/O。
2.根据权利要求1所述的一种存储***单节点故障快速恢复IO的方法,其特征在于,所述步骤S100中的缓存存放于集群配置管理中。
3.根据权利要求1所述的一种存储***单节点故障快速恢复IO的方法,其特征在于,所述步骤S101中的状态机用于控制发布事件给子模块,以及响应各模块处理结果。
4.根据权利要求1所述的一种存储***单节点故障快速恢复IO的方法,其特征在于,所述步骤S205中Add/Unpend/UnpendDone事件为节点加入、解除、解除完成事件。
5.根据权利要求1所述的一种存储***单节点故障快速恢复IO的方法,其特征在于,所述步骤S208中各子模块已完成Discard操作,业务代表统一触发各子模块配置模块中断I/O,进行首选节点切换,元数据更新和同步。
6.根据权利要求1所述的一种存储***单节点故障快速恢复IO的方法,其特征在于,所述第二步之后减少通信或对表示层代码中的业务层代码的远程查询功能。
7.一种存储***单节点故障快速恢复IO的装置,其特征在于,包括业务代表模块、存储业务子模块和集群事件管理模块;所述业务代表模块查询和调用业务接口执行业务,存储业务子模块向业务代表模块调用接口实现响应业务;所述业务代表模块作为中间代表连接存储业务子模块和集群事件管理模块,业务代表模块向外统一暴露接口;所述业务代表模块管理集群事件序列化,控制事件的统一发布和响应处理;
所述业务代表模块查询和调用业务接口执行业务,存储业务子模块向业务代表模块调用接口实现响应业务;所述业务代表模块作为中间代表连接存储业务子模块和集群事件管理模块,业务代表模块向外统一暴露接口,具体包括以下步骤:
S100、将需要处理的事件传输到业务代表的缓存中,所述缓存为创建于集群主机端与业务代表端进行数据通信的缓存;
S101、设置业务代表属性类以及状态机;
S102、控制启动状态机业务代表算法;
S103、等待集群单节点加入离开事件的发生,从业务代表的缓存中,将接收的事件读取到业务代表状态机,完成事件发布状态更新以及通知主机I/O的下发;
所述业务代表模块管理集群事件序列化,控制事件的统一发布和响应处理,具体包括以下步骤:
S200、节点离开时,集群生成Pend,发送到业务代表端,I/O栈业务子模块存活节点保持I/O,并在业务端处理因节点离开所需的事务处理;
S201、集群BOSS节点切换、重构视图后生成Remove事件,发送到业务代表端,业务代表判断各业务个子模块业务处理是否完成;
S202、业务代表监听I/O所有业务子模块处理完成,统一下发Remove事件到各业务配置管理模块,触发I/O开始中断;
S203、IO中断后,所有子模块一起进行首选节点切换,元数据更新同步操作,完成后通知业务代表;
S204、业务代表收到所有子模块配置更新完成后通知主机,立即恢复I/O;
S205、节点加入时,集群生成Add/Unpend/UnpendDone事件;
S206 、业务代表收到集群事件放到缓存中,Add触发状态机通知各子模块业务层进行Nodes属性更新等操作,同时存活节点保持I/O;
S207、更新完成后,通知业务代表,等待节点加入后集群Unpend事件的触发,业务代表触发子业务模块进行Discard操作,存活节点不做操作,继续保持I/O;
S208、集群完成视图重建操作发送UnpendDone事件到业务代表;
S209、业务代表收到所有子模块配置更新完成后通知主机,立即恢复I/O。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010987811.0A CN111949452B (zh) | 2020-09-18 | 2020-09-18 | 一种存储***单节点故障快速恢复io的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010987811.0A CN111949452B (zh) | 2020-09-18 | 2020-09-18 | 一种存储***单节点故障快速恢复io的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949452A CN111949452A (zh) | 2020-11-17 |
CN111949452B true CN111949452B (zh) | 2022-09-20 |
Family
ID=73357483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010987811.0A Active CN111949452B (zh) | 2020-09-18 | 2020-09-18 | 一种存储***单节点故障快速恢复io的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949452B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868754A (zh) * | 2012-09-26 | 2013-01-09 | 北京联创信安科技有限公司 | 一种实现集群存储高可用性的方法、节点装置和*** |
CN109032830A (zh) * | 2018-07-25 | 2018-12-18 | 广东浪潮大数据研究有限公司 | 一种分布式存储***的故障恢复方法、***及相关组件 |
CN111158779A (zh) * | 2019-12-24 | 2020-05-15 | 深圳云天励飞技术有限公司 | 一种数据处理方法和相关设备 |
-
2020
- 2020-09-18 CN CN202010987811.0A patent/CN111949452B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868754A (zh) * | 2012-09-26 | 2013-01-09 | 北京联创信安科技有限公司 | 一种实现集群存储高可用性的方法、节点装置和*** |
CN109032830A (zh) * | 2018-07-25 | 2018-12-18 | 广东浪潮大数据研究有限公司 | 一种分布式存储***的故障恢复方法、***及相关组件 |
CN111158779A (zh) * | 2019-12-24 | 2020-05-15 | 深圳云天励飞技术有限公司 | 一种数据处理方法和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111949452A (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101989922B (zh) | 用于恢复会话初始协议事务的方法和*** | |
US7457236B2 (en) | Method for providing fault-tolerant application cluster service | |
US7146532B2 (en) | Persistent session and data in transparently distributed objects | |
JP2001306349A (ja) | バックアップ装置及びバックアップ方法 | |
US5910984A (en) | Fault tolerant service-providing apparatus for use in a telecommunications network | |
JP2006338069A (ja) | コンポーネントソフトウェアの運用方法および運用基盤 | |
WO2014067324A1 (zh) | 一种补丁软件升级方法及*** | |
CN109684128B (zh) | 消息中间件的集群整体故障恢复方法、服务器及存储介质 | |
CN115576655B (zh) | 容器数据保护***、方法、装置、设备及可读存储介质 | |
CN113821363B (zh) | 一种进程间通讯方法及*** | |
JP4102354B2 (ja) | アプリケーションフロー制御装置 | |
CN105472024A (zh) | 一种基于消息推送模式的跨地域数据同步方法 | |
JP2000194678A (ja) | クラスタコンピュ―タシステムにおける高度に利用可能な非同期i/o | |
CN102045187B (zh) | 一种利用检查点实现高可用性***的方法和设备 | |
WO2006129277A2 (en) | Method and hardware node for customized upgrade control | |
CN111949452B (zh) | 一种存储***单节点故障快速恢复io的方法及装置 | |
US20090172463A1 (en) | Method, system and machine accessible medium of a reconnect mechanism in a distributed system (cluster-wide reconnect mechanism) | |
WO2013037314A1 (zh) | 用于数据处理中心容灾备份的***及方法 | |
JP2005301436A (ja) | クラスタシステムおよびクラスタシステムにおける障害回復方法 | |
CN113438111A (zh) | 基于Raft分布式恢复RabbitMQ网络分区的方法及应用 | |
CN100362760C (zh) | 一种分布式配置数据库***的备份方法 | |
CN111858177B (zh) | 进程间通信的异常修复方法、装置、电子设备及存储介质 | |
JP2013021529A (ja) | 加入者データ管理方法及び呼制御システム | |
JP2002149439A (ja) | 分散処理システムにおけるサーバ切替え方法及びサーバ装置 | |
JPH1139273A (ja) | 遠隔地でのバックアップ方式 |
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 |