一种数据转发装置和方法

文档序号:8265608阅读:267来源:国知局
一种数据转发装置和方法
【技术领域】
[0001] 本发明涉及通信技术领域,特别涉及一种数据转发装置和方法。
【背景技术】
[0002] IOG以太网的出现,加之行业为满足存储和集群互联需求而对以太网协议进行的 关键扩展,数据中心桥接协议(DCB)得到了发展,包括流量优先级控制,带宽管理和拥塞管 理,可将使现有结构融合为基于以太网的统一整合型网络结构。这种结构将提供对其所支 持的存储和计算处理资源的无缝访问。
[0003] 在每台服务器上安装一块融合局域网(LAN) /存储网络(SAN)/进程间通信(IPC) 数据流的融合网络适配器(CNA)。与普通网络适配器一样,融合网络适配器直接焊接在服 务器主板上,或独立设计为一块插卡并通过服务器上的主板插槽,如PCI Express Slot,与 CPU/BMC紧密耦合,各服务器独立、直接管理和使用此融合网络适配器。
[0004] 由于各服务器独立配置一块融合网络适配器,无法多台服务器共享一块融合网络 适配器。
[0005] 刀片服务器是指在标准高度的机架式机箱内可插装多个卡式的服务器单元,是一 种实现HAHD (High Availability High Density,高可用高密度)的服务器平台,为特殊应 用行业和高密度计算环境专门设计。每一块"刀片"实际上就是一块系统主板。它们可以 通过"板载"硬盘启动自己的操作系统,如Windows、Linux等,类似于一个个独立的服务 器,在这种模式下,每一块主板运行自己的系统,服务于指定的不同用户群,相互之间没有 关联。不过,管理员可以使用系统软件将这些母板集合成一个服务器集群。在集群模式下, 所有的母板可以连接起来提供高速的网络环境,并同时共享资源,为相同的用户群服务。在 集群中插入新的"刀片",就可以提高整体性能。而由于每块"刀片"都是热插拔的,所 以,系统可以轻松地进行替换,并且将维护时间减少到最小。
[0006] 这种结构可以大大减少互联电缆和光纤收发器,可以大大降低由于线缆连接故障 带来的隐患,提高系统可靠性。最大限度地节约服务器的使用空间和费用。每个刀片服务 器独立拥有其一块或多块网卡的资源,无法在不同刀片服务器间共享。
[0007] 综上所述,现有实现中无论是使用刀片服务器还是为每台服务器配置一块网络适 配器,都不能在不同服务器间共享网卡资源。

【发明内容】

