CN115098413B - 一种存储控制器、方法、装置及存储介质 - Google Patents
一种存储控制器、方法、装置及存储介质 Download PDFInfo
- Publication number
- CN115098413B CN115098413B CN202210578269.2A CN202210578269A CN115098413B CN 115098413 B CN115098413 B CN 115098413B CN 202210578269 A CN202210578269 A CN 202210578269A CN 115098413 B CN115098413 B CN 115098413B
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- port
- target
- storage 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 36
- 230000005540 biological transmission Effects 0.000 claims description 33
- 238000005538 encapsulation Methods 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种存储控制器、方法、装置和存储介质。存储控制器包括:用于存储数据的存储节点;存储节点包括用于发送数据的网卡和用于建立非透明桥数据链路的非透明桥卡;网卡包括至少一个用于与另一个存储控制器电性连接的端口。通过应用本存储控制器能够实现同时兼顾性能和成本的远程复制。
Description
技术领域
本申请涉及存储技术领域,特别是涉及一种存储控制器、方法、装置及存储介质。
背景技术
为了实现数据保护和灾难恢复等目的,现目前通常会在不同存储控制器中对重要数据进行复制。一般来说,由于各存储控制器之间相距较远,因此它们之间的数据复制过程也称为远程复制。
目前的远程复制过程是基于以太网或者光纤通道(Fibre Channel,FC)来实现的,两种方式的缺陷都比较明显。基于以太网的远程复制在数据正确率和实时性方面不如基于FC的远程复制,而基于FC的远程复制在硬件成本方面不如基于以太网的远程复制。
可见,目前常用的远程复制无法同时兼顾性能和成本。
发明内容
基于此,针对上述技术问题,本申请提供了能够实现同时兼顾性能和成本的远程复制的一种存储控制器、方法、装置及存储介质。
第一方面,本申请提供一种存储控制器,该存储控制器包括:用于存储数据的存储节点;存储节点包括用于发送数据的网卡和用于建立非透明桥数据链路的非透明桥卡;网卡包括至少一个用于与另一个存储控制器电性连接的端口。
结合第一方面,在第一方面的第一种实现方式中,存储节点包括第一存储节点和第二存储节点,第一存储节点和第二存储节点电性连接;第一存储节点的网卡,包括用于分别与另一存储控制器的第一存储节点和第二存储节点电性连接的第一一端口和第一二端口;第二存储节点的网卡,包括用于分别与另一存储控制器的第一存储节点和第二存储节点电性连接的第二一端口和第二二端口。
结合第一方面,在第一方面的第二种实现方式中,各端口包括用于通过两根线缆与另外一个存储节点电性连接的一分二转接头。
第二方面,本申请还提供了一种存储控制方法,应用于如第一方面或第一方面的任意一种实现方式中的存储控制器,该方法包括:获取待存储的目标数据,并确定待输出的目标端口;根据非透明桥传输协议对目标数据进行封装处理,得到封装数据,封装数据中包括在另一个存储控制器中的目标地址;通过目标端口向目标地址发送封装数据。
结合第二方面,在第二方面的第一种实现方式中,确定待输出的目标端口,包括:获取与另一个存储器连接的至少一个端口的工作状态;根据至少一个端口的工作状态,确定至少一个端口中空闲的端口,并将空闲的端口作为目标端口。
结合第二方面,在第二方面的第二种实现方式中,在目标端口不存在的情况下,向存储控制器中的另一存储节点发送目标数据,使得另一存储节点在获得目标数据的情况下,向另一存储控制器发送目标数据,其中,存储控制器中包括至少两个存储节点。
结合第二方面,在第二方面的第三种实现方式中,方法还包括:在存在至少两个目标端口的情况下,根据非透明桥传输协议对目标数据进行拆分并封装处理,得到至少两个封装数据,其中,至少两个封装数据与至少两个目标端口的数量一致;将至少两个封装数据分别通过至少两个的目标端口进行发送。
结合第二方面,在第二方面的第四种实现方式中,方法还包括:在接收到另一个存储控制器发送的数据的情况下,根据非透明桥传输协议对接收到的数据进行解封装,得到待存储的目标数据,以及目标地址;将待存储的目标数据存储到目标地址所指示的位置。
第三方面,本申请还提供了一种存储控制装置,装置包括:调用单元,用于获取待存储的目标数据,并确定待输出的目标端口;驱动单元,用于根据非透明桥传输协议对目标数据进行封装处理,得到封装数据,封装数据中包括在另一个存储控制器中的目标地址;发送单元,用于通过目标端口向目标地址发送封装数据。
结合第三方面,在第三方面的第一种实现方式中,调用单元,具体用于:获取与另一个存储器连接的至少一个端口的工作状态;根据至少一个端口的工作状态,确定至少一个端口中空闲的端口,并将空闲的端口作为目标端口。
结合第三方面,在第三方面的第二种实现方式中,发送单元还用于:在目标端口不存在的情况下,向存储控制器中的另一存储节点发送目标数据,使得另一存储节点在获得目标数据的情况下,向另一存储控制器发送目标数据,其中,存储控制器中包括至少两个存储节点。
结合第三方面,在第三方面的第三种实现方式中,驱动单元,还用于在存在至少两个目标端口的情况下,根据非透明桥传输协议对目标数据进行拆分并封装处理,得到至少两个封装数据,其中,至少两个封装数据与至少两个目标端口的数量一致;发送单元,还用于将至少两个封装数据分别通过至少两个的目标端口进行发送。
结合第三方面,在第三方面的第四种实现方式中,驱动单元,还用于在接收到另一个存储控制器发送的数据的情况下,根据非透明桥传输协议对接收到的数据进行解封装,得到待存储的目标数据,以及目标地址;调用单元,还用于将待存储的目标数据存储到目标地址所指示的位置。
第四方面,本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有多条指令,指令适于由处理器加载并执行如第一方面或第一方面的任意一种实现方式的存储控制方法
综上,本申请实施例通过在存储控制器中的存储节点中增加非透明桥卡和网卡,实现了不同存储控制器之间基于非透明桥数据链路的互联互通。具体的,非透明桥用于在不同存储控制器之间构建非透明桥数据链路,网卡用于为不同存储控制器提供连接的端口,不同存储控制器之间在网卡的端口上连接上电缆,便可以实现基于非透明桥的互联互通。可见,本申请提供的存储控制器的结构简单,不需要增加复杂的硬件,并且实现了基于非透明桥的可靠通信,因此通过应用该存储控制器可以实现同时兼顾性能和成本的远程复制。
附图说明
图1为一个实施例中存储控制器的应用环境图;
图2为一个实施例中存储控制器中的存储节点的结构性框图;
图3为一个实施例中存储控制器的结构性框图;
图4为另一个实施例中存储控制器的结构性框图;
图5为一个实施例中存储控制方法的流程示意图;
图6为另一个实施例中存储控制方法的流程示意图;
图7为一个实施例中存储控制器的示意性框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
由于本申请实施例涉及大量的专业术语,为了便于理解,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。
1、存储控制器
存储控制器是对存储节点的访问进行必要控制的设备,使访问存储节点的设备能够根据要求使用存储资源。存储控制器中包括至少一个的存储节点,存储节点用于存储数据。其中,包括两个存储节点的存储控制器被称为双控存储控制器。存储控制器的功能包括将访问存储节点的设备所发出的读、写等命令转换成存储器能够识别的信号等。
2、非透明桥(Non Transparent Bridge,NTB)
非透明桥用于连接两个独立的处理器域。非透明桥两侧的资源和地址空间完全独立,非透明桥在一次侧和二次侧之间可以进行地址翻译。非透明桥增加了隔离主、从总线段之间地址域的功能。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”、“纵向”、“横向”、“水平”、“内”、“外”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,亦仅为了便于简化叙述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
还需要说明的是,本申请接下来涉及到的存储控制器或存储控制装置可以包括但不限于专用的存储控制器、服务器、终端设备、中央处理器(Central Processing Unit,CPU)、通用处理器,协处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合等,该存储控制器可以实现本申请的所描述的存储控制方法,例如可以确定待输出的目标端口等,本申请对此不再赘述。
目前,现有技术常会基于以太网或者光纤通道(Fibre Channel,FC)来实现远程复制。但该两种方式的缺陷都比较明显,基于以太网的远程复制在数据正确率和实时性方面不如基于FC的远程复制,而基于FC的远程复制在硬件成本方面不如基于以太网的远程复制。可见,还缺少一种同时兼顾性能和成本的远程复制的设备及方法等。
对此,本申请提出了一种存储控制器,可以兼顾成本和性能,即能通过增加较少的硬件便能实现在多个存储控制器之前进行准确且高效的存储控制。该存储控制器包括:用于存储数据的存储节点;存储节点包括用于发送数据的网卡和用于建立非透明桥数据链路的非透明桥卡;网卡包括至少一个用于与另一个存储控制器电性连接的端口。
本申请提供的芯片可以应用于如图1所示的应用环境中。其中,存储控制器可以是如图所示的服务器,也可以是服务器中的部件。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。以图1中的服务器为存储控制器为例,存储控制器110与存储控制器120通过线缆连接,且存储控制器110与存储控制器120中各自包括有存储节点。存储节点用于存储数据,存储控制器用于对存储节点进行访问控制。其中,存储控制器之间连接的线路可以是串行连接小型计算机系统接口(Serial Attached SCSI,SAS)线缆。
其中,存储节点的结构如图2所示的存储节点的结构性框图所示,存储节点中包括用于发送数据的网卡220和用于建立非透明桥数据链路的非透明桥卡210。其中,网卡包括至少一个用于与另一个存储控制器电性连接的端口。需要说明的是,网卡220与非透明桥卡210可以通过总线230连接。具体的,网卡可以是高速串行计算机扩展总线标准(peripheralcomponent interconnect express,PCIe)卡,PCIe卡可以通过插到存储节点上的PCIe插槽中来集成在存储节点中。非透明网桥卡即NTB卡也可通过插到存储节点内部的插槽来集成在存储节点中。
接下来,本申请将结合如图3和图4所示的存储控制器的结构性框图,对本申请所提供的存储控制器进行更加详细清楚的说明。具体的:
在一种可实施的方式中,存储控制器包括一个存储节点。如图3所示,本端的第一存储控制器和对端的第二存储控制器各包括一个存储控制器,存储节点之间通过网卡提供的端口连接线缆,并通过存储节点内部的NTB卡在所连接的线缆上建立非透明桥链路(即NTB链路),使得第一存储控制器和第二存储控制器之间在该NTB链路上不用交换机等设备便可以实现数据传输,以实现远程复制。
在另一种可实施的方式中,存储控制器包括多个存储节点。假设本端的第一存储控制器和对端的第二存储控制器各包括N个存储节点。本端的第一存储控制器依次通过第一存储节点、第二存储节点......第N存储节点与第二存储控制器的N个存储节点通过线缆进行连接,得到N×N条线路,各存储节点利用NTB卡在线路上建立NTB链路,得到N×N条NTB链路。其中,N是任意大于等于二的常数。
为了更好理解上面第二个可实施的方式,即存储控制器包括多个存储节点的情形,接下来本申请将以存储控制器包括第一存储节点和第二存储节点为例对此进行说明。需要注意的是,本例子不应对存储控制器中的存储节点的个数造成限定。因为存储控制器包括两个存储节点只是对存储控制器包括多个存储节点的一种举例,本领域技术人员可以基于本申请实施例实现两个以上存储节点的方案,因此存储器包括两个及两个以上的存储节点的方案都应该在本申请的保护范围内。
如图4所示,存储控制器包括第一存储节点和第二存储节点,第一存储节点和第二存储节点电性连接;第一存储节点的网卡,包括用于分别与另一存储控制器的第一存储节点和第二存储节点电性连接的第一一端口和第一二端口;第二存储节点的网卡,包括用于分别与另一存储控制器的第一存储节点和第二存储节点电性连接的第二一端口和第二二端口。
需要说明的是,第一存储控制器和第二存储控制器都符合上述关于存储控制器结构的描述。具体的,第一存储控制器/第二存储控制器包括第一存储节点和第二存储节点,第一存储控制器/第二存储控制器的第一存储节点包括第一一端口和第一二端口,第一存储控制器/第二存储控制器的第二存储节点包括第二一端口、第二二端口。
其中,第一存储控制器的第一存储节点的第一一端口,与第二存储控制器的第一存储节点的第一一端口,通过第一一链路连接;第一存储控制器的第一存储节点的第一二端口,与第二存储控制器的第二存储节点的第二一端口,通过第一二链路连接;第一存储控制器的第二存储节点的第二一端口,与第二存储控制器的第一存储节点的第一二端口,通过第二一链路连接;第一存储控制器的第二存储节点的第二二端口,与第二存储控制器的第二存储节点的第二二端口,通过第二二链路连接。
可选的,存储节点的各端口包括至少两个线缆接口。具体的,各端口上连接一分M转接头,其中,M是线缆接口的个数,M是任意大于等于二的常数。可以理解的是,网卡端口所提供的是逻辑端口,不同端口之间传输的是不同信号。而线缆接口所提供的是物理端口,相同端口之间传输是由一个信号复制来的相同信号。
为了更好理解上述多个物理连接的方案,接下来本申请将以各端口有两个线缆接口为例子进行说明。具体的,存储控制器的各端口包括用于通过两根线缆与另外一个存储节点电性连接的一分二转接头。其中,一分二转接头指的是将信号复制为两路信号的部件,一分二转接头用于将一个信号复制为两个相同信号,并在两条线缆上同时向另一个存储控制器的存储节点的同一个端口传输。示例性的,存储节点的端口之间通过双线缆连接。可见,本申请实施例通过在存储节点的各端口设置至少两个线缆接口,以增加线路的冗余,减少存储控制器因为线路损毁导致的数据传输错误,以进一步提高传输性能。
综上,本申请实施例通过在存储控制器中的存储节点中增加非透明桥卡和网卡,实现了不同存储控制器之间基于非透明桥数据链路的互联互通。可见,本申请提供的存储控制器的结构简单,不需要增加复杂的硬件,并且实现了基于非透明桥的可靠通信,因此通过应用该存储控制器可以实现同时兼顾性能和成本的远程复制。
在一个实施例中,如图5所示,提供了一种控制存储方法,该方法应用于前述的存储控制器。具体的,存储控制方法包括以下步骤:
501:获取待存储的目标数据,并确定待输出的目标端口。
其中,为获取待存储的目标数据,存储控制器可以在存储节点中获取最新待存入的数据作为待存储的数据,并将该待存储的数据作为待存储的目标数据。另外,为确定待输出的目标端口,存储控制器首先确定待接收该目标数据的对象,然后确定与该对象连接的至少一个端口,并将与该对象连接的至少一个端口中的其中一个作为目标端口。
502:根据非透明桥传输协议对目标数据进行封装处理,得到封装数据,封装数据中包括在另一个存储控制器中的目标地址。
其中,非透明桥传输协议指的是NTB卡中所预存的传输协议,该传输协议包括数据的封装处理及解封装处理的流程等。目标地址所指示的是另一个存储控制器中的存储节点的存储位置。封装处理包括将目标数据与目标地址等信息按照传输协议进行打包。可以理解的是,插上NTB卡之后才使得存储控制器之间可以通过直连的线缆来进行通信,而不需要交换机等设备。因为按照传输协议进行封装处理后的目标数据包括目标地址,使得接收到该封装数据的另一存储控制器在可以正确解封装的同时,还可以根据目标地址将目标数据存储在本地的存储节点中。
更具体的,本端的存储控制器在需要向另一个存储控制器发送数据时,插入了NTB卡的存储控制器可以先通过驱动接口调用NTB驱动,使得NTB驱动按照预存的传输协议将数据进行封装处理,并将封装后的数据通过NTB链路向另一端控制器的目标地址发送。另一端的存储控制器在接收到封装后的数据之后,再通过调用NTB驱动将封装后的数据进行解封装,并解封装后得到的数据存入到目标地址所指示的存储位置。
可选的,存储节点还包括直接存储器访问(Direct Memory Access,DMA)。其中,DMA用于在存储节点发送数据之前,或者接收数据之前暂存数据。
503:通过目标端口向目标地址发送封装数据。
其中,存储控制器通过目标端口向另一个存储控制器中的目标地址发送封装数据,以将封装数据中包括的目标数据存储在目标地址所指示的另一个存储控制器中的存储位置。
需要说明的是,存储控制器包括一个或一个以上的存储节点。
在一种具体可实施的方式中,存储控制器包括一个存储节点。在存储控制器包括一个存储节点的情况下,每个存储节点各自包括一个端口,如图3所示,本端的第一存储控制器与对端的第二存储控制器之间通过各自的端口连接。
在另一种具体可实施的方式中,存储控制器包括一个以上的存储节点。在存储控制器包括一个存储节点的情况下,每个存储节点包括有与存储节点一致个数的端口。假设本端的第一存储控制器和对端的第二存储控制器各包括N个存储节点,那么第一存储控制器与第二存储控制器之间有N×N条线路。其中,N是任意大于等于二的常数。
为了更好理解上面第二个可实施的方式,即存储控制器包括多个存储节点的情形,接下来本申请将以存储控制器包括第一存储节点和第二存储节点为例对此进行说明。
如图4所示,存储节点包括第一存储节点和第二存储节点,第一存储节点和第二存储节点电性连接;第一存储节点的网卡,包括用于分别与另一存储控制器的第一存储节点和第二存储节点电性连接的第一一端口和第一二端口;第二存储节点的网卡,包括用于分别与另一存储控制器的第一存储节点和第二存储节点电性连接的第二一端口和第二二端口。
可选的,为确定待输出的目标端口,存储控制器可以获取与另一个存储器连接的至少一个端口的工作状态;根据至少一个端口的工作状态,确定至少一个端口中空闲的端口,并将空闲的端口作为目标端口。
在本申请实施例中,存储控制器在向另一个存储控制器发送目标数据之前,先确定待输出的目标端口,尤其在存储控制器与另一个存储控制器之间有多个连接的端口时,先确定连接着的端口中工作状态处于空闲的端口,并将该处于空闲的端口作为目标端口。
可选的,在目标端口不存在的情况下,向存储控制器中的另一存储节点发送目标数据,使得另一存储节点在获得目标数据的情况下,向另一存储控制器发送目标数据,其中,存储控制器中包括至少两个存储节点。
在本申请实施例中,存储控制器在未检测到目标端口的情况下,通过内部的多个存储节点之间的连线,将目标数据从一个存储节点发送到另一存储节点,从而尝试从另一个存储节点发送给另一个存储控制器。举例来说,如图4所示,本端的第一存储控制器和对端的第二存储控制器都分别包括两个存储节点,即第一存储节点和第二存储节点。假设待传输的目标数据存储在第一存储控制器中的第一存储节点,则第一存储控制器在需要将目标数据发送给第二存储控制器的情况下,优先通过第一存储控制器的第一存储节点将目标数据发送给第二存储控制器。如果第一存储控制器的第一存储节点与第二存储控制器的连接的端口(第一一端口、第一二端口)都处于占用的状态,因此无法直接发送对端。对此,第一存储控制器先控制内部的第一存储控制器将目标数据通过内部链路传输到内部的第二存储节点,然后第一存储控制器的第二存储节点再将目标数据通过该第二存储节点的端口(第二一端口或第二二端口)。其中,内部链路指的是存储控制器内部的存储节点之间进行通信的链路。
可选的,在存在至少两个目标端口的情况下,根据非透明桥传输协议对目标数据进行拆分并封装处理,得到至少两个封装数据,其中,至少两个封装数据与至少两个目标端口的数量一致;将至少两个封装数据分别通过至少两个的目标端口进行发送。
在本申请实施例中,为实现数据传输时的负载均衡,存储控制器还可以在目标端口有至少两个的情况下,按照目标端口的个数对目标数据进行拆分并封装处理,得到与目标端口的一致个数的至少两个封装数据,并将得到的至少两个封装数据通过不同的目标端口发送。
可选的,在接收到另一个存储控制器发送的数据的情况下,根据非透明桥传输协议对接收到的数据进行解封装,得到待存储的目标数据,以及目标地址;将待存储的目标数据存储到目标地址所指示的位置。
在本申请实施例中,对存储控制器接收数据的情况进行了说明。存储控制器在通过端口接收到另一个存储控制器发送的数据时,先调用NTB驱动对数据进行解封装处理,以得到待存储的目标数据以及目标地址,然后将该目标数据存储在目标地址中。需要说明的是,本申请实施例中的目标数据用于区别不需要存储的数据和需要存储数据,并不表示与前述实施例中的目标数据的内容是完全相同的。另外,本申请实施例中的目标地址是在本端的存储地址,与前述实施例中的目标地址并不矛盾。因为对于发送数据的另一存储控制器来说,接收数据的本端的存储控制器也是另一存储控制器。
综上,本申请实施例提供了一种存储控制方法,通过在存储控制器中增设NTB卡以及网卡,来实现不同存储控制器之间的远程复制。一方面,本申请实施例实现了基于非透明桥的可靠通信,另一方面,本申请实施例是应用在结构简单的存储控制器上的,不需要增加复杂的硬件。因此本申请实施例实现了同时兼顾性能和成本的远程复制。
本申请还提供了另一个实施例,应用于前述的存储控制器,接下来本申请将结合如图6所示的存储控制方法的流程示意图,对该实施例进行详细说明。
601:获取与另一个存储器连接的至少一个端口的工作状态。
其中,工作状态包括空闲、占用、故障等,空闲用于指示端口处于正常且未传输数据的状态,占用用于指示端口处于正常且正在传输数据的状态,故障用于指示端口处于非正常且无法传输数据的状态。
602:根据至少一个端口的工作状态,确定至少一个端口中空闲的端口,并将空闲的端口作为目标端口。
在本申请实施例中,存储控制器在向另一个存储控制器发送目标数据之前,先确定待输出的目标端口,尤其在存储控制器与另一个存储控制器之间有多个连接的端口时,先确定连接着的端口中工作状态处于空闲的端口,并将该处于空闲的端口作为目标端口。需要说明的是,在存在多个空闲的端口的情况下,存储控制器可以将任意一个空闲的端口作为目标端口,也可以将检测到的第一个空闲的端口作为目标端口。
举例来说,如图4所示,本端的第一存储控制器与对端的第二存储控制器分别两个存储节点,每个存储节点有两个端口。当存储控制器控制第一存储控制器中的第一存储节点向第二存储控制器发送目标数据时,先确定第一存储控制器的第一存储节点的第一一端口和第一二端口是否空闲,如果第一一端口处于空闲的状态,第一二端口处于占用的状态,则确定第一一端口为目标端口;如果两个端口都空闲,则将两个端口中的任意一个端口作为目标端口。
603:根据非透明桥传输协议对目标数据进行封装处理,得到封装数据,封装数据中包括在另一个存储控制器中的目标地址。
604:通过目标端口向目标地址发送封装数据。
综上,本申请实施例提供了一种更详细的存储控制方法。在存储控制器有至少一个端口的情况下,先确定该至少一个端口中处于空闲的端口,并将该空闲的端口作为目标端口,然后通过目标端口发送该目标数据。可见,本申请实施例通过选择空闲的端口发送数据,提高了数据传输的效率,进一步提升了传输性能。
应该理解的是,虽然图5-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图5-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供了一种存储控制装置,如图7所示,该存储控制装置包括:调用单元610、驱动单元620和发送单元630,其中:
调用单元610,用于获取待存储的目标数据,并确定待输出的目标端口;驱动单元620,用于根据非透明桥传输协议对目标数据进行封装处理,得到封装数据,封装数据中包括在另一个存储控制器中的目标地址;发送单元630,用于通过目标端口向目标地址发送封装数据。
可选的,调用单元610具体用于:获取与另一个存储器连接的至少一个端口的工作状态;根据至少一个端口的工作状态,确定至少一个端口中空闲的端口,并将空闲的端口作为目标端口。
可选的,发送单元630还用于:在目标端口不存在的情况下,向存储控制器中的另一存储节点发送目标数据,使得另一存储节点在获得目标数据的情况下,向另一存储控制器发送目标数据,其中,存储控制器中包括至少两个存储节点。
可选的,驱动单元620,还用于在存在至少两个目标端口的情况下,根据非透明桥传输协议对目标数据进行拆分并封装处理,得到至少两个封装数据,其中,至少两个封装数据与至少两个目标端口的数量一致;发送单元630,将至少两个封装数据分别通过至少两个的目标端口进行发送。
可选的,驱动单元620,还用于在接收到另一个存储控制器发送的数据的情况下,根据非透明桥传输协议对接收到的数据进行解封装,得到待存储的目标数据,以及目标地址;调用单元610,还用于将待存储的目标数据存储到目标地址所指示的位置。
关于存储控制器的具体限定可以参见上文中对于存储控制方法的限定,在此不再赘述。上述存储控制器中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储端口数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种存储控制方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取待存储的目标数据,并确定待输出的目标端口;根据非透明桥传输协议对目标数据进行封装处理,得到封装数据,封装数据中包括在另一个存储控制器中的目标地址;通过目标端口向目标地址发送封装数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取与另一个存储器连接的至少一个端口的工作状态;根据至少一个端口的工作状态,确定至少一个端口中空闲的端口,并将空闲的端口作为目标端口。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在目标端口不存在的情况下,向存储控制器中的另一存储节点发送目标数据,使得另一存储节点在获得目标数据的情况下,向另一存储控制器发送目标数据,其中,存储控制器中包括至少两个存储节点。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:在存在至少两个目标端口的情况下,根据非透明桥传输协议对目标数据进行拆分并封装处理,得到至少两个封装数据,其中,至少两个封装数据与至少两个目标端口的数量一致;将至少两个封装数据分别通过至少两个的目标端口进行发送。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在接收到另一个存储控制器发送的数据的情况下,根据非透明桥传输协议对接收到的数据进行解封装,得到待存储的目标数据,以及目标地址;将待存储的目标数据存储到目标地址所指示的位置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种存储控制器,其特征在于,包括:
用于存储数据的存储节点;
所述存储节点包括用于发送数据的网卡和用于建立非透明桥数据链路的非透明桥卡;
所述网卡包括至少一个用于与另一个存储控制器电性连接的端口,各所述端口包括用于通过两根线缆与另外一个存储节点电性连接的一分二转接头,所述一分二转接头指的是将信号复制为两路信号的部件,所述一分二转接头用于将一个信号复制为两个相同信号,并在两条线缆上同时向另一个存储控制器的存储节点的同一个端口传输;
所述存储节点包括第一存储节点和第二存储节点,其中,所述第一存储节点和第二存储节点电性连接;
所述存储节点用于根据非透明桥传输协议对获取的待存储的目标数据,得到封装数据,所述封装数据中包括在另一个存储控制器中的目标地址,并通过确定出的待输出的目标端口向所述目标地址发送所述封装数据,以实现所述目标数据的复制;
所述存储控制器还用于当所述第一存储节点与另一存储控制器连接的端口都处于占用的状态时,控制所述第一存储节点将目标数据通过内部链路传输到内部的第二存储节点,以便所述第二存储节点将所述目标数据通过所述第二存储节点的端口与另一存储控制器的连接端口之间的链路发送至另一存储控制器,其中,所述内部链路指的是存储控制器内部的存储节点之间进行通信的链路。
2.根据权利要求1所述的存储控制器,其特征在于,包括:
所述第一存储节点的网卡包括用于分别与另一存储控制器的第一存储节点和第二存储节点电性连接的第一一端口和第一二端口;
所述第二存储节点的网卡包括用于分别与所述另一存储控制器的第一存储节点和第二存储节点电性连接的第二一端口和第二二端口。
3.一种存储控制方法,应用于如权利要求1所述的存储控制器中的存储节点,其特征在于,包括:
获取待存储的目标数据,并确定待输出的目标端口;
根据非透明桥传输协议对所述目标数据进行封装处理,得到封装数据,所述封装数据中包括在另一个存储控制器中的目标地址;
通过所述目标端口向所述目标地址发送所述封装数据。
4.根据权利要求3所述的方法,其特征在于,所述确定待输出的目标端口,包括:
获取与所述另一个存储控制器连接的至少一个端口的工作状态;
根据所述至少一个端口的工作状态,确定所述至少一个端口中空闲的端口,并将所述空闲的端口作为所述目标端口。
5.根据权利要求3所述的方法,其特征在于,在所述目标端口不存在的情况下,向所述存储控制器中的另一存储节点发送所述目标数据,使得所述另一存储节点在获得所述目标数据的情况下,向所述另一存储控制器发送所述目标数据,其中,所述存储控制器中包括至少两个存储节点。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在存在至少两个目标端口的情况下,根据非透明桥传输协议对所述目标数据进行拆分并封装处理,得到至少两个封装数据,其中,所述至少两个封装数据与所述至少两个目标端口的数量一致;
将所述至少两个封装数据分别通过所述至少两个的目标端口进行发送。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在接收到所述另一个存储控制器发送的数据的情况下,根据非透明桥传输协议对所述接收到的数据进行解封装,得到待存储的目标数据,以及目标地址;
将所述待存储的目标数据存储到所述目标地址所指示的位置。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有多条指令,所述指令适于由处理器加载并执行如权利要求3-7中任一项所述的存储控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210578269.2A CN115098413B (zh) | 2022-05-25 | 2022-05-25 | 一种存储控制器、方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210578269.2A CN115098413B (zh) | 2022-05-25 | 2022-05-25 | 一种存储控制器、方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115098413A CN115098413A (zh) | 2022-09-23 |
CN115098413B true CN115098413B (zh) | 2023-08-11 |
Family
ID=83288698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210578269.2A Active CN115098413B (zh) | 2022-05-25 | 2022-05-25 | 一种存储控制器、方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098413B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018060419A (ja) * | 2016-10-06 | 2018-04-12 | 富士通株式会社 | ストレージ制御装置およびストレージ装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589723B2 (en) * | 2010-12-22 | 2013-11-19 | Intel Corporation | Method and apparatus to provide a high availability solid state drive |
WO2017189620A1 (en) * | 2016-04-25 | 2017-11-02 | Netlist, Inc. | Method and apparatus for uniform memory access in a storage cluster |
-
2022
- 2022-05-25 CN CN202210578269.2A patent/CN115098413B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018060419A (ja) * | 2016-10-06 | 2018-04-12 | 富士通株式会社 | ストレージ制御装置およびストレージ装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115098413A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8615623B2 (en) | Internet connection switch and internet connection system | |
US10719472B2 (en) | Interface circuit and packet transmission method thereof | |
US7210000B2 (en) | Transmitting peer-to-peer transactions through a coherent interface | |
US20130179722A1 (en) | Ring topology for compute devices | |
US9213662B2 (en) | I/O bus system | |
JPS6250862B2 (zh) | ||
US11314418B2 (en) | Extensible storage system and method | |
KR102007368B1 (ko) | Pci 익스프레스 스위치 및 이를 이용한 컴퓨터 시스템 | |
US10216669B2 (en) | Bus bridge for translating requests between a module bus and an axi bus | |
JP2006059356A (ja) | 安全性関連処理のバス結合のための方法と装置 | |
CN105095139A (zh) | 集成电路总线系统及其数据操作和传输方法 | |
US20170220255A1 (en) | Write request processing method, processor, and computer | |
CN110912836A (zh) | 使转发设备转发数据的方法、控制设备、存储介质和系统 | |
US20230041617A1 (en) | Enabling a Multi-Chip Daisy Chain Topology using Peripheral Component Interconnect Express (PCIe) | |
CN115098413B (zh) | 一种存储控制器、方法、装置及存储介质 | |
US7206889B2 (en) | Systems and methods for enabling communications among devices in a multi-cache line size environment and disabling communications among devices of incompatible cache line sizes | |
CN110870286B (zh) | 容错处理的方法、装置和服务器 | |
CN108959134B (zh) | 用于现场可编程门阵列设备的通信 | |
CN104598404A (zh) | 计算设备扩展方法和装置、以及可扩展的计算系统 | |
WO2014169010A1 (en) | Tunneling transaction packets | |
US6523077B1 (en) | Data processing apparatus and data processing method accessing a plurality of memories in parallel | |
CN115373919A (zh) | 一种soc调试方法、系统、电子设备及存储介质 | |
WO2019019793A1 (zh) | 传输数据的方法和设备 | |
CN108959144B (zh) | 现场可编程门阵列之间的通信 | |
CN106325377A (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 |
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 |