一种双控制器通信系统和方法

文档序号:7748285阅读:85来源:国知局
专利名称:一种双控制器通信系统和方法
技术领域
本发明涉及存储磁盘阵列领域,尤其是基于硬盘控制器的双控制器的通信系统和 方法。
背景技术
在双控制器通信系统中,两个控制器之间通常采用双活(Active-Active)或主备 (Active-Standby)方式运行,无论采用哪种方式运行,两个控制器之间都要进行大量的数 据交互,并且要求根据交互的数据量,两个控制器之间信息交互的时延其范围控制在毫秒 级到秒级,因此在数据交互带宽方面有很高的要求。现有技术中,国内专利200610137980. 5记载的使用硬盘控制器进行双控制器间 通信的方法是基于仿真以太网封包的形式将数据从控制器传递到硬盘控制器,再由硬盘控 制器传递到对端硬盘控制器。由于该方法在数据传输时采用以太网数据传输方式,仿真OSI 7层模型实现,控制器将消息和数据封装为IP数据包发送到硬盘控制器,再通过硬盘控制 器发送到接收端控制器,接收端控制器收到该IP数据包再进行解封装,因此每次通信和数 据同步都需要对消息和数据进行打包和解包,处理比较复杂,在通信速度上仍有待改进。

发明内容
本发明所要解决的技术问题是提供一种基于硬盘控制器的双控制器通信系统和 方法,提高双控制器间通信的速度和效率。为了解决上述问题,本发明提供了一种双控制器通信方法,应用于两个控制器构 成的系统,所述两个控制器的硬盘控制器直连,构成相互之间的通信通道,所述两个控制器 中设定的数据的应用类别相同,所述两个控制器进行数据同步时的握手过程包括源控制器发起数据同步,先将待同步数据的应用类别的标识和长度信息封装到数 据发送请求中,通过该通信通道发送到目标控制器;该目标控制器收到该数据发送请求后,根据其中的应用类别标识和长度信息分配 数据缓冲区,向该源控制器返回数据缓冲区分配是否成功的响应。进一步地,该源控制器发起数据同步时,还将该数据缓存到本控制器的缓存器;该握手过程完成后,该源控制器如检测到该响应为数据缓冲区准备成功,则将本 控制器缓存的该数据通过该通信通道发送到该目标控制器分配的数据缓冲区。进一步地,该数据发送请求还封装有所述两个控制器协商的数字签名;该目标控制器接收该数据发送请求进行解析,先判断该请求中的数字签名与本控 制器上的数字签名是否相同,如是,则根据解析得到的应用类别标识和长度信息分配数据 缓冲区,如否,则抛弃该数据发送请求。进一步地,所述两个控制器的硬盘控制器和缓存器之间的数据传输采用直接内存 传输(DMA)方式。进一步地,所述两个控制器的硬盘控制器均采用SAS(串行SCSI)控制器,该通信通道为宽端口全双工SAS通道,该数据发送请求为SCSI 10(小型计算机系统接口读写)请 求消息。为了解决上述问题,本发明还提供了一种双控制器通信系统,其特征在于,包括两 个控制器,所述两个控制器的硬盘控制器直连,构成相互之间的通信通道,所述两个控制器 的结构相同,都包括上层应用模块,用于保存设定的数据的应用类别和待同步的数据的长度信息,发起数据同步,将该数据的应用类别标识和长度信息发送到数据发送模块,根据数据接收模 块发送的应用类别标识和长度信息分配数据缓冲区;数据发送模块,用于将该上层应用模块发送的应用类别标识和长度信息封装到数 据发送请求中,通过硬盘控制器和该通信通道发送到目标控制器,接收目标控制器返回的 数据缓冲区分配是否成功的响应;数据接收模块,用于接收源控制器发送的数据发送请求进行解析,将解析得到的 应用类别标识和长度信息发送到上层应用模块,该数据缓冲区分配完毕,返回数据缓冲区 分配是否成功的响应;硬盘控制器,用于提供接口,转发所述两个控制器间的消息;缓存器,用于缓存数据,提供临时存储空间。进一步地,该上层应用模块,还用于发起同步时,将该数据缓存到本控制器的缓存 器,还将该数据在该缓存器中的位置信息发送到该数据发送模块;该数据发送模块,还用于保存该上层应用模块发送的位置信息和长度信息,收到 该数据缓冲区分配是否成功的响应,判断该数据缓冲区分配是否成功,如成功,则将该数据 的位置信息和长度信息发送到该硬盘控制器;该硬盘控制器,还用于利用该数据发送模块发送的位置信息和长度信息通过该通 信通道发送该缓存器中的该数据。进一步地,该上层应用模块,还用于将分配的数据缓冲区的位置信息发送到该数 据接收模块;该数据接收模块,还用于保存该分配的数据缓冲区的位置信息和该数据的长度信 息,返回该数据缓冲区分配是否成功的响应时,将该位置信息和长度信息发送到该硬盘控 制模块;所述硬盘控制模块,还用于利用该数据接收模块发送的位置信息和长度信息接收 数据到所述分配的数据缓冲区。进一步地,该数据发送模块,还用于将所述两个控制器协商的数字签名封装到该 数据发送请求中。该数据接收模块还用于维护该协商的数字签名,接收该数据发送请求进行解析, 判断该请求中的数字签名与该维护的数字签名是否相同,如是,则根据解析得到的应用类 别标识和长度信息发送到该上层应用模块,如否,则抛弃该数据发送请求。进一步地,该硬盘控制器通过直接内存传输(DMA)方式发送或接收该数据到本控 制器的缓存器。进一步地,该硬盘控制器采用SAS(串行SCSI)控制器,该通信通道为宽端口全双 工SAS通道,该数据发送请求为SCSI 10(小型计算机系统接口读写)请求消息。
本发明通过采用硬盘控制器间直连的方式,在数据发送请求中携带待同步的数据 的应用类别标识和长度信息,在该数据发送请求被接受后直接发送数据缓冲区中的该数 据,不需要对该数据进行打包和拷贝,提高了双控制器间的通信速度和效率;通过在数据发 送请求中携带数字签名,提高了数据通信的安全性和效率;通过对数据按照应用进行分类, 简化了同步的处理,减少了对控制器的资源占用;缓存器和硬盘控制器之间的数据传输采 用DMA方式,有效降低了 CPU的干预,减小了 CPU占用率,提供高速的数据传输性能;由于使 用SAS控制器,数据发送和接收经过SAS通道进行全双工数据收发,速度高达760MB/S。


图1为本发明实施例双控制器通信系统的SAS通道数据收发示意图;图2为本发明实施例双控制器通信系统的SAS通道连接示意图;图3为本发明实施例数据同步的收发流程图;图4为本发明实施例的数据封装示意图;图5为本发明实施例的数据解析示意图。
具体实施例方式下面将结合附图及实施例对本发明的技术方案进行更详细的说明。本发明实施例双控制器通信系统的结构如图1所示,包括两个控制器,所述两个 控制器间通过直连构建相互之间的通信通道,并且所述两个控制器的结构相同,都包括上层应用模块,包括不同类型的应用,用于保存设定的数据的应用类别和数据同 步条件,满足特定的数据同步条件则发起数据同步,将待同步的数据缓存到本控制器的缓 存器,利用保存的数据的应用类别标识该数据的应用类别,获取该数据的数据标识、长度信 息和该数据在缓存器中的位置信息,保存并发送该应用类别标识、数据标识、长度信息和位 置信息到数据发送模块;根据数据接收模块发送的应用类别标识和长度信息分配数据缓冲 区,并将该数据缓冲区的位置信息、长度信息和数据标识发送到数据接收模块。数据发送模块,用于保存该数据的数据标识、长度信息和位置信息,将该数据的数 据标识、应用类别标识和长度信息封装到数据发送请求中,通过硬盘控制器和该通信通道 发送到目标控制器,接收目标控制器返回的数据缓冲区分配是否成功的响应,如判断该数 据缓冲区分配成功,则将该数据的位置信息和长度信息发送到硬盘控制器。该数据接收模块,用于接收该源控制器发送的数据发送请求进行解析,将解析得 到的该数据的数据标识、应用类别标识和长度信息发送到上层应用模块,保存该上层应用 模块分配的数据缓冲区的位置信息和长度信息,返回数据发送响应消息,并将该位置信息 和长度信息发送到该硬盘控制模块。该硬盘控制器,用于提供双控制器间的接口,转发所述两个控制器间的消息,根据 该数据发送模块发送的位置信息和长度信息通过该通信通道发送缓存器中的数据到该目 标控制器,利用该数据接收模块发送的位置信息和长度信息接收数据到该缓存器。该数据缓冲区用于缓存数据,提供临时存储空间。该数据发送请求还封装有所述两个控制器协商的数字签名。该数据发送模块,还 用于将该数字签名封装到该数据发送请求中。该数据接收模块还用于维护该协商的数字签名,接收该数据发送请求进行解析,判断该请求中的数字签名与该维护的数字签名是否相 同,如是,则根据解析得到的应用类别标识和长度信息发送到该上层应用模块,如否,则抛 弃该数据发送请求。该硬盘控制器采用SAS(串行SCSI)控制器,相应地,该通信通道为宽端口全双工 SAS通道,该数据发送请求为SCSI 10(小型计算机系统接口读写)请求消息。该硬盘控制器和数据缓冲区之间的数据传输均采用直接内存传输(DMA)方式。本发明实施例双控制器通信系统中的两个控制器的硬盘控制器以SAS(串行 SCSI)控制器为例,如图2所示,两个SAS控制器之间通过直连的方式构建宽端口全双工 SAS通道。两个控制器互为对方的源(Initiator)控制器和目标(Target)控制器,都能同 时收发数据。在所述两个控制器上,根据双控制器间传输的数据的应用类别对 数据进行分类。 所述两个控制器均保存该数据的应用类别和设定的数据同步条件。源控制器A向目标控制器B同步数据时,控制器A先和控制器B进行握手通信将 该数据的应用类别标识和长度信息封装到SCSI IO请求消息中发送给控制器B,控制器B收 到该SCSI IO请求后进行解析,并根据解析得到应用类别标识和长度信息分配数据缓冲区, 然后返回数据缓冲区分配是否成功的响应。所述两个控制器握手完成后,如数据缓冲区分 配成功,则控制器A通过SAS通道直接发送本控制器缓存器中的该数据到控制器B,控制器 B接收该数据到该分配的数据缓冲区。具体的,控制器A满足一定数据同步条件,发起数据同步后,该控制器A和控制器 B具体处理流程如图3所示,包括以下步骤步骤301-302 控制器A将待同步的数据调入控制器A的数据缓冲区,获取并保存 该数据在数据缓冲区中的位置信息、长度信息和数据标识,利用保存的数据的应用类别标 识该数据的应用类别,将该数据的应用类别标识和长度信息封装到数据发送请求中,发送 给控制器B;该数据发送请求的数据块中还封装有所述两个控制器协商的数字签名,该数字签 名是设定的字符串或数字,如“SendRequestSignature”。在SAS控制器中,该数据发送请求是SAS控制器可以识别的SCSI IO请求消息。控 制器A封装数据包的示意图如图4所示,该SCSI IO请求消息中携带该数据的应用类别标 识、长度信息和数字签名。如果控制器中的硬盘控制器是其他类型的硬盘控制器,则将应用类别标识、长度 信息和数字签名封装到该硬盘控制器对应格式的数据发送请求中。步骤303-304 控制器B收到该数据发送请求后,解析该消息得到其中的应用类别 标识、长度信息和数字签名,验证该数字签名,如该请求中的数字签名与本控制器维护的数 字签名相同,则根据解析得到的应用类别标识和长度信息分配数据缓冲区;控制器B解析数据发送请求的示意图如图5所示,控制器B接收到该消息 后进行解析,验证该请求的合法性,判断该请求中的数字签名是否为协商的字符串 "SendRequestSignature",如是,则根据解析得到的应用类别标识和长度信息分配数据缓 冲区用来接收该数据,如否,则抛弃该请求,返回失败消息,结束;步骤305 控制器B向控制器A返回数据缓冲区分配是否成功的响应,指示数据接收数据缓冲区准备完毕;步骤306 控制器A接收该数据发送响应。至此,控制器A与控制器B握手通信完毕。控制器A如判断该响应为数据缓冲区分配成功,则利用保存的位置信息和长度信 息通过该通信通道发送缓存器中的数据到控制器B,控制器B接收该数据到该分配的数据 缓冲区。控制器A和控制器B的硬盘控制器和数据缓冲区之间的数据传输都采用直接内存 传输(DMA)方式。控制器A的SAS控制器读取本控制器缓存器中的数据并通过SAS通道发 送到控制器B。控制器B的SAS控制器接收该数据直接缓存到控制器B中该分配的数据缓 冲区。本发明实施例控制器的数据缓冲区可以为每种应用类型的数据开辟不同的发送或接收队列,当有数据要发送或接收时,将该数据写入对应的发送或接收队列中。
权利要求
一种双控制器通信方法,应用于两个控制器构成的系统,所述两个控制器的硬盘控制器直连,构成相互之间的通信通道,所述两个控制器中设定的数据的应用类别相同,所述两个控制器进行数据同步时的握手过程包括源控制器发起数据同步,先将待同步数据的应用类别的标识和长度信息封装到数据发送请求中,通过该通信通道发送到目标控制器;该目标控制器收到该数据发送请求后,根据其中的应用类别标识和长度信息分配数据缓冲区,向该源控制器返回数据缓冲区分配是否成功的响应。
2.如权利要求1所述的方法,其特征在于该源控制器发起数据同步时,还将该数据缓存到本控制器的缓存器; 该握手过程完成后,该源控制器如检测到该响应为数据缓冲区准备成功,则将本控制 器缓存的该数据通过该通信通道发送到该目标控制器分配的数据缓冲区。
3.如权利要求1所述的方法,其特征在于该数据发送请求还封装有所述两个控制器协商的数字签名;该目标控制器接收该数据发送请求进行解析,先判断该请求中的数字签名与本控制器 上的数字签名是否相同,如是,则根据解析得到的应用类别标识和长度信息分配数据缓冲 区,如否,则抛弃该数据发送请求。
4.如权利要求2所述的方法,其特征在于所述两个控制器的硬盘控制器和缓存器之间的数据传输采用直接内存传输(DMA)方式。
5.如权利要求1所述的方法,其特征在于所述两个控制器的硬盘控制器均采用SAS (串行SCSI)控制器,该通信通道为宽端口全 双工SAS通道,该数据发送请求为SCSII0(小型计算机系统接口读写)请求消息。
6.一种双控制器通信系统,其特征在于,包括两个控制器,所述两个控制器的硬盘控制 器直连,构成相互之间的通信通道,所述两个控制器的结构相同,都包括上层应用模块,用于保存设定的数据的应用类别和待同步的数据的长度信息,发起数 据同步,将该数据的应用类别标识和长度信息发送到数据发送模块,根据数据接收模块发 送的应用类别标识和长度信息分配数据缓冲区;数据发送模块,用于将该上层应用模块发送的应用类别标识和长度信息封装到数据发 送请求中,通过硬盘控制器和该通信通道发送到目标控制器,接收目标控制器返回的数据 缓冲区分配是否成功的响应;数据接收模块,用于接收源控制器发送的数据发送请求进行解析,将解析得到的应用 类别标识和长度信息发送到上层应用模块,该数据缓冲区分配完毕,返回数据缓冲区分配 是否成功的响应;硬盘控制器,用于提供接口,转发所述两个控制器间的消息; 缓存器,用于缓存数据,提供临时存储空间。
7.如权利要求6所述的系统,其特征在于该上层应用模块,还用于发起同步时,将该数据缓存到本控制器的缓存器,还将该数据 在该缓存器中的位置信息发送到该数据发送模块;该数据发送模块,还用于保存该上层应用模块发送的位置信息和长度信息,收到该数据缓冲区分配是否成功的响应,判断该数据缓冲区分配是否成功,如成功,则将该数据的位 置信息和长度信息发送到该硬盘控制器;该硬盘控制器,还用于利用该数据发送模块发送的位置信息和长度信息通过该通信通 道发送该缓存器中的该数据。
8.如权利要求6所述的系统,其特征在于该上层应用模块,还用于将分配的数据缓冲区的位置信息发送到该数据接收模块; 该数据接收模块,还用于保存该分配的数据缓冲区的位置信息和该数据的长度信息, 返回该数据缓冲区分配是否成功的响应时,将该位置信息和长度信息发送到该硬盘控制模 块;所述硬盘控制模块,还用于利用该数据接收模块发送的位置信息和长度信息接收数据 到所述分配的数据缓冲区。
9.如权利要求6所述的系统,其特征在于该数据发送模块,还用于将所述两个控制器协商的数字签名封装到该数据发送请求中。该数据接收模块还用于维护该协商的数字签名,接收该数据发送请求进行解析,判断 该请求中的数字签名与该维护的数字签名是否相同,如是,则根据解析得到的应用类别标 识和长度信息发送到该上层应用模块,如否,则抛弃该数据发送请求。
10.如权利要求7或8所述的系统,其特征在于该硬盘控制器通过直接内存传输(DMA)方式发送或接收该数据到本控制器的缓存器。
11.如权利要求6所述的系统,其特征在于该硬盘控制器采用SAS(串行SCSI)控制器,该通信通道为宽端口全双工SAS通道,该 数据发送请求为SCSII0(小型计算机系统接口读写)请求消息。
全文摘要
本发明公开了一种双控制器通信系统和方法,应用于两个控制器构成的系统,该两个控制器的硬盘控制器直连,构成相互之间的通信通道,该两个控制器中设定的数据的应用类别相同,该两个控制器进行数据同步时的握手过程包括源控制器发起数据同步,先将待同步数据的应用类别的标识和长度信息封装到数据发送请求中,通过该通信通道发送到目标控制器;该目标控制器收到该数据发送请求后,根据其中的应用类别标识和长度信息分配数据缓冲区,向该源控制器返回数据缓冲区分配是否成功的响应。本发明通过在该数据发送请求被接受后直接发送数据缓冲区中的该数据,不需要对该数据进行打包和拷贝,提高了双控制器间的通信速度和效率。
文档编号H04L29/08GK101834796SQ20101016731
公开日2010年9月15日 申请日期2010年5月6日 优先权日2010年5月6日
发明者刘长鹏 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1