CN105183370A - 一种实现双控制器通信的通信方法及通信模型 - Google Patents

一种实现双控制器通信的通信方法及通信模型 Download PDF

Info

Publication number
CN105183370A
CN105183370A CN201510498503.0A CN201510498503A CN105183370A CN 105183370 A CN105183370 A CN 105183370A CN 201510498503 A CN201510498503 A CN 201510498503A CN 105183370 A CN105183370 A CN 105183370A
Authority
CN
China
Prior art keywords
controller
data
request
communication
interface
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
Application number
CN201510498503.0A
Other languages
English (en)
Other versions
CN105183370B (zh
Inventor
刘变红
闫永刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Wave Cloud Computing Service Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201510498503.0A priority Critical patent/CN105183370B/zh
Publication of CN105183370A publication Critical patent/CN105183370A/zh
Application granted granted Critical
Publication of CN105183370B publication Critical patent/CN105183370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种实现双控制器通信的通信方法及通信模型,包括:当第一控制器通过第一接口发送请求时,将所述第一控制器的命令提示符置为请求标识位;所述第一控制器向第二控制器发送请求数据;所述第二控制器接收所述请求数据,将所述第二控制器的命令提示符置为应答标识位;所述第二控制器通过第二接口将所述请求数据发送至应用;所述应用接收到所述请求数据后,通过所述第二接口发送应答数据;所述第一控制器通过所述第一接口接收所述应答数据,完成通信。本发明所提供的实现双控制器通信的通信方法及通信模型,实现了对应用接口的简化,节约了维护成本,从而提升了产品竞争力。

Description

一种实现双控制器通信的通信方法及通信模型
技术领域
本发明涉及存储技术领域,特别是涉及一种实现双控制器通信的通信方法及通信模型。
背景技术
目前,双控磁盘阵列已经成为构建大规模存储系统的基本组成单元,双控之间的通信作为磁盘阵列的核心部件,它的通信模型复杂程度直接影响双控磁盘阵列的复杂度。
双控通信是双控存储系统的基础模块,Target虚拟化指令(例如PR指令)、缓存镜像、HA等都依赖于多控通信提供的通信链路,同时Request-Reply(Request-Response)通信模型作为一种传统的通信模型已经广泛的应用与双控制器之间的互联通信。
因此,如何对不同的应用进行数据抽象,对通信模型进行简化,对应用提供一致的API,提供一致的请求和应答接口显得尤为重要。
发明内容
本发明的目的是提供一种实现双控制器通信的通信方法及通信模型,目的在于解决现有通信模型中不能提供一致的应用接口的问题。
为解决上述技术问题,本发明提供一种实现双控制器通信的通信方法,包括:
当第一控制器通过第一接口发送请求时,将所述第一控制器的命令提示符置为请求标识位;
所述第一控制器向第二控制器发送请求数据;
所述第二控制器接收所述请求数据,将所述第二控制器的命令提示符置为应答标识位;
所述第二控制器通过第二接口将所述请求数据发送至应用;
所述应用接收到所述请求数据后,通过所述第二接口发送应答数据;
所述第一控制器通过所述第一接口接收所述应答数据,完成通信。
可选地,所述当第一控制器通过第一接口发送请求时,将所述第一控制器的命令提示符置为请求标识位包括:
当第一控制器通过第一接口发送请求时,为请求申请分配空间,将所述第一控制器的命令提示符置为请求标识位。
可选地,所述第一控制器向第二控制器发送请求数据包括:
所述第一控制器将发送的请求数据放入任务列表中;
选择第一链路对所述请求数据进行发送,并向所述第二控制器发送接收通知。
可选地,所述第二控制器接收所述请求数据包括:
所述第二控制器接收到所述接收通知后,选择第二链路对所述请求数据进行接收。
可选地,所述第二控制器接收所述请求数据,将所述第二控制器的命令提示符置为应答标志位包括:
所述第二控制器接收所述请求数据,为接收所述请求数据申请分配空间,将所述第二控制器的命令提示符置为应答标识位。
可选地,所述第一控制器通过所述第一接口接收所述应答数据,完成通信包括:
所述第一控制器通过所述第一接口接收所述应答数据,完成通信,并释放已分配的空间。
可选地,还包括:
通过对发起请求的数据和接收应答时的数据进行一致性校验,验证传输数据的正确性。
本发明还提供了一种实现双控制器通信的通信模型,所述双控制器之间通过请求-应答模型进行通信,包括:
接口模块,用于对应用的数据进行接收或发送,对请求数据或应答数据进行传输;
标识模块,用于在获取所述请求数据或应答数据的申请后,将命令提示符置为与所述请求数据或应答数据相对应的标识位;
通信模块,用于为所述请求数据或应答数据在两个控制器之间进行传输提供通信链路。
可选地,还包括:
验证模块,用于通过对发起请求的数据和接收应答时的数据进行一致性校验,验证传输数据的正确性。
本发明所提供的实现双控制器通信的通信方法及通信模型,当第一控制器通过第一接口发送请求时,将其命令提示符置为请求标识位;当第二控制器接收请求数据,将其命令提示符置为应答标识位;在应用接收到请求数据后,通过第二接口发送应答数据;第一控制器通过第一接口接收应答数据,完成通信。可见,本发明所提供的实现双控制器通信的通信方法及通信模型,通过设置命令提示符来标识当前的命令类型,以此来区分是接收还是应答。这样对应用层来说,发送请求和发送应答可以采用一致的接口,应用不需要关注繁琐的通信模型细节,实现了对应用接口的简化,节约了维护成本,从而提升了产品竞争力。
附图说明
图1为本发明所提供的实现双控制器通信的通信方法的一种具体实施方式的方法流程图;
图2为本发明所提供的实现双控制器通信的通信方法的另一种具体实施方式的方法流程图;
图3为本发明所提供的实现双控制器通信的通信模型的一种具体实施方式的结构框图。
具体实施方式
双控通信是双控存储系统的基础模块,Target虚拟化指令(例如PR指令)、缓存镜像、HA等都依赖于多控通信提供的通信链路,同时Request-Reply(Request-Response)通信模型作为一种传统的通信模型已经广泛的应用与双控制器之间的互联通信。因此,如何对不同的应用进行数据抽象,对通信模型进行简化,对应用提供一致的API,提供一致的请求和应答接口显得尤为重要。鉴于此,本发明的核心是提供一种应用接口一致的通信方法及通信模型,以简化应用。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所提供的实现双控制器通信的通信方法的一种具体实施方式的方法流程图如图1所示,该方法包括:
步骤S101:当第一控制器通过第一接口发送请求时,将所述第一控制器的命令提示符置为请求标识位;
步骤S102:所述第一控制器向第二控制器发送请求数据;
步骤S103:所述第二控制器接收所述请求数据,将所述第二控制器的命令提示符置为应答标识位;
步骤S104:所述第二控制器通过第二接口将所述请求数据发送至应用;
步骤S105:所述应用接收到所述请求数据后,通过所述第二接口发送应答数据;
步骤S106:所述第一控制器通过所述第一接口接收所述应答数据,完成通信。
本发明所提供的实现双控制器通信的通信方法,当第一控制器通过第一接口发送请求时,将其命令提示符置为请求标识位;当第二控制器接收请求数据,将其命令提示符置为应答标识位;在应用接收到请求数据后,通过第二接口发送应答数据;第一控制器通过第一接口接收应答数据,完成通信。可见,本发明所提供的实现双控制器通信的通信方法,通过设置命令提示符来标识当前的命令类型,以此来区分是接收还是应答。这样对应用层来说,发送请求和发送应答可以采用一致的接口,应用不需要关注繁琐的通信模型细节,实现了对应用接口的简化,节约了维护成本,从而提升了产品竞争力。
本发明所提供的实现双控制器通信的通信方法的另一种具体实施方式的方法流程图如图2所示,该方法包括:
步骤S201:当第一控制器通过第一接口发送请求时,为请求申请分配空间,将第一控制器的命令提示符置为请求标识位;
步骤S202:第一控制器将发送的请求数据放入任务列表中;
步骤S203:选择第一链路对请求数据进行发送,并向第二控制器发送接收通知;
步骤S204:第二控制器接收到接收通知后,选择第二链路对请求数据进行接收;
步骤S205:第二控制器接收请求数据,为接收请求数据申请分配空间,将第二控制器的命令提示符置为应答标识位;
步骤S206:第二控制器通过第二接口将请求数据发送至应用;
步骤S207:应用接收到请求数据后,通过第二接口发送应答数据;
步骤S208:第一控制器通过第一接口接收应答数据,完成通信,并释放已分配的空间。
本发明所提供的实现双控制器通信的通信方法,当第一控制器通过第一接口发送请求时,将其命令提示符置为请求标识位;当第二控制器接收请求数据,将其命令提示符置为应答标识位;在应用接收到请求数据后,通过第二接口发送应答数据;第一控制器通过第一接口接收应答数据,完成通信。可见,本发明所提供的实现双控制器通信的通信方法,通过设置命令提示符来标识当前的命令类型,以此来区分是接收还是应答。这样对应用层来说,发送请求和发送应答可以采用一致的接口,应用不需要关注繁琐的通信模型细节,实现了对应用接口的简化,节约了维护成本,从而提升了产品的竞争力。
本实施例所提供的实现双控制器通信的通信方法中数据流程具体可以为:
(a)Host0(第一控制器)通过mcc_alloc申请请求cmd(tx_req),并调用mcc_tx发送请求;
(b)通信模块内部对cmd置请求标识位,放入任务列表,并同时唤醒发送线程,对cmd进行任务调度。然后进行链路选择,选择合适的链路进行发送;
(c)在发送线程中,调用驱动的tx,通过实际链路link_tx完成发送,并通知对端进行接收;
(d)Host1(第二控制器)收到接收通知,申请接收空间,置应答标识位,调用Link_rx完成对链路数据的接收,并通知应用APP进行rx_cmd接收动作;
(e)应用APP收完数据后,构造应答cmd,通过mcc_tx发送应答数据。应答cmd放入任务队列,同(b),进行链表管理、线程调度,发送数据到Host0(第一控制器);
(f)Host0(第一控制器)进行接收应答,接收应答完成后,rx_done释放空间。
此外,在上述任一实施例的基础上,本发明所提供的实现双控制器通信的通信方法还可以进一步包括:通过对发起请求的数据和接收应答时的数据进行一致性校验,验证传输数据的正确性。
具体地,在测试的过程中,链路层可以通过loopdev回环设备的方式,实现对通信数据的验证。在虚拟机上加载loopdev驱动之后,加载mcc通信模块,注册应用类型。通过sysfs入口发起数据传输请求,数据通过mcc_tx发送,并通过rx_cmd进行应答。在发起请求时,对数据进行填充,rx_cmd之后,发送应答的数据和接收到的数据一致,再次发回到发起端。在发起端,通过对发送数据和接收的数据进行比较,验证传输数据的正确性。
本发明所提供的实现双控制器通信的通信模型的一种具体实施方式的结构框图如图3所示,该模型包括:
接口模块100,用于对应用的数据进行接收或发送,对请求数据或应答数据进行传输;
标识模块200,用于在获取所述请求数据或应答数据的申请后,将命令提示符置为与所述请求数据或应答数据相对应的标识位;
通信模块300,用于为所述请求数据或应答数据在两个控制器之间进行传输提供通信链路。
本发明所提供的实现双控制器通信的通信模型,基于传统的Request-Reply(Request-Response)通信模型,但同时对不同的应用数据进行了数据抽象。具体地,包括本发明所提供的实现双控制器通信的通信模型的整个系统可以分为三个部分:应用层、统一通信层和链路层。
应用层:一致的注册/注销维护,一致的数据请求和接收应答流程。应用统一采用mcc_tx发送数据,通过rx_cmd接收数据;
统一通信层:对不同的应用提供一致的通信逻辑,对命令统一管理和调度、超时处理、放弃等;
链路层:对驱动和设备提供一致的管理接口。提供驱动注册、卸载,链路设备的添加、移除、状态设置,以及发送、接收的异步通知。
需要指出的是,链路层可以是loopdev设备、nic设备、NTB设备,用于实现两控制器之间的通信。通信模型可以具体通过PCIE互联通道实现两个控制器之间的可靠通信。
另外,本发明能够对不同的应用数据进行传输,包括但不限于Target虚拟化指令(例如PR指令)、缓存镜像、HA等使用一致的通信接口。
本发明通过一致的mcc_tx和rx_cmd命令实现对不同应用类型的数据的发送和接收,对发送请求和发送应答采用一致的mcc_tx来完成,在通信框架内部实现对应答命令的申请和维护。在同喜模型内部实现对请求cmd和应答cmd的空间申请和释放,通过flag标志位标识命令类型,即通过模型内部对cmd类型的维护实现对应用层简化的目的。
这样,在整个双控存储领域,应用层不用关注到通信模型的细节,只构造数据逻辑,由通信模型内部完成统一的任务调度(包括命令超时、重传、放弃、优先级、零拷贝、链路负载均衡)。随着数据量的增加和对数据正确性要求的提高,通信模型也必须提供一种可以验证数据正确性、一致性的方法。
本发明所提供的实现双控制器通信的通信模型,通过设置命令提示符来标识当前的命令类型,以此来区分是接收还是应答。这样对应用层来说,发送请求和发送应答可以采用一致的接口,提供了一致的接收数据接口,应用不需要关注繁琐的通信模型细节,实现了对应用接口的简化,节约了维护成本,从而提升了竞争力。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种实现双控制器通信的通信方法,其特征在于,包括:
当第一控制器通过第一接口发送请求时,将所述第一控制器的命令提示符置为请求标识位;
所述第一控制器向第二控制器发送请求数据;
所述第二控制器接收所述请求数据,将所述第二控制器的命令提示符置为应答标识位;
所述第二控制器通过第二接口将所述请求数据发送至应用;
所述应用接收到所述请求数据后,通过所述第二接口发送应答数据;
所述第一控制器通过所述第一接口接收所述应答数据,完成通信。
2.如权利要求1所述的实现双控制器通信的通信方法,其特征在于,所述当第一控制器通过第一接口发送请求时,将所述第一控制器的命令提示符置为请求标识位包括:
当第一控制器通过第一接口发送请求时,为请求申请分配空间,将所述第一控制器的命令提示符置为请求标识位。
3.如权利要求2所述的实现双控制器通信的通信方法,其特征在于,所述第一控制器向第二控制器发送请求数据包括:
所述第一控制器将发送的请求数据放入任务列表中;
选择第一链路对所述请求数据进行发送,并向所述第二控制器发送接收通知。
4.如权利要求3所述的实现双控制器通信的通信方法,其特征在于,所述第二控制器接收所述请求数据包括:
所述第二控制器接收到所述接收通知后,选择第二链路对所述请求数据进行接收。
5.如权利要求4所述的实现双控制器通信的通信方法,其特征在于,所述第二控制器接收所述请求数据,将所述第二控制器的命令提示符置为应答标志位包括:
所述第二控制器接收所述请求数据,为接收所述请求数据申请分配空间,将所述第二控制器的命令提示符置为应答标识位。
6.如权利要求5所述的实现双控制器通信的通信方法,其特征在于,所述第一控制器通过所述第一接口接收所述应答数据,完成通信包括:
所述第一控制器通过所述第一接口接收所述应答数据,完成通信,并释放已分配的空间。
7.如权利要求1至6任一项所述的实现双控制器通信的通信方法,其特征在于,还包括:
通过对发起请求的数据和接收应答时的数据进行一致性校验,验证传输数据的正确性。
8.一种实现双控制器通信的通信模型,其特征在于,所述双控制器之间通过请求-应答模型进行通信,包括:
接口模块,用于对应用的数据进行接收或发送,对请求数据或应答数据进行传输;
标识模块,用于在获取所述请求数据或应答数据的申请后,将命令提示符置为与所述请求数据或应答数据相对应的标识位;
通信模块,用于为所述请求数据或应答数据在两个控制器之间进行传输提供通信链路。
9.如权利要求8所述的实现双控制器通信的通信模型,其特征在于,还包括:
验证模块,用于通过对发起请求的数据和接收应答时的数据进行一致性校验,验证传输数据的正确性。
CN201510498503.0A 2015-08-13 2015-08-13 一种实现双控制器通信的通信方法及通信模型 Active CN105183370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510498503.0A CN105183370B (zh) 2015-08-13 2015-08-13 一种实现双控制器通信的通信方法及通信模型

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510498503.0A CN105183370B (zh) 2015-08-13 2015-08-13 一种实现双控制器通信的通信方法及通信模型

Publications (2)

Publication Number Publication Date
CN105183370A true CN105183370A (zh) 2015-12-23
CN105183370B CN105183370B (zh) 2018-07-06

Family

ID=54905479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510498503.0A Active CN105183370B (zh) 2015-08-13 2015-08-13 一种实现双控制器通信的通信方法及通信模型

Country Status (1)

Country Link
CN (1) CN105183370B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547329A (zh) * 2017-09-07 2018-01-05 郑州云海信息技术有限公司 一种基于ntb的双控数据传输方法及系统
CN107562559A (zh) * 2017-08-29 2018-01-09 郑州云海信息技术有限公司 存储系统控制器之间数据一致性的测试方法及装置
CN108446088A (zh) * 2018-04-18 2018-08-24 广州视源电子科技股份有限公司 终端及投屏系统
CN115174159A (zh) * 2022-06-14 2022-10-11 通号城市轨道交通技术有限公司 通信模型、数据传输方法及装置、通信模型配置方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834796A (zh) * 2010-05-06 2010-09-15 中兴通讯股份有限公司 一种双控制器通信系统和方法
US20120191828A1 (en) * 2011-01-21 2012-07-26 Kaseya International Limited Method and apparatus of performing remote command dispatching
CN103176751A (zh) * 2013-03-04 2013-06-26 浪潮电子信息产业股份有限公司 一种多种存储协议下的统一服务系统
CN103763676A (zh) * 2014-01-24 2014-04-30 成都西加云杉科技有限公司 Ap与ac间的通信方法和设备
CN104750433A (zh) * 2015-03-26 2015-07-01 浪潮集团有限公司 一种基于scst的缓存设计方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834796A (zh) * 2010-05-06 2010-09-15 中兴通讯股份有限公司 一种双控制器通信系统和方法
US20120191828A1 (en) * 2011-01-21 2012-07-26 Kaseya International Limited Method and apparatus of performing remote command dispatching
CN103176751A (zh) * 2013-03-04 2013-06-26 浪潮电子信息产业股份有限公司 一种多种存储协议下的统一服务系统
CN103763676A (zh) * 2014-01-24 2014-04-30 成都西加云杉科技有限公司 Ap与ac间的通信方法和设备
CN104750433A (zh) * 2015-03-26 2015-07-01 浪潮集团有限公司 一种基于scst的缓存设计方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562559A (zh) * 2017-08-29 2018-01-09 郑州云海信息技术有限公司 存储系统控制器之间数据一致性的测试方法及装置
CN107547329A (zh) * 2017-09-07 2018-01-05 郑州云海信息技术有限公司 一种基于ntb的双控数据传输方法及系统
CN108446088A (zh) * 2018-04-18 2018-08-24 广州视源电子科技股份有限公司 终端及投屏系统
CN115174159A (zh) * 2022-06-14 2022-10-11 通号城市轨道交通技术有限公司 通信模型、数据传输方法及装置、通信模型配置方法
CN115174159B (zh) * 2022-06-14 2023-10-20 通号城市轨道交通技术有限公司 通信模型、数据传输方法及装置、通信模型配置方法

Also Published As

Publication number Publication date
CN105183370B (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN105191216B (zh) 用于多流聚合的缓冲区状态报告的系统和方法
CN105183370A (zh) 一种实现双控制器通信的通信方法及通信模型
WO2020052605A1 (zh) 一种网络切片的选择方法及装置
US10901638B2 (en) Cascading board and SSD shared remote access system and method
EP2950219B1 (en) Method and apparatus for using serial port in time division multiplexing manner
US20170094054A1 (en) Methods of sharing a wifi hotspot and associated electronic devices
CA2749813C (en) System and method for breaking up a message thread when replying or forwarding a message
CN104246733A (zh) 用于通用串行总线设备的数据重定向
CN114138700B (zh) 一种串口数据传输的流控方法、装置、设备及存储介质
CN104541487B (zh) 用于多栈蓝牙控制器的方法和布置
WO2017114447A1 (zh) 报文转发
JP2018537018A (ja) スケールアウト関連付けの方法および装置、ならびにシステム
US11416399B2 (en) Dedicated memory buffers for supporting deterministic inter-FPGA communication
KR102387922B1 (ko) 솔리드 스테이트 드라이브의 비동기 이벤트 요청 명령 처리 방법 및 시스템
CN106484652B (zh) 一种基于ntb硬件的多队列通信方法及系统
CN108513358A (zh) 一种数据传输方法及装置
US20170160929A1 (en) In-order execution of commands received via a networking fabric
CN104717160A (zh) 交换机及调度算法
CN105718304A (zh) 虚拟机管理方法及系统
CN105262604B (zh) 虚拟机迁移方法及设备
CN105512005A (zh) 控制/远程节点与总线监控节点同步工作的电路及方法
CN108121596A (zh) 数据传输方法及装置、存储介质、电子设备
JP2019533381A (ja) スケジューリング方法、端末および基地局
CN106027140B (zh) 可重构卫星地面站系统及方法
KR20160036846A (ko) 채널 연결 관리 방법 및 장치

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
TR01 Transfer of patent right

Effective date of registration: 20180817

Address after: 200436 Room 411, No. three, JIANGCHANG Road, Jingan District, Shanghai, 411

Patentee after: Shanghai wave Cloud Computing Service Co., Ltd.

Address before: 100085 floor 1, C 2-1, No. 2, Shang Di Road, Haidian District, Beijing.

Patentee before: Electronic information industry Co.,Ltd of the tide (Beijing)

TR01 Transfer of patent right