CN103634277B - 一种共享内存的方法、服务器及系统 - Google Patents
一种共享内存的方法、服务器及系统 Download PDFInfo
- Publication number
- CN103634277B CN103634277B CN201210302513.9A CN201210302513A CN103634277B CN 103634277 B CN103634277 B CN 103634277B CN 201210302513 A CN201210302513 A CN 201210302513A CN 103634277 B CN103634277 B CN 103634277B
- Authority
- CN
- China
- Prior art keywords
- server
- shared
- data
- transmission path
- information
- 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
Landscapes
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
本发明实施例公开了一种共享内存的方法、服务器及系统,涉及通信领域,应用于包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,通过NT端口和预设编址信息实现多个服务器间相互共享内存,而且不需要额外的中间设备即可实现共享内存,降低了成本。本发明实施例采用的方法为:访问服务器获取待共享数据的地址信息,其中,待共享数据的地址信息包括待共享数据所在的服务器的本地内存地址;根据该待共享数据的地址信息及预设的编址信息获取与被访问服务器之间的信息传输路径;经信息传输路径向访问服务器发送访问请求;接收被访问服务器根据访问请求,经信息传输路径发送的待共享数据。
Description
技术领域
本发明涉及通信领域,尤其涉及一种共享内存的方法、服务器及系统。
背景技术
在分布式存储或分布式计算系统中,通常需要在多个系统间共享内存,以实现多个系统间资源的相互利用。
现有技术中共享内存的方法的特点为:1、在一台服务器上的不同系统或者两台服务器之间实现内存共享;2、被共享的数据首先存储在中间件中才可以被访问;3、不同系统需要经过一系列协议编码才可以共享内存;4、通过以太网传输数据。
在实现上述共享内存的过程中,发明人发现现有技术中至少存在如下问题:1、无法处理大规模集群的应用模式;2、使用中间件增加了额外的成本,且数据传输时需要经过中间件,降低了数据传送效率;3、使用协议编码增加了协议的开销;4、通过以太网传输数据的带宽小,且共通信协议需要消耗部分带宽,导致整体数据交换性能低。
发明内容
本发明的实施例提供一种共享内存的方法、服务器及系统,应用于包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,通过NT端口和预设编址信息实现多个服务器间相互共享内存,而且不需要额外的中间设备即可实现共享内存,降低了成本。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明实施例提供一种共享内存的方法,应用于包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,所述服务器组中的各服务器通过NT(Non-Transparency)端口依次连接,包括:
访问服务器获取待共享数据的地址信息,所述待共享数据的地址信息包括所述待共享数据所在的服务器的本地内存地址;
所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径;
所述访问服务器经所述信息传输路径向所述被访问服务器发送访问请求;
所述访问服务器接收所述被访问服务器根据所述访问请求,经所述信息传输路径发送的所述待共享数据。
优选的,所述预设编址信息,包括:每一个所述服务器的本地内存地址,且所述每一个服务器的本地内存地址按照所述服务器的连接顺序依次由小到大或者由大到小排序,相应的,
所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径,包括:
根据所述预设的编址信息中的所述服务器的本地内存地址的排序,确定所述被访问服务器和所述访问服务器之间的依次相连的服务器作为所述信息传输路径。
优选的,每个所述服务器内保存与其相邻的服务器的本地内存地址,相应的,
所述被访问服务器根据所述访问请求,经所述信息传输路径向所述访问服务器发送所述待共享数据,包括:
根据所述信息传输路径上每个服务器上保存的与各自相邻的服务器的本地内存地址,依次经过所述信息传输路径上每个服务器将所述待共享数据发送给所述访问服务器。
优选的,所述服务器组包含至少三个服务器,且通过PCIE交换装置的NT端口依次连接成环形,相应的,
所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径,包括:
所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间最短的信息传输路径。
优选的,所述服务器组还包括中间服务器,所述方法还包括:
当所述信息传输路径上的任意一个服务器故障时,与所述故障的服务器相邻的两个服务器分别将与所述故障的服务器连接的NT端口切换至所述中间服务器,构成新的信息传输路径。
另一方面,本发明实施例提供一种服务器,应用于通过NT端口依次连接的服务器组,当所述服务器作为访问服务器时,包括:
第一获取单元,用于获取待共享数据的地址信息,所述待共享数据的地址信息包括所述待共享数据所在的服务器的本地内存地址;
第二获取单元,用于根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径;
发送单元,用于经所述信息传输路径向所述被访问服务器发送访问请求;
接收单元,用于接收所述被访问服务器根据所述访问请求,经所述信息传输路径发送的所述待共享数据。
优选的,所述预设编址信息,包括:每一个所述服务器的本地内存地址,且所述每一个服务器的本地内存地址按照所述服务器的连接顺序依次由小到大或者由大到小排序,相应的,
所述第二获取单元还用于:根据所述预设的编址信息中的所述服务器的本地内存地址的排序,确定所述被访问服务器和所述访问服务器之间的依次相连的服务器作为所述信息传输路径。
优选的,当所述服务器组包含至少三个服务器,且通过NT端口依次连接成环形时,
所述第二获取单元还用于:所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间最短的信息传输路径。
优选的,所述服务器组还包括中间服务器,所述服务器还包括:
切换单元,用于在所述信息传输路径上,与所述服务器直接连接的服务器故障时,将与所述故障的服务器连接的NT端口切换至所述中间服务器,构成新的信息传输路径。
另一方面,本发明实施例提供一种共享内存的方法,应用于通过NT端口依次连接的服务器组,当所述服务器作为被访问服务器时,包括:
发送单元,用于根据所述信息传输路径上每个服务器上保存的与各自相邻的服务器的本地内存地址,依次经过所述信息传输路径上每个服务器将所述待共享数据发送给访问服务器;
所述访问服务器用于获取待共享数据的地址信息,根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径,经所述信息传输路径向所述被访问服务器发送访问请求;所述待共享数据的地址信息包括所述待共享数据所在的服务器的本地内存地址。
另一方面,本发明实施例提供一种共享内存的系统,所述系统包括:包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,所述服务器组中的各服务器通过NT端口依次连接,其中,
所述访问服务器,用于获取待共享数据的地址信息,根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径,经所述信息传输路径向所述被访问服务器发送访问请求,其中,所述待共享数据的地址信息包括所述待共享数据所在的服务器的本地内存地址;
所述被访问服务器,用于根据所述访问服务器发送的访问请求,经所述信息传输路径向所述访问服务器发送所述待共享数据。
优选的,所述预设编址信息,包括:每一个所述服务器的本地内存地址,且所述每一个服务器的本地内存地址按照所述服务器的连接顺序依次由小到大或者由大到小排序,相应的,
所述访问服务器,还用于:根据所述预设的编址信息中的所述服务器的本地内存地址的排序,确定所述被访问服务器和所述访问服务器之间的依次相连的服务器作为所述信息传输路径。
优选的,每个所述服务器内保存与其相邻的服务器的本地内存地址,相应的,
所述被访问服务器,还用于:根据所述信息传输路径上每个服务器上保存的与各自相邻的服务器的本地内存地址,依次经过所述信息传输路径上每个服务器将所述待共享数据发送给所述访问服务器。
优选的,所述服务器组包含至少三个服务器,且通过NT端口依次连接成环形,相应的,
所述访问服务器,还用于:根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间最短的信息传输路径。
优选的,所述系统还包括,中间服务器,用于当所述信息传输路径上的任意一个服务器故障时,与所述故障的服务器相邻的两个服务器分别连接,构成新的信息传输路径。
本发明实施例提供的共享内存的方法、服务器及系统,应用于包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,该服务器组中的每个服务器通过NT端口连接。通过NT端口和预设编址信息实现多个服务器间相互共享内存,而且不需要额外的中间设备即可实现共享内存,降低了成本,提高了数据传输效率,解决了现有技术只能实现在两个服务器之间的内存共享,无法处理大规模集群的应用模式,而且共享成本高的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种共享内存的方法流程图;
图2为本发明实施例提供的一种服务器组;
图3为本发明实施例提供的一种服务器的结构图;
图4为本发明实施例提供的一种统一编址的示意图;
图5为本发明实施例提供的另一种服务器组;
图6为本发明实施例提供的另一种服务器组;
图7为本发明实施例提供的另一种服务器组;
图8为本发明实施例提供的一种服务器的装置结构图;
图9为本发明实施例提供的另一种服务器的装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例提供了一种共享内存的方法,应用于包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,所述服务器组中的各服务器通过NT(Non-Transparency)端口依次连接,所述方法包括:
S101:访问服务器获取待共享数据的地址信息,所述待共享数据的地址信息包括所述待共享数据所在的服务器的本地内存地址;
示例性的,服务器组的每个服务器都有自己的本地内存地址,每个服务器的本地内存地址包含该内存服务器的存储单元地址,且在整个服务器组,每个服务器的存储单元地址是唯一的。
在当前时刻,访问服务器启动某个程序,访问服务器可以获取该程序发送的运行该程序需要的待读取数据的地址信息,待读取数据的地址信息可以用基址和偏移量的方式表示,其中基址表示待读取数据的首个存储单元的地址,偏移量表示待读取数据的长度。
S102:所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径;
优选的,所述预设编址信息,可以包括:每一个所述服务器的本地内存地址,且所述每一个服务器的本地内存地址按照所述服务器的连接顺序依次由小到大或者由大到小排序。
示例性的,预设编址信息对每个服务器的本地内存地址进行统一排序,并且按服务器的连接顺序进行排列,其中,可以按照由小到大或者由大到小的顺序进行排列,本实施例采用由小到大的顺序进行排列。
参见图2,假设共有8个内存均为8G的服务器,分别表示为:服务器0、服务器1、服务器2、服务器3、服务器4、服务器5、服务器6、服务器7,每个服务器中均设置有总线接口标准(Peripheral Component Interconnect Express,简称PCIE)交换装置,参见图3,每个服务器中的PCIE交换装置均设置有两个NT(Non-Transparency)端口。该8个服务器分别通过NT端口连接。对上述8个服务器进行统一编址时,可以将服务器0的本地内存地址中的存储单元地址按顺序分别标识为0,1,2,...,8G-1,将服务器1的本地内存地址中的存储单元地址按顺序分别标识为8G,8G+1,8G+2,...,16G-1,将服务器2的本地内存地址中的存储单元地址按顺序分别标识为16G,16G+1,16G+2,...,24G-1,依次类推,将服务器7的本地内存地址中的存储单元地址按顺序分别标识为56G,56G+1,56G+2,...,64G-1,那么,得到的预设编址信息即为:0,1,2,...,64G-1。
示例性的,所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径,可以包括:
根据所述预设的编址信息中的所述服务器的本地内存地址的排序,确定所述被访问服务器和所述访问服务器之间的依次相连的服务器作为所述信息传输路径。
例如,参见图2,假设服务器1为访问服务器,服务器4为被访问服务器,获取信息传输路径的具体过程可以为:
首先将待共享数据的地址信息中的基址与预设编址信息进行匹配,获取被访问服务器的本地内存地址,例如,获取的被访问服务器的本地内存地址为:32G,32G+1,32G+2,...,40G-1;
在预设编址信息中,获取以访问服务器器的本地内存地址和被访问服务器的本地内存地址作为两个端点的地址线段;例如,获取的地址线段为:8G,8G+1,8G+2,......,40G-1。
将所述地址线段对应的服务器作为信息传输路径,例如,根据上述地址线段获取的信息传输路径为:服务器4-服务器3-服务器2-服务器1(应用于被访问服务器至访问服务器的信息传递),或者服务器1-服务器2-服务器3-服务器4(应用于访问服务器至被访问服务器的信息传递)。
S103:所述访问服务器经所述信息传输路径向所述被访问服务器发送访问请求;
例如:参见图2,确定的信息传输路径为:服务器4-服务器3-服务器2-服务器1(应用于被访问服务器至访问服务器的信息传递),或者服务器1-服务器2-服务器3-服务器4(应用于访问服务器至被访问服务器的信息传递),那么,服务器1会将访问信息发送给服务器2,服务器2再将访问信息发送给服务器3,服务器3再将访问信息发送给服务器4,以使得服务器4将待共享数据沿着信息传输路径传递给服务器1。
S104:所述访问服务器接收所述被访问服务器根据所述访问请求,经所述信息传输路径发送的所述待共享数据。
示例性的,每个服务器内保存与其相邻的服务器的本地内存地址。
例如,参见图4,假设服务器0、服务器1、服务器2至服务器7的物理内存均为8G,并且按照上述预设编址的方法对其本地内存地址进行统一编址。那么,服务器1中存储与其相邻的服务器0的本地内存地址0-(8G-1)以及与其相邻的服务器2的本地内存地址16G-(24G-1),作为服务器1的虚拟内存,其中,服务器1的虚拟内存可以通过修改PCIE交换设备的基址来确定,且虚拟内存地址范围并不需要向操作系统申请。
示例性的,所述被访问服务器根据所述访问请求,经所述信息传输路径向所述访问服务器发送所述待共享数据,可以包括:
根据所述信息传输路径上每个服务器上保存的与各自相邻的服务器的本地内存地址,所述被访问服务器依次经过所述信息传输路径上每个服务器将所述待共享数据发送给所述访问服务器。
参见图4,待共享数据的传输路径为:服务器4-服务器3-服务器2-服务器1,服务器4(被访问服务器)将待共享数据发送给服务器1(访问服务器)的过程为:服务器4根据其中存储的服务器3的本地内存地址,将待共享数据发送至服务器3的本地内存,然后服务器3根据其中存储的服务器2的本地内存地址,将待共享数据发送至服务器2的本地内存,服务器2根据其中存储的服务器1的本地内存地址,将待共享数据发送至服务器1的本地内存,从而实现内存共享。
优选的,在步骤S 102中,当服务器组包含至少三个服务器,且通过NT端口依次连接成环形时,所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径,可以包括:
所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间最短的信息传输路径。
因为服务器组成的是环形,所述访问服务器和被访问服务器之间的信息传输通道的路径始终有两条。
参见图5,服务器0、服务器1、服务器2、服务器3、服务器4、服务器5、服务器6、服务器7NT端口连接成环形。假设服务器1为访问服务器,服务器3为被访问服务器,那么,可以为待共享数据提供传输通道的路径分别为:服务器3-服务器2-服务器1,服务器3-服务器4-服务器5-服务器6-服务器7-服务器0-服务器1。访问服务器将选择最短路径作为待共享数据的信息传输路径,即服务器3-服务器2-服务器1。
示例性的,若为待共享数据提供传输通道的两条路径的长度相等,则随机选择一条路径作为信息传输路径。
参见图5,假设服务器4为访问服务器,服务器0为被访问服务器,那么,可以为待共享数据提供传输通道的路径分别为:服务器0-服务器1-服务器2-服务器3-服务器4,服务器0-服务器7-服务器6-服务器5-服务器4。可知,这两条路径相等,那么访问服务器将随机选择其中的一条作为待共享数据的信息传输路径。
优选的,所述服务器组还包括中间服务器,所述方法还包括:
当所述信息传输路径上的任意一个服务器故障时,与所述故障的服务器相邻的两个服务器分别将与所述故障的服务器连接的NT端口切换至所述中间服务器,构成新的信息传输路径。
示例性的,所述中间服务器的结构与其他各服务器均相同。一般情况下,中间服务器中的两个NT端口不与其他任何一个服务器连接。当信息传输路径上的任意一个服务器故障时,与该故障的服务器相邻的两个服务器分别将与该故障的服务器连接的NT端口切换至所述中间服务器,构成新的信息传输路径。其中,每一个服务器在每个间隙内都会接收到与其相邻的两个服务器的心跳信息,当接收不到与其相邻的服务器的心跳信息时,表明发送该心跳信息的服务器出现故障。
例如,参见图6,服务器0、服务器1、服务器2、服务器3、服务器4、服务器5、服务器6、服务器7NT端口连接成环形,且设置有中间服务器mid。参见图7,假设服务器1为访问服务器,服务器4为被访问服务器,服务器2出现故障,那么,当服务器1未接收到服务器2的发送的心跳信息时,则将与服务器2连接的NT端口切换到中间服务器mid上,同理,当服务器3未接收到服务器2发送的心跳信息,则将与服务器2连接的NT端口切换到中间服务器mid上,以构成新的传输通道,即服务器4-服务器3-服务器mid-服务器1。
本发明实施例通过PCIE通道不仅可以实现多个服务器之间的内存共享,还可以提高数据传输速率。目前,PCIE3.0的信号强度可以达到8GT/s,带宽可以达到1GB/s,宽度为×8,则带宽可达到8GB/s,即64Gb/s。NT端口的宽度根据应用环境压力的需要,可动态的配置为×16,则带宽可达到128Gb/s。也就是说,目前为止,PCIE网络的数据交换带宽可以达到128Gb/s,随着PCIE应用技术的不断提高PCIE网络数据交换的带宽可以到达更高。
目前主流的数据交换网络为:光以太网(Optical Ethernet,简称10GE)以及千兆以太网络(Gigabit Ethernet,简称GE)。表1为不同数据共享网络中数据传输带宽的比较,表2为不同数据交换网络的成本比较:
表1
数据交换网络 | PCIE | 10GE | GE |
带宽 | 128Gb/s | 10Gb/s | 1Gb/s |
由表1可知,PCIE网络与10GE网络的数据交换速率比为128∶10,提高了12.8倍;PCIE网络与GE网络的数据交换速率比为128∶1,提高了128倍。总之,就数据传输的带宽而言,PCIE网络与10GE网络以及GE网络相比,均有很大的优势。
表2
组件 | PCIE | 10GE | GE |
芯片 | $40 | $1300 | $10 |
电线 | $10 | $15 | $4 |
局域网 | $0 | $30(每个端口) | $20 |
总计 | $50 | $2185 | $34 |
由表2可知,就成本而言,PCIE网络只比GE网络成本稍高,而与10GE网络相比,PCIE网络在成本上有很大的优势。
本发明实施例提供的一种共享内存的方法,应用于包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,该服务器组中的每个服务器通过NT端口连接。通过NT端口和预设编址信息实现多个服务器间相互共享内存,而且不需要额外的中间设备即可实现共享内存,降低了成本,提高了数据传输效率,解决了现有技术只能实现在两个服务器之间的内存共享,无法处理大规模集群的应用模式,而且共享成本高的问题。
参见图8,本发明实施例提供了一种服务器80,应用于通过NT端口依次连接的服务器组,该服务器组中的所有服务器60的结构和功能均相同,本发明实施例涉及的访问服务器和被访问服务器是相对而言的,待共享数据实际存储的服务器为被访问服务器,共享该待共享数据的服务器为访问服务器,每个服务器60均可以作为访问服务器和被访问服务器。在本实施例中,当所述服务器60作为访问服务器时,用“访问服务器”代替该服务器,当所述服务器60作为被访问服务器时,用“被访问服务器”代替该服务器。下面分别以一次数据共享过程为例进行详细说明。
一、当所述服务器作为访问服务器时,可以包括:
第一获取单元801,用于获取待共享数据的地址信息,所述待共享数据的地址信息包括所述待共享数据所在的服务器的本地内存地址;
示例性的,服务器组的每个服务器都有自己的本地内存地址,每个服务器的本地内存地址包含该内存服务器的存储单元地址,且在整个服务器组,每个服务器的存储单元地址是唯一的。
在当前时刻,访问服务器启动某个程序,第一获取单元801可以获取该程序发送的运行该程序需要的待读取数据的地址信息,待读取数据的地址信息可以用基址和偏移量的方式表示,其中基址表示待读取数据的首个存储单元的地址,偏移量表示待读取数据的长度。
第二获取单元802,用于根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径;
优选的,所述预设编址信息,可以包括:每一个所述服务器的本地内存地址,且所述每一个服务器的本地内存地址按照所述服务器的连接顺序依次由小到大或者由大到小排序。
示例性的,预设编址信息对每个服务器的本地内存地址进行统一排序,并且按服务器的连接顺序进行排列,其中,可以按照由小到大或者由大到小的顺序进行排列,本实施例采用由小到大的顺序进行排列。
参见图2,假设共有8个内存均为8G的服务器,分别表示为:服务器0、服务器1、服务器2、服务器3、服务器4、服务器5、服务器6、服务器7,每个服务器中均设置有总线接口标准(Peripheral Component Interconnect Express,简称PCIE)交换装置,每个服务器中的PCIE交换装置均设置有两个NT端口,该8个服务器分别通过NT端口连接。对上述8个服务器进行统一编址时,可以将服务器0的本地内存地址中的存储单元地址按顺序分别标识为0,1,2,...,8G-1,将服务器1的本地内存地址中的存储单元地址按顺序分别标识为8G,8G+1,8G+2,...,16G-1,将服务器2的本地内存地址中的存储单元地址按顺序分别标识为16G,16G+1,16G+2,...,24G-1,依次类推,将服务器7的本地内存地址中的存储单元地址按顺序分别标识为56G,56G+1,56G+2,...,64G-1,那么,得到的预设编址信息即为:0,1,2,...,64G-1。
示例性的,所述第二获取单元802还用于:根据所述预设的编址信息中的所述服务器的本地内存地址的排序,确定所述被访问服务器和所述访问服务器之间的依次相连的服务器作为所述信息传输路径。
例如,参见图2,假设服务器1为访问服务器,服务器4为被访问服务器,获取信息传输路径的具体过程可以为:
首先将待共享数据的地址信息中基址与预设编址信息进行匹配,获取被访问服务器的本地内存地址,例如获取的被访问服务器的本地内存地址为;32G,32G+1,32G+2,...,40G-1;
在预设编址信息中,获取以访问服务器的本地内存地址和被访问服务器的本地内存地址作为两个端点的地址线段;例如,在上述编制信息中,获取的地址线段为8G,8G+1,8G+2,......,40G-1。
将所述地址线段对应的服务器作为信息传输路径,例如,根据上述地址线段获取的信息传输路径为:服务器4-服务器3-服务器2-服务器1(应用于被访问服务器至访问服务器的信息传递),或者服务器1-服务器2-服务器3-服务器4(应用于访问服务器至被访问服务器的信息传递)。
第一发送单元803,用于经所述信息传输路径向所述被访问服务器发送访问请求;
例如:参见图2,确定的信息传输路径为:服务器4-服务器3-服务器2-服务器1(应用于被访问服务器至访问服务器的信息传递),或者服务器1-服务器2-服务器3-服务器4(应用于访问服务器至被访问服务器的信息传递),那么,服务器1会将访问信息发送给服务器2,服务器2再将访问信息发送给服务器3,服务器3再将访问信息发送给服务器4,以使得服务器4将待共享数据沿着信息传输路径传递给服务器1。
示例性的,每个所述服务器内保存与其相邻的服务器的本地内存地址。
例如,参见图4,假设服务器0、服务器1、服务器2至服务器7的物理内存均为8G,并且按照上述预设编址的方法对其本地内存地址进行统一编址。那么,服务器1中存储与其相邻的服务器0的本地内存地址0-(8G-1)以及与其相邻的服务器2的本地内存地址16G-(24G-1),作为服务器1的虚拟内存,其中,服务器1的虚拟内存可以通过修改PCIE交换设备的基址来确定,且虚拟内存地址范围并不需要向操作系统申请。
接收单元804,用于接收所述被访问服务器根据所述访问请求,经所述信息传输路径发送的所述待共享数据。
参见图2,待共享数据的传输路径为:服务器4-服务器3-服务器2-服务器1,经此路径传输后,待共享数据到达服务器1(访问服务器)的本地内存,从而实现内存共享。
二、当所述服务器作为被访问服务器时,参见图7所述服务器还包括,
第二发送单元805,用于根据所述信息传输路径上每个服务器上保存的与各自相邻的服务器的本地内存地址,依次经过所述信息传输路径上每个服务器将所述待共享数据发送给所述访问服务器。
参见图2,待共享数据的传输路径为:服务器4-服务器3-服务器2-服务器1,服务器4(被访问服务器)将待共享数据发送给服务器1(访问服务器)的过程为:服务器4的第二发送单元805根据其中存储的服务器3的本地内存地址,将待共享数据发送至服务器3的本地内存,然后服务器3的第二发送单元805根据其中存储的服务器2的本地内存地址,将待共享数据发送至服务器2的本地内存,服务器2的第二发送单元805根据其中存储的服务器1的本地内存地址,将待共享数据发送至服务器1的本地内存,从而实现内存共享。
优选的,参见图5,当所述服务器组至少三个服务器,且通过NT端口依次连接成环形时,所述第二获取单元802还用于:根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间最短的信息传输路径。
因为服务器组成的是环形,所述访问服务器和被访问服务器之间的信息传输通道的路径始终有两条。
参见图5,服务器0、服务器1、服务器2、服务器3、服务器4、服务器5、服务器6、服务器7NT端口连接成环形。假设服务器1为访问服务器,服务器3为被访问服务器,那么,可以为待共享数据提供传输通道的路径分别为:服务器3-服务器2-服务器1,服务器3-服务器4-服务器5-服务器6-服务器7-服务器0-服务器1。访问服务器将选择最短路径作为待共享数据的信息传输路径,即服务器3-服务器2-服务器1。
示例性的,若为待共享数据提供传输通道的两条路径的长度相等,则随机选择一条路径作为信息传输路径。
参见图5,假设服务器4为访问服务器,服务器0为被访问服务器,那么,可以为待共享数据提供传输通道的路径分别为:服务器0-服务器1-服务器2-服务器3-服务器4,服务器0-服务器7-服务器6-服务器5-服务器4。可知,这两条路径相等,那么访问服务器将随机选择其中的一条作为待共享数据的信息传输路径。
优选的,所述服务器组还包括中间服务器,参见图9,所述服务器还包括:
切换单元806,用于在所述信息传输路径上,与所述服务器直接连接的服务器故障时,将与所述故障的服务器连接的NT端口切换至所述中间服务器,构成新的信息传输路径。
示例性的,所述中间服务器的结构与其他各服务器均相同。一般情况下,该中间服务器中的两个NT端口不与其他任何一个服务器连接。当信息传输路径上的任意一个服务器故障时,与该故障的服务器相邻的两个服务器的切换单元806分别将与该故障的服务器连接的NT端口切换至所述中间服务器,构成新的信息传输路径。其中,每一个服务器在每个间隙内都会接收到与其相邻的两个服务器的心跳信息,当接收不到与其相邻的服务器的心跳信息时,表明发送该心跳信息的服务器出现故障,
例如,参见图6,服务器0、服务器1、服务器2、服务器3、服务器4、服务器5、服务器6、服务器7NT端口连接成环形,且设置有中间服务器mid。参见图7,假设服务器1为访问服务器,服务器4为被访问服务器,服务器2出现故障,那么,当服务器1未接收到服务器2的发送的心跳信息时,则将与服务器2连接的NT端口切换到中间服务器mid上,同理,当服务器3未接收到服务器2发送的心跳信息,则将与服务器2连接的NT端口切换到中间服务器mid上,以构成新的传输通道,即服务器4-服务器3-服务器mid-服务器1。
本发明实施例提供的一种服务80,应用于通过NT端口依次连接的服务器组,通过NT端口和预设编址信息实现多个服务器间相互共享内存,而且不需要额外的中间设备即可实现共享内存,降低了成本,提高了数据传输效率,解决了现有技术只能实现在两个服务器之间的内存共享,无法处理大规模集群的应用模式,而且共享成本高的问题。
另一方面,本发明实施例提供一种共享内存的系统,该系统包括:包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,该服务器组中的各服务器通过NT端口依次连接,其中,
访问服务器,用于获取待共享数据的地址信息,根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径,经所述信息传输路径向所述被访问服务器发送访问请求,其中,所述待共享数据的地址信息包括所述待共享数据所在的服务器的本地内存地址;被访问服务器,用于根据访问服务器发送的访问请求,经所述信息传输路径向访问服务器发送所述待共享数据。
优选的,所述预设编址信息,包括:每一个所述服务器的本地内存地址,且所述每一个服务器的本地内存地址按照所述服务器的连接顺序依次由小到大或者由大到小排序,相应的,访问服务器,还用于:根据所述预设的编址信息中的所述服务器的本地内存地址的排序,确定被访问服务器和访问服务器之间的依次相连的服务器作为所述信息传输路径。
优选的,每个所述服务器内保存与其相邻的服务器的本地内存地址,相应的,被访问服务器,还用于:根据所述信息传输路径上每个服务器上保存的与各自相邻的服务器的本地内存地址,依次经过所述信息传输路径上每个服务器将所述待共享数据发送给所述访问服务器。
优选的,所述服务器组包含至少三个服务器,且通过NT端口依次连接成环形,相应的,访问服务器,还用于:根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间最短的信息传输路径。
优选的,所述系统还包括,中间服务器,用于当所述信息传输路径上的任意一个服务器故障时,与所述故障的服务器相邻的两个服务器分别连接,构成新的信息传输路径。
本发明实施例提供的一种共享内存的系统,该系统包括:包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,所述服务器组通过NT端口依次连接。通过NT端口和预设编址信息实现多个服务器间相互共享内存,而且不需要额外的中间设备即可实现共享内存,降低了成本,提高了数据传输效率,解决了现有技术只能实现在两个服务器之间的内存共享,无法处理大规模集群的应用模式,而且共享成本高的问题。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种共享内存的方法,其特征在于,应用于包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,所述服务器组中的各服务器通过Non-TransparencyNT端口依次连接,所述方法包括:
访问服务器获取待共享数据的地址信息,所述待共享数据的地址信息包括所述待共享数据所在的被访问服务器的本地内存地址;
所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的依次相连的服务器作为信息传输路径,所述预设编址信息,包括:每一个所述服务器的本地内存地址,且所述每一个服务器的本地内存地址按照所述服务器的连接顺序依次由小到大或者由大到小排序;
所述访问服务器经所述信息传输路径向所述被访问服务器发送访问请求;
所述访问服务器接收所述被访问服务器根据所述访问请求,经所述信息传输路径发送的所述待共享数据。
2.根据权利要求1所述的共享内存的方法,其特征在于,所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径,包括:
根据所述预设的编址信息中的所述服务器的本地内存地址的排序,确定所述被访问服务器和所述访问服务器之间的依次相连的服务器作为所述信息传输路径。
3.根据权利要求1或2所述的共享内存的方法,其特征在于,每个所述服务器内保存与其相邻的服务器的本地内存地址,相应的,
所述被访问服务器根据所述访问请求,经所述信息传输路径向所述访问服务器发送所述待共享数据,包括:
根据所述信息传输路径上每个服务器上保存的与各自相邻的服务器的本地内存地址,所述被访问服务器依次经过所述信息传输路径上每个服务器将所述待共享数据发送给所述访问服务器。
4.根据权利要求1所述的共享内存的方法,所述服务器组包含至少三个服务器,且通过NT端口依次连接成环形,相应的,
所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的信息传输路径,包括:
所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间最短的信息传输路径。
5.根据权利要求4所述的共享内存的方法,其特征在于,所述服务器组还包括中间服务器,所述方法还包括:
当所述信息传输路径上的任意一个服务器故障时,与所述故障的服务器相邻的两个服务器分别将与所述故障的服务器连接的NT端口切换至所述中间服务器,构成新的信息传输路径。
6.一种服务器,其特征在于,应用于通过NT端口依次连接的服务器组,当所述服务器作为访问服务器时,包括:
第一获取单元,用于获取待共享数据的地址信息,所述待共享数据的地址信息包括所述待共享数据所在的被访问服务器的本地内存地址;
第二获取单元,用于根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的依次相连的服务器作为信息传输路径,所述预设编址信息,包括:每一个所述服务器的本地内存地址,且所述每一个服务器的本地内存地址按照所述服务器的连接顺序依次由小到大或者由大到小排序;
发送单元,用于经所述信息传输路径向所述被访问服务器发送访问请求;
接收单元,用于接收所述被访问服务器根据所述访问请求,经所述信息传输路径发送的所述待共享数据。
7.根据权利要求6所述的服务器,其特征在于,所述第二获取单元还用于:根据所述预设的编址信息中的所述服务器的本地内存地址的排序,确定所述被访问服务器和所述访问服务器之间的依次相连的服务器作为所述信息传输路径。
8.根据权利要求6-7任一项所述的服务器,其特征在于,当所述服务器组包含至少三个服务器,且通过NT端口依次连接成环形时,
所述第二获取单元还用于:所述访问服务器根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间最短的信息传输路径。
9.根据权利要求8所述的服务器,其特征在于,所述服务器组还包括中间服务器,所述服务器还包括:
切换单元,用于在所述信息传输路径上,与所述服务器直接连接的服务器故障时,将与所述故障的服务器连接的NT端口切换至所述中间服务器,构成新的信息传输路径。
10.一种服务器,其特征在于,应用于通过NT端口依次连接的服务器组,当所述服务器作为被访问服务器时,包括:
发送单元,用于根据信息传输路径上每个服务器上保存的与各自相邻的服务器的本地内存地址,依次经过所述信息传输路径上每个服务器将待共享数据发送给访问服务器;
所述访问服务器用于获取待共享数据的地址信息,根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的依次相连的服务器作为信息传输路径,经所述信息传输路径向所述被访问服务器发送访问请求;所述待共享数据的地址信息包括所述待共享数据所在的被访问服务器的本地内存地址,所述预设编址信息,包括:每一个所述服务器的本地内存地址,且所述每一个服务器的本地内存地址按照所述服务器的连接顺序依次由小到大或者由大到小排序。
11.一种共享内存的系统,其特征在于,所述系统包括:包括访问服务器和被访问服务器的至少两个服务器构成的服务器组,所述服务器组中的各服务器通过NT端口依次连接,其中,
所述访问服务器,用于获取待共享数据的地址信息,根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间的依次相连的服务器作为信息传输路径,经所述信息传输路径向所述被访问服务器发送访问请求,其中,所述待共享数据的地址信息包括所述待共享数据所在的被访问服务器的本地内存地址,所述预设编址信息,包括:每一个所述服务器的本地内存地址,且所述每一个服务器的本地内存地址按照所述服务器的连接顺序依次由小到大或者由大到小排序;
所述被访问服务器,用于根据所述访问服务器发送的访问请求,经所述信息传输路径向所述访问服务器发送所述待共享数据。
12.根据权利要求11所述的共享内存的系统,其特征在于,所述访问服务器,还用于:根据所述预设的编址信息中的所述服务器的本地内存地址的排序,确定所述被访问服务器和所述访问服务器之间的依次相连的服务器作为所述信息传输路径。
13.根据权利要求11或12所述的共享内存的系统,其特征在于,每个所述服务器内保存与其相邻的服务器的本地内存地址,相应的,
所述被访问服务器,还用于:根据所述信息传输路径上每个服务器上保存的与各自相邻的服务器的本地内存地址,依次经过所述信息传输路径上每个服务器将所述待共享数据发送给所述访问服务器。
14.根据权利要求11所述的共享内存的系统,所述服务器组包含至少三个服务器,且通过NT端口依次连接成环形,相应的,
所述访问服务器,还用于:根据所述待共享数据的地址信息及预设的编址信息获取与所述被访问服务器之间最短的信息传输路径。
15.根据权利要求14所述的共享内存的系统,其特征在于,所述系统还包括,中间服务器,用于当所述信息传输路径上的任意一个服务器故障时,与所述故障的服务器相邻的两个服务器分别连接,构成新的信息传输路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210302513.9A CN103634277B (zh) | 2012-08-23 | 2012-08-23 | 一种共享内存的方法、服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210302513.9A CN103634277B (zh) | 2012-08-23 | 2012-08-23 | 一种共享内存的方法、服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103634277A CN103634277A (zh) | 2014-03-12 |
CN103634277B true CN103634277B (zh) | 2019-02-05 |
Family
ID=50214909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210302513.9A Active CN103634277B (zh) | 2012-08-23 | 2012-08-23 | 一种共享内存的方法、服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103634277B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301434B (zh) * | 2014-10-31 | 2018-06-15 | 浪潮(北京)电子信息产业有限公司 | 一种基于集群的高速通信架构及方法 |
CN105338331B (zh) * | 2015-12-16 | 2018-08-24 | 武汉微创光电股份有限公司 | 一种非压缩视频监控系统及故障恢复方法 |
CN107851058B (zh) * | 2016-05-27 | 2021-02-12 | 华为技术有限公司 | 存储系统及设备扫描方法 |
CN107451070B (zh) * | 2016-06-01 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法和服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1832489A (zh) * | 2006-04-19 | 2006-09-13 | 杭州华为三康技术有限公司 | 一种对目的磁盘进行访问的方法和扩展磁盘容量的系统 |
CN1928839A (zh) * | 2005-09-09 | 2007-03-14 | 中国科学院计算技术研究所 | 一种远程内存服务器及其实现方法 |
CN101710314A (zh) * | 2009-11-17 | 2010-05-19 | 中兴通讯股份有限公司 | 高速外围部件互连交换控制器及其实现方法 |
CN101477512B (zh) * | 2009-01-16 | 2011-03-23 | 中国科学院计算技术研究所 | 一种处理器系统及其访存方法 |
-
2012
- 2012-08-23 CN CN201210302513.9A patent/CN103634277B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928839A (zh) * | 2005-09-09 | 2007-03-14 | 中国科学院计算技术研究所 | 一种远程内存服务器及其实现方法 |
CN1832489A (zh) * | 2006-04-19 | 2006-09-13 | 杭州华为三康技术有限公司 | 一种对目的磁盘进行访问的方法和扩展磁盘容量的系统 |
CN101477512B (zh) * | 2009-01-16 | 2011-03-23 | 中国科学院计算技术研究所 | 一种处理器系统及其访存方法 |
CN101710314A (zh) * | 2009-11-17 | 2010-05-19 | 中兴通讯股份有限公司 | 高速外围部件互连交换控制器及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103634277A (zh) | 2014-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106850371B (zh) | 一种总线型fc-ae-1553网络系统及数据发送和采集方法 | |
US20100290472A1 (en) | Achieving about an equal number of active links across chassis in a virtual port-channel environment | |
CN105450588B (zh) | 一种基于rdma的数据传输方法及rdma网卡 | |
CN101404621B (zh) | 实现vrrp负载均衡的方法和路由设备 | |
US8750392B2 (en) | PLC device supporting MIMO operations | |
CN102447624B (zh) | 在服务器集群上实现负载均衡的方法、节点服务器及集群 | |
US20150003464A1 (en) | LACP Negotiation Processing Method, Relay Node, and System | |
CN102209023B (zh) | 一种建立FCoE通信连接的方法、装置、名字服务器和系统 | |
CN103634277B (zh) | 一种共享内存的方法、服务器及系统 | |
WO2013033457A1 (en) | Topology discovery in a hybrid network | |
CN102577277A (zh) | 提供合并多点链路的逻辑聚合点对点数据链路 | |
CN103312605A (zh) | 一种网关设备身份设置的方法及管理网关设备 | |
CN104040969A (zh) | 链路层发现协议包的分段 | |
CN101588365A (zh) | 链路协商的控制方法和光纤通道承载以太协议整合系统 | |
CN110401558A (zh) | 安全级多点通信网络设备、系统及安全级网络通信方法 | |
CN103618667A (zh) | 信息传送方法、接入网关和系统 | |
CN106657029A (zh) | 一种基于白名单实现多网口共享ip地址的冗余通信方法 | |
CN103856358A (zh) | 一种eoc设备以太网端口vlan配置系统及方法 | |
CN106982238B (zh) | 一种分配网络路径资源的方法、策略控制中心以及主机 | |
CN109787981A (zh) | 协议转换系统、方法、装置、设备和存储介质 | |
CN104734930B (zh) | Vlan接入vf网络的实现方法及装置、fcf | |
CN102647338B (zh) | 网络通信方法和设备 | |
CN113315717B (zh) | 一种业务均衡方法、装置、电子设备及存储介质 | |
CN104955125B (zh) | 支持多种类型互联网接入的调度方法、终端、及系统 | |
CN110430117B (zh) | 一种连接云端网络与用户内网的高并发隧道系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |