由计算机系统使用至少两个通信协议进行网络通信的技术的制作方法
【专利说明】由计算机系统使用至少两个通信协议进行网络通信的技术
【背景技术】
[0001] 在现在的操作系统中,通常需要在系统的操作系统内核的网络堆栈中处理通过 TCP/IP传输到计算机系统的数据,这必然就需要系统CPU的参与。因此,在现代高速以太网 技术中的高速传输就倾向于增加 CPU上的负载,特别是对于处理大量通信的服务器,例如 存储服务器。出于这样或者其他的原因,网络通信工业和其国际互联网工程任务组(IETF) 定义了替代OSI传输层特征以用于进行远程直接存储寻址(RDM),包括InfiniBand和 iWARP。
[0002] 传统上,通信架构的各种类型具有各自专用的设备和交换机,其中通信架构的类 型例如为TCP、RDMA、光纤通道和其他。
【发明内容】
[0003] 本发明一实施例提供了一种用于网络通信的计算机程序产品。在其他实施例中, 还提供了系统和计算机实施的方法。
[0004] 在一实施例中,计算机系统包括网络适配器,所述网络适配器使得第一和第二虚 拟局域网(VLAN)设备配置在该网络适配器的第一和第二物理端口中的每个之上,所述网 络适配器还使得所述第二VLAN设备配置为逻辑结合虚拟设备。
[0005] 在另一实施例中,在计算机可读存储介质上存储的第一应用被编程以在第一 VLAN 设备上通过第一网络通信协议进行网络通信;且
[0006] 在另一实施例中,在计算机可读存储介质上存储的应用被编程以在第二VLAN设 备和逻辑结合虚拟设备上通过第二网络通信协议进行网络通信,其中至少一个所述第一 VLAN设备通过第一网络通信协议提供网络通信,且所述逻辑结合虚拟设备并行地通过第二 网络通信协议提供网络通信。
[0007] 在另一实施例中,所述第一网络通信协议包括一远程直接存储访问(RDMA)协议 并且所述第二网络通信协议包括传输控制协议(TCP)协议。
[0008] 在另一实施例中,有至少一个第一 VLAN设备通过所述第一网络通信协议以及由 所述逻辑结合虚拟设备通过所述第二网络通信协议进行网络通信包括:在第一和第二物理 端口上并行地由第一 VLAN设备进行RDMA协议通信,以及在第二物理端口上由所述逻辑结 合虚拟设备和第二物理端口的一个第二VLAN设备进行TCP协议通信。
[0009] 在另一实施例中,计算机系统包括第一指令模块,所述第一指令模块具有存储在 计算机可读介质上的、用于实现第一网络通信协议的指令;以及第二指令模块,所述第二指 令模块具有存储在计算机可读存储介质上的、用于实现第二网络通信协议的指令。第一和 第二应用被编程以通过用于第二网络通信协议的第二指令模块进行网络通信,并且第二指 令模块被编程用于为结合虚拟设备提供主动-主动(active-actvie)模式。
[0010] 在另一实施例中,由逻辑结合虚拟设备通过第二网络通信协议进行网络通信进一 步包括:在第一和第二物理端口上由逻辑结合虚拟设备通过第二网络通信协议进行网络通 信,其中所述第二VLAN设备两者均并行地通信。
[0011] 在另一实施例中,第二指令模块被编程用于为结合虚拟设备提供主动-备份 (active-backup)模式,并且由逻辑结合虚拟设备通过第二网络通信协议进行网络通信进 一步包括:由逻辑结合虚拟设备在第一和第二物理端口中的一个之上通过第二网络通信协 议进行网络通信,其中只有一个时刻只有一个第二VLAN设备进行通信,并且在第二通信设 备中的正在通信的那一个或者其关联的物理端口失败时,另一个第二VLAN设备接管该通 信。
[0012] 在另一实施例中,分别用第一和第二网络地址配置第一 VLAN设备,并且用第三网 络地址配置结合虚拟设备。
【附图说明】
[0013] 本发明的新颖特征列于所附的权利要求中。通过结合下面一个或多个图示实施例 的详细描述并结合随附的附图进行阅读可以更好的理解本发明本身以及使用的优选模式 以及目的和有益效果。
[0014] 图1示出了根据本发明的一个或多个实施例的分布式数据处理系统的示例性结 构图。
[0015] 图2示出了根据本发明的一个或多个实施例的服务器装置的示例性结构图。
[0016] 图3示出了根据本发明的一个或多个实施例的客户装置的示例性结构图。
[0017] 图4示出了根据本发明的一个或多个实施例的方法、结构和计算机程序产品的概 览的示例性结构图。
[0018] 图5示出了根据本发明的一个或多个实施例的配置方面的更具体的视图的另一 示例性结构图。
[0019] 图6示出了根据本发明的一个或多个实施例的示例性过程方面的流程图。
【具体实施方式】
[0020] 在基于机架的服务器上运行的高性能集群典型地具有用于多个适配器的多个可 用I/O扩展槽。但是,更小尺寸的更强大的服务器倾向于具有更少数量的I/O扩展槽,例如 刀片服务器或者IBM PureFlex ITE(PureFlex为国际商业机器公司的商标)。有时候用来 支持两个以上的协议的可用的扩展槽只有两个。出于这样的原因,同时也由于聚合网络的 出现,有时需要由单组的I/O设备和交换机来处理多个协议。
[0021] 现在,最常见的协议就是运行有TCP协议的以太网。RDM可以在聚合增强以太网 RDMA (ROCEE)模式上运行,并且光纤通道可以运行在以太网光纤通道上。这些架构具有他们 自己的属性和能力,这些属性和能力都可能是不同的。
[0022] 为了通过两个I/O适配器运行三个不同的协议,需要决定哪些协议要被合并。例 如,如果为第一适配器选择光纤通道,为第二适配器选择以太网,那么就可以通过第二适配 器运行以太网RDMA。但是虽然将RDM和TCP数据流合并到同一适配器是有益的,但是它也 有局限性。
[0023] 根据本发明的一个或多个实施例,图4中从高层级的角度示出了计算机系统400 的单一网络I/O适配器410。适配器410具有对于两个以太网端口的配置414,两个以太网 端口分别为P〇rt_eth0和port_ethl且与交换机sw_eth0和sw_ethl相连。也就是说,交 换机sw_ethO和sw_ethl通过配置414将网络420连接到它们的端口 port_ethO和port_ ethl,端口 port_eth0和port_ethl通过总线(未示出)提供到一个或多个例如为CPU440 的中央处理单元的路径。常见的架构为以太网,其具有聚合在单一适配器410上的TCP和 RDMA数据流。端口 ethO为分离通过网络420去往和来自远程设备(例如为远程设备450) 的TCP通信提供操作的初始普通模式,其中端口 port_ethl为分离RDM通信(也就是聚合 增强以太网RDMA(ROCEE))提供初始普通模式。在另一替代实施例中,TCP数据流总是运行 在端口 ethO和ethl两者之上。但是这可能提供不平衡的性能,因为ethO可以全速运行 TCP,而ethl有TCP和RDM数据流。
[0024] 在本发明实施例中,配置414包括一个或多个处理器、存储器以及用于使得一个 或多个处理器如此处描述的那样通过互联电路引导数据流而进行通信的指令,典型地包括 一个或多个总线。在实施例中,配置414可能包括一个或多个应用特定的集成电路以执行 部分或者全部的这些功能。
[0025] 系统400包括CPU440和存储器430,存储器430装载有操作系统436的指令,该指 令包括指令内核432。内核432包括执行的TCP模块433和结合模块435,该结合模块被配 置和操作以使得CPU440分别执行标准TCP和结合功能。存储器430也装载有应用438的 指令,该应用438例如为数据库或者其他应用。例如,应用438可以是一个适用于集群操作 的分布式企业数据库应用,例如DB2, DB2是美国商业机器公司的商标。
[0026] 在实施例中,应用438同步地使用RDMA和TCP类型的通信并且包括RDMA模块439, 其中RDM模块439包括被配置和操作以使得CPU440执行标准RDM功能的指令。在另一 个实施例中,单一应用438的分离实例或者其他不同类型的分离应用可能分别使用单一网 络通信协议。在任何情况下,配置系统以使用两个不同的网络通信协议(也就是说在图示 实例中的RDM和TCP)同步通信。
[0027] 存储器430包括与网络通信模块关联的非易失性存储器434,其中网络通信模块 包括RDM模块439和TCP模块433,该非易失性存储器434用于存储关于网络适配器410 的通信配置参数。模块439显示为包括在应用438中的一组指令,而模块433和435显示 为包括在操作系统436指令的内核432指令中的一组指令。但是,应当理解,在不同的实施 例中,这些指令可能不同地彼此关联,但是仍然提供基本相同的功能。同样地,配置414和 存储器434的位置在替代实施例中是可以变化的。
[0028] 本发明实施例对于通信协议、VLAN和结合设备以及IP地址配置等所描述的初始 化、配置和编程包括在网络适配器配置414非易失性存储器和与网络通信模块和应用关联 的存储器434中存储配置参数,其中该非易失性存储器与所述端口 /交换机关联。初始化 可以由网络管理员(本地或者远程地)初始化端口 ethO和ethl的通信来执行,其可以通 过操作系统436用户界面或者通过网络管理应用来人工的完成,例如其中ethO和ethl通 过网络420从远程应用接收信号以构建在配置414存储器中的用于端口的配置数据和在存 储器434中的用于模块433和439的配置数据。
[0029] 在理想环境中,在相同架构上通行的所有协议可以具有相似和共享的特性。但是, TCP是一个有损协议且支持以太通道结合,但是RDM需要无损通信且不支持结合。为了 解决这个问题,根据本发明实施例,如图5所示,端口 ethO和ethl被初始化以包含虚拟设 备,其中ethO被配置以创建虚拟局域网设备VLAN710(被图示为ethO. 710)和4033(被图 示为ethO. 4033),以及类似的,ethl也被配置以创建虚拟局域网设备VLAN710 (被图示为 ethl. 710)和 4033 (被图示为 ethl. 4033)。
[0030] 在图示的示例中,IP地址172. 23. 7. 101随后被初始化到VLAN设备ethl. 4033 上用于RDMA通信,这样远程设备450可以使用IP地址172. 23. 7. 101以及VLAN标签设备 ethl. 4033通