一种数据交互方法、系统、存储介质及设备与流程

文档序号:28161707发布日期:2021-12-24 20:17阅读:136来源:国知局
一种数据交互方法、系统、存储介质及设备与流程

1.本发明涉及信息技术领域,尤其涉及一种数据交互方法、系统、存储介质及设备。


背景技术:

2.在云计算、大数据时代,海量数据存储需要性能更优、传输速率更快的存储产品,满足传输速率更高的同时还要保证数据的完整性、可靠性,这就要求大系统与expander(一种用于连接扩展的固件)、expander与expander之间的交互需要更优的传输协议。
3.在存储系统中,cpu处理业务数据用到pcie(peripheral component interconnect express,高速串行计算机扩展总线标准)接口,硬盘使用sas(serial attached scsi)接口,因而会有pcie转换为sas接口,并且由sas expander对接到每个硬盘。
4.存储服务器为了数据的安全性、可靠性、可扩展性,一般会由双控、四控级联数个二级expander组成一个完整的存储系统,由存储系统与各expander之间进行数据交互。当下常用的带外通讯协议包括但不限于uart(universal asynchronous receiver/transmitter,通用异步收发传输器)、iic(inter

integrated circuit,集成电路总线)等协议,但对于存储产品,带外硬件(如uart口)受到数量限制,很难为expander的一级、二级扩展提供足够的硬件接口;而对于iic,虽然不受数量限制,但其传输速率较慢,会造成业务阻塞的情况。


技术实现要素:

5.有鉴于此,本发明的目的在于提出一种数据交互方法、系统、存储介质及设备,用以解决现有技术中存储系统的expander之间数据交互可靠性差的问题。
6.基于上述目的,本发明提供了一种数据交互方法,包括以下步骤:
7.在同级expander之间按照预设规则选择主端和从端,并在级联expander之间选择前级expander作为主端且选择后级expander作为从端;
8.建立同级expander之间数据交互的page,并建立级联expander之间数据交互的page;
9.由主端通过page发送带有指定expander端口信息的指令,并由端口为指定expander端口的指定从端接收该指令;
10.响应于指定从端通过page接收到该指令,基于该指令判断其是否为目标从端;
11.响应于指定从端不为目标从端,通过page将该指令同步至与指定从端同级的目标从端以使其执行该指令。
12.在一些实施例中,方法还包括:
13.响应于指定从端为目标从端,由指定从端执行该指令。
14.在一些实施例中,方法还包括:
15.响应于主端通过page向从端发送携带数据的第一指令,由从端基于接收到的第一
指令接收并操作数据,并通过page将操作结果返回至主端。
16.在一些实施例中,方法还包括:
17.响应于主端通过page向从端发送关于索取数据的第二指令,由从端执行接收到的第二指令并通过page将数据返回至主端。
18.在一些实施例中,方法还包括:
19.响应于主端通过page向从端发送携带操作命令的第三指令,由从端基于接收到的第三指令执行操作命令,并通过page将执行结果返回至主端。
20.在一些实施例中,方法还包括:
21.响应于主端通过page定期向从端发送查询指令,由从端基于查询指令查询数据,并通过page将查询结果返回至主端。
22.在一些实施例中,在同级expander之间按照预设规则选择主端和从端包括:
23.在处于同级的多个expander之间选择一个expander作为主端并使其他expander作为从端。
24.本发明的另一方面,还提供了一种数据交互系统,包括:
25.主从端选择模块,配置用于在同级expander之间按照预设规则选择主端和从端,并在级联expander之间选择前级expander作为主端且选择后级expander作为从端;
26.page建立模块,配置用于建立同级expander之间数据交互的page,并建立级联expander之间数据交互的page;
27.指令接收模块,配置用于由主端通过page发送带有指定expander端口信息的指令,并由端口为指定expander端口的指定从端接收该指令;
28.判断模块,配置用于响应于指定从端通过page接收到该指令,基于该指令判断其是否为目标从端;以及
29.指令执行模块,配置用于响应于指定从端不为目标从端,通过page将该指令同步至与指定从端同级的目标从端以使其执行该指令。
30.本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任意一项方法。
31.本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任意一项方法。
32.本发明至少具有以下有益技术效果:
33.本发明通过在同级expander之间、级联expander之间建立page进行数据交互,可以有效地提高数据传输速率,保证了数据传输的可靠性、完整性,从而提高整个存储系统的数据处理速率,提升客户体验;并且减少了对uart、iic等硬件接口的依赖,提高了开发的延展性。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
35.图1为根据本发明实施例提供的数据交互方法的示意图;
36.图2为根据本发明实施例提供的双控级联八个二级expander的拓扑图的示意图;
37.图3为根据本发明实施例提供的数据交互系统的示意图;
38.图4为根据本发明实施例提供的实现数据交互方法的计算机可读存储介质的示意图;
39.图5为根据本发明实施例提供的执行数据交互方法的计算机设备的硬件结构示意图。
具体实施方式
40.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
41.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
42.基于上述目的,本发明实施例的第一个方面,提出了一种数据交互方法的实施例。图1示出的是本发明提供的数据交互方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:
43.步骤s10、在同级expander之间按照预设规则选择主端和从端,并在级联expander之间选择前级expander作为主端且选择后级expander作为从端;
44.步骤s20、建立同级expander之间数据交互的page,并建立级联expander之间数据交互的page;
45.步骤s30、由主端通过page发送带有指定expander端口信息的指令,并由端口为指定expander端口的指定从端接收该指令;
46.步骤s40、响应于指定从端通过page接收到该指令,基于该指令判断其是否为目标从端;
47.步骤s50、响应于指定从端不为目标从端,通过page将该指令同步至与指定从端同级的目标从端以使其执行该指令。
48.在现有技术中,存储系统与expander(一种用于连接扩展的固件)之间数据的通信遵守ses(scsi enclosure service)协议通信,通过收发各个传输的ses page来传递信息。例如其中传输状态信息是page2,page2的每个地址空间表示特定的传输内容;expander的程序将本端的状态信息以page2的地址格式上报给存储系统主程序;主程序需要控制某个目标时,按照page2的地址格式设置后下发给expander程序,expander程序接收并解析后得知要控制的目标,并下发实际的控制对象。
49.ses表示scsi协议中用于查询磁盘扩展柜(enclosure)各种状态的一种服务。
50.page(物理页)是sql server存储数据的基本单元,每一个page的大小是8kb,数据文件是由page构成的。在同一个数据库上,每一个page都有一个唯一的资源标识,标识符由三部分组成:db_id,file_id,page_id,例如,15:1:8733,15是数据库的id,1是数据文件的
id,8733是page的编号,page的编号从0依次递增。8个连续的page组成一个区(extent),数据文件中已分配的空间被分割成区的整数倍。一次磁盘io操作作用于page级别,而空间分配的最小单元是区。page是用于存储数据的,不同类型的page存储的数据是不同的,page的结构也是不同的。有些page是用于存储数据的,叫做data page,有些page是用于存储索引结构中的中间节点的,叫做index page,有些page是sql server存储引擎使用的,用于管理page的,叫做系统页。每一个page都由头部(header),内容(content)和行偏移量(offset)组成,也叫做slot,头部是在page的开始处,占用96bytes,用于存储page的编号,page的类型,分配单元(allocation unit)等系统信息。
51.图2示出了双控级联八个二级expander的拓扑图的示意图。存储系统需要的机箱管理相关数据是通过访问主板expander,主板expander通过ses协议标准的page页数据组包的形式与存储系统进行数据交互,参考于此,如图2所示,主板上下控expander之间、主板expander与下级expander之间、下级上下控expander之间通过sas线缆相连,新建page页进行expander之间的带内数据交互实现。
52.本发明实施例在同级expander之间、级联expander之间通过sas线缆相连,利用sas线路速率高,稳定性强的优点,保证带内数据交互的快速性、安全性;通过使用sas链路,可以有效的减少对串口、i2c等硬件接口的依赖,提高开发的延展性,并节约硬件成本;采用新建page页的方式,可以根据内容自由定义数据组包格式及填充内容,提高数据交互的包容性,从而可以有效提高开发效率;各级expander分配唯一的端口号,并在page页设置单独的字段进行数据传输,可以有效提高故障expander的可定位性;并且多级expander之间互通,可以通过任意一个exapnder,去访问其他expander的目标,为数据交互提供了便利的通道。
53.在一些实施例中,方法还包括:响应于指定从端为目标从端,由指定从端执行该指令。
54.本实施例中,每个expander都有各自的端口号,在主端发送指令时也会携带其从端的端口号,从端收到指令后根据指令判断自己是否是目标从端,如果是目标从端,便执行该指令。当执行完指令后,从端再将结果返回主端,从而完成主端和从端的数据交互。
55.在一些实施例中,方法还包括:响应于主端通过page向从端发送携带数据的第一指令,由从端基于接收到的第一指令接收并操作数据,并通过page将操作结果返回至主端。
56.本实施例中,第一指令属于携带有数据的指令,这种指令主要是将数据发送到从端,并由从端对接收到的数据进行操作。
57.在一些实施例中,方法还包括:响应于主端通过page向从端发送关于索取数据的第二指令,由从端执行接收到的第二指令并通过page将数据返回至主端。
58.本实施例中,第二指令属于索取数据的指令,这种指令本身不携带有数据,其主要是向从端索取数据。从端收到这种类型的指令后,读取指令并将主端需要的数据带回。
59.在一些实施例中,方法还包括:响应于主端通过page向从端发送携带操作命令的第三指令,由从端基于接收到的第三指令执行操作命令,并通过page将执行结果返回至主端。
60.本实施例中,第三指令属于操作型指令,这种指令也不携带任何数据,主要是向从端发命令,从端收到指令后执行操作命令。
61.在一些实施例中,方法还包括:响应于主端通过page定期向从端发送查询指令,由从端基于查询指令查询数据,并通过page将查询结果返回至主端。
62.本实施例中,查询指令是另一种指令,其由主端定期向从端发送,若从端有查询结果,就将查询结果返回给主端,若从端没有查询结果,就不返回任何消息。因为主端定期发送查询指令,所以即使从端没有回应也不影响主端的发送。
63.在一些实施例中,在同级expander之间按照预设规则选择主端和从端包括:在处于同级的多个expander之间选择一个expander作为主端并使其他expander作为从端。
64.本实施例中,同级expander之间可以按照位置关系来选择主端和从端。如图2中的上控主板的expander和下控主板的expander,由于上控主板的位置位于下控主板的上面,因此,可以选择上控主板的expander作为主端,下控主板的expander作为从端。
65.在另一实施例中,为了expander之间数据同步的及时性,数据交互协议必须要以较高的频率来周期性发送。除此之外,当数据访问的某端口链路异常,则需要及时上报上级expander直到存储系统;并提示存储系统链路故障,做存储系统进行故障定位及告警处理。
66.本发明实施例的第二个方面,还提供了一种数据交互系统。图3示出的是本发明提供的数据交互系统的实施例的示意图。如图3所示,一种指令执行系统包括:主从端选择模块10,配置用于在同级expander之间按照预设规则选择主端和从端,并在级联expander之间选择前级expander作为主端且选择后级expander作为从端;page建立模块20,配置用于建立同级expander之间数据交互的page,并建立级联expander之间数据交互的page;指令接收模块30,配置用于由主端通过page发送带有指定expander端口信息的指令,并由端口为指定expander端口的指定从端接收该指令;判断模块40,配置用于响应于指定从端通过page接收到该指令,基于该指令判断其是否为目标从端;以及指令执行模块50,配置用于响应于指定从端不为目标从端,通过page将该指令同步至与指定从端同级的目标从端以使其执行该指令。
67.在一些实施例中,系统还包括指定从端执行模块,配置用于响应于指定从端为目标从端,由指定从端执行该指令。
68.本实施例中,每个expander都有各自的端口号,在主端发送指令时也会携带其从端的端口号,从端收到指令后根据指令判断自己是否是目标从端,如果是目标从端,便执行该指令。当执行完指令后,从端再将结果返回主端,从而完成主端和从端的数据交互。
69.在一些实施例中,系统还包括第一执行模块,配置用于响应于主端通过page向从端发送携带数据的第一指令,由从端基于接收到的第一指令接收并操作数据,并通过page将操作结果返回至主端。
70.本实施例中,第一指令属于携带有数据的指令,这种指令主要是将数据发送到从端,并由从端对接收到的数据进行操作。
71.在一些实施例中,系统还包括第二执行模块,配置用于响应于主端通过page向从端发送关于索取数据的第二指令,由从端执行接收到的第二指令并通过page将数据返回至主端。
72.本实施例中,第二指令属于索取数据的指令,这种指令本身不携带有数据,其主要是向从端索取数据。从端收到这种类型的指令后,读取指令并将主端需要的数据带回。
73.在一些实施例中,系统还包括第三执行模块,配置用于响应于主端通过page向从
端发送携带操作命令的第三指令,由从端基于接收到的第三指令执行操作命令,并通过page将执行结果返回至主端。
74.本实施例中,第三指令属于操作型指令,这种指令也不携带任何数据,主要是向从端发命令,从端收到指令后执行操作命令。
75.在一些实施例中,系统还包括第四执行模块,配置用于响应于主端通过page定期向从端发送查询指令,由从端基于查询指令查询数据,并通过page将查询结果返回至主端。
76.本实施例中,查询指令是另一种指令,其由主端定期向从端发送,若从端有查询结果,就将查询结果返回给主端,若从端没有查询结果,就不返回任何消息。因为主端定期发送查询指令,所以即使从端没有回应也不影响主端的发送。
77.在一些实施例中,主从端选择模块10包括同级主从端选择模块,配置用于在处于同级的多个expander之间选择一个expander作为主端并使其他expander作为从端。
78.本实施例中,同级expander之间可以按照位置关系来选择主端和从端。如图2中的上控主板的expander和下控主板的expander,由于上控主板的位置位于下控主板的上面,因此,可以选择上控主板的expander作为主端,下控主板的expander作为从端。
79.本发明实施例的数据交互系统,在同级expander之间、级联expander之间通过sas线缆相连,利用sas线路速率高,稳定性强的优点,保证带内数据交互的快速性、安全性;通过使用sas链路,可以有效的减少对串口、i2c等硬件接口的依赖,提高开发的延展性,并节约硬件成本;采用新建page页的方式,可以根据内容自由定义数据组包格式及填充内容,提高数据交互的包容性,从而可以有效提高开发效率;各级expander分配唯一的端口号,并在page页设置单独的字段进行数据传输,可以有效提高故障expander的可定位性;并且多级expander之间互通,可以通过任意一个exapnder,去访问其他expander的目标,为数据交互提供了便利的通道。
80.本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图4示出了根据本发明实施例提供的实现数据交互方法的计算机可读存储介质的示意图。如图4所示,计算机可读存储介质3存储有计算机程序指令31。该计算机程序指令31被处理器执行时实现如下步骤:
81.在同级expander之间按照预设规则选择主端和从端,并在级联expander之间选择前级expander作为主端且选择后级expander作为从端;
82.建立同级expander之间数据交互的page,并建立级联expander之间数据交互的page;
83.由主端通过page发送带有指定expander端口信息的指令,并由端口为指定expander端口的指定从端接收该指令;
84.响应于指定从端通过page接收到该指令,基于该指令判断其是否为目标从端;
85.响应于指定从端不为目标从端,通过page将该指令同步至与指定从端同级的目标从端以使其执行该指令。
86.在一些实施例中,步骤还包括:响应于指定从端为目标从端,由指定从端执行该指令。
87.在一些实施例中,步骤还包括:响应于主端通过page向从端发送携带数据的第一指令,由从端基于接收到的第一指令接收并操作数据,并通过page将操作结果返回至主端。
88.在一些实施例中,步骤还包括:响应于主端通过page向从端发送关于索取数据的第二指令,由从端执行接收到的第二指令并通过page将数据返回至主端。
89.在一些实施例中,步骤还包括:响应于主端通过page向从端发送携带操作命令的第三指令,由从端基于接收到的第三指令执行操作命令,并通过page将执行结果返回至主端。
90.在一些实施例中,步骤还包括:响应于主端通过page定期向从端发送查询指令,由从端基于查询指令查询数据,并通过page将查询结果返回至主端。
91.在一些实施例中,在同级expander之间按照预设规则选择主端和从端包括:在处于同级的多个expander之间选择一个expander作为主端并使其他expander作为从端。
92.应当理解,在相互不冲突的情况下,以上针对根据本发明的数据交互方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的数据交互系统和存储介质。
93.本发明实施例的第四个方面,还提供了一种计算机设备,包括存储器402和处理器401,该存储器中存储有计算机程序,该计算机程序被该处理器执行时实现上述任意一项实施例的方法。
94.如图5所示,为本发明提供的执行数据交互方法的计算机设备的一个实施例的硬件结构示意图。以如图5所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图5中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与数据交互系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
95.存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的数据交互方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储数据交互方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
96.处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的数据交互方法。
97.最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddr sdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambus ram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
98.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模
块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
99.结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp和/或任何其它这种配置。
100.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
101.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
102.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1