[0008] 有鉴于此,本发明提供一种数据转发装置和方法,能够使多台服务器之间共享网 卡资源。
[0009] 为解决上述技术问题,本发明的技术方案是这样实现的:
[0010] -种数据转发装置,应用于包括多个服务器、一个网卡共享设备的网络系统中的 网卡共享设备上,该装置包括:多个服务器接口单元、队列池及调度单元、多个虚拟网卡单 元和网络接口单元; toon] 所述服务器接口单元,用于获取对应的服务器上运行的虚拟网卡驱动程序需要发 送的数据帧,并获取发送该数据帧的相关描述信息作为第一融合描述符,将该第一融合描 述符和获取的数据帧发送给队列池及调度单元;其中,第一融合描述符包含描述符类型和 数据帧长度;每个服务器与一个服务器接口单元对应,每个服务器上运行一个或多个虚拟 网卡驱动程序,且每个虚拟网卡驱动程序与虚拟网卡单元一一对应;
[0012] 所述队列池及调度单元,用于将接收到的第一融合描述符和数据帧,调度到发送 该数据帧的虚拟网卡驱动程序对应的虚拟网卡单元;
[0013] 所述虚拟网卡单元,用于接收到第一融合描述符合数据帧时,根据该第一融合描 述符处理该数据帧,并将处理后的数据帧发送给所述网络接口单元;
[0014] 所述网络接口单元,用于将从所述虚拟网卡单元接收到的数据帧转发到外部网 络。
[0015] -种数据转发方法,应用于包括多个服务器、一个网卡共享设备的网络系统中的 网卡共享设备上,所述网卡共享设备上虚拟多个虚拟网卡;每个服务器上运行一个或多个 虚拟网卡驱动程序,且每个虚拟网卡驱动程序与共享网卡设备上的虚拟网卡一一对应;所 述方法包括:
[0016] 获取所述服务器上运行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数 据中贞的相关描述信息作为第一融合描述符,将该第一融合描述符和获取的数据巾贞调度到发 送该数据帧的虚拟网卡驱动程序对应的虚拟网卡上;其中,第一融合描述符包含描述符类 型和数据帧长度;
[0017] 接收到该数据帧和第一融合描述符的虚拟网卡,根据该第一融合描述符处理该数 据帧,并将处理后的数据帧发送到外部网络。
[0018] 综上所述,本发明通过在网卡共享设备上虚拟多个虚拟网卡单元,并在各服务器 上运行一个或多个与虚拟网卡单元一一对应的虚拟网卡驱动程序,将各服务器发送的数据 帧通过该共享网卡设备对应的虚拟网卡单元转发到外部网络,能够使多台服务器之间共享 网卡资源。
【附图说明】
[0019] 图1为本发明具体实施例中资源共享系统示意图;
[0020] 图2为队列池及调度单元结构示意图;
[0021] 图3为本发明实施例中服务器虚拟VM时共享资源系统示意图;
[0022] 图4为本发明实施例一中装置的硬件架构组成示意图;
[0023] 图5为本发明实施例中接收服务器发送的数据帧的处理方式流程示意图;
[0024] 图6为本发明实施例中接收到外部网络发送的数据帧的处理方式流程示意图。
【具体实施方式】
[0025] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对 本发明所述方案作进一步地详细说明。
[0026] 本发明具体实施例中提出一种数据转发装置,应用于包括多个服务器、和一个网 卡共享设备的网络系统中的网卡共享设备上。通过在网卡共享设备上虚拟多个虚拟网卡单 元,并在各服务器上运行一个或多个与虚拟网卡单元一一对应的虚拟网卡驱动程序,将各 服务器发送的数据帧通过该共享网卡设备转发到外部网络,能够使多台服务器之间共享网 卡资源。
[0027] 该网卡共享设备可以为在网络系统中新增的设备,也可以为网络系统中与各服务 器相连的交换设备,并在该交换设备中配置多个虚拟网卡来实现即可。
[0028] 参见图1,图1为本发明具体实施例中资源共享系统示意图。该资源共享系统中包 括η个服务器,一个网卡共享设备。数据转发装置应用于该网卡共享设备上。该装置包括 η个服务器接口单元,与η个服务器一一对应连接、一个队列池及调度单元、m个虚拟网卡单 元和1个网络接口单元,其中,η和m可以相同也可以不相同,且n、m为大于1的自然数。
[0029] 每个服务器上运行一个或多个虚拟网卡驱动程序,且每个虚拟网卡驱动程序与虚 拟网卡单元一一对应;其中,任一服务器上运行的虚拟网卡驱动程序与其他服务器上运行 的虚拟网卡驱动程序对应的虚拟网卡单元的标识不相同,即各服务器上运行的虚拟网卡驱 动程序对应的虚拟网卡单元标识均不相同。
[0030] 以该装置接收服务器的虚拟网卡驱动程序发送数据帧,并转发给外部网络为例:
[0031] 第一步,服务器接口单元(如服务器接口单元1 ),获取对应服务器(服务器1)上运 行的虚拟网卡驱动程序需要发送的数据帧,并获取发送该数据帧的相关描述信息作为第一 融合描述符,将该第一融合描述符和获取的数据帧发送给队列池及调度单元。
[0032] 其中,第一融合描述符至少包含描述符类型和数据帧长度。第一融合描述符还可 以包含的内容为下述之一或任意组合:
[0033] 数据帧的帧格式、是否添加或修改网络节点ID信息、是否重新计算校验和、是否 进行加密、指导虚拟网卡单元如何处理数据帧的其它信息。其中,数据帧的帧格式用于指 示,虚拟网卡单元采用第一融合描述符支持的多种帧格式中的哪种帧格式进行发送。
[0034] 服务器目前广泛采用的高速串行IO链路有外设组件互连标准的总线接口(PCI Express)、串行快速输入输出互连总线(RapidIO)、以太网等多种点到点形式。
[0035] 从技术上讲,这些类型的服务器接口单元在服务器的配合下均可以实现一个服务 器接口单元关联多个队列(具体实现在下文描述),虚拟网卡驱动程序发送一帧数据时通过 一个下行队列往虚拟网卡单元发送第一融合描述符和数据帧。虚拟网卡驱动程序接收一帧 数据时通过一个上行队列从虚拟网卡单元得到一个第二融合描述符和一个数据帧。
[0036] 下面给出在不同链接方式下,服务器接口单元的具体处理过程:
[0037] 1)、当服务器接口单元与对应服务器通过PCI Express点到点连接时,作为PCI Express链路的下游端点,配置多个发送引擎和接收引擎,与队列池及调度单元中配置的队 列--对应。
[0038] 图1中的服务器包括内存、硬盘、CPU和IO接口等。服务器的IO接口作为PCI Express链路的上游端点。服务器上运行的任一虚拟网卡驱动程序需要发送数据帧时,将该 数据帧放置在服务器内存中一个buffer空间,并在一个发送buffer描述符循环队列中设 置一个buffer描述符,现有网卡广泛采用,不再描述。
[0039] buffer描述符的内容中除了包含buffer空间起始地址、数据巾贞长度等信息,还有 指示网卡如何发送的信息,如本buffer的数据属于哪种帧格式、是否添加或修改网络节点 ID信息、是否重新计算某个校验和、是否需要进一步加密、是否需要以TCP负荷形式发送。 可选的,进一步还可包含通过多个队列中的哪个队列进行发送。
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1