用于网络、块和文件输入及输出的卸载堆栈制造技术

技术编号:2831269 阅读:192 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种用于从操作系统卸载网络、块和文件功能的装置,其包括耦合到网络以接收数据包流的网络接口(118A、118B);每个都具有一个或多个处理器核心的一个或多个处理器;承载存在于一个或多个处理器核心中的一个或多个操作系统和输入/输出网络堆栈(110)的计算机可读存储介质。在操作系统(104A、104B)之间共享网络堆栈。网络堆栈包括指令,当执行所述指令时,导致在内部网络、块和文件系统接口(112、114、116)处从操作系统之一中接收用于数据传输的请求,并且通过防止操作系统执行数据传输,以及代表操作系统执行数据传输,允许在内部接口和多个外部接口(118A-118D)之间传输数据。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般地涉及将计算机系统连接到网络。更具体地,本专利技术涉及用于从终端(endpoint)主机卸载(offload)某些网络、块(block)和文 件连接任务的方法。
技术介绍
在此部分中描述的方法可能是被研究过的,但并不一定是已经想到或 研究过的方法。因此,除非在此另外指出以外,在此部分描述的方法不作 为本申请中的权利要求的现有技术,并且不是通过包括在此部分中而承认 为是现有技术。对于希望用于网络中任意位置的计算机系统,例如服务器、工作站、 打印机及其他终端主机,开发者面临至少三个重要的外部通信的系统级需 求安全、性能和管理。这些需求通过在终端主机上的称为网络堆桟 (networking stack)的一组软件组件来处理。在UNIX操作系统的诸如 FreeBSD、 OpenBSD和NetBSD之类的基于BSD的实现方式中,提供了网 络堆栈的相对安全的高性能开源实现方式。我们还知道网络堆栈的其他实 现方式,包含Linux、 HPUX、 Microsoft Windows、 Sun Solaris和IBM AIX。安全性方案需要监视网络通信量的行为。安全攻击和防范策略的演进 需要灵活的平台,该平台可被容易地扩展并且甚至可被替代以实现对攻击 的防范策略。只有凭借对接口及其安全属性进行网络管理的统一系统,才 可同时实现性能和安全。网络工具提供商(network gear vendor)和操作系统供应商正致力于为桥接(bridging)行为提供安全性,其中从一个接口对 数据包(packet)侦听,并将数据包从另一接口广播出去。提供商还致力 于在--个操作系统(OS)映像(image)试图修改另-'映像时,控制运行多个os镜像的平台的能力。依赖于对网络堆栈的访问的安全应用包含虚拟专用网络、反病毒、在线加密和消息完整性、网络发现和标识(identity)协议。这些应用的每一 个都需要管理,尤其是在它们跨越边界的情况下。为了这些系统一起工 作,实践中统一的管理接口是必需的。同时,计算平台之间的通信增长导致终端所需要的可用带宽的量出现 相当的增长,尤其在TCP/IP堆栈中。例如,近来终端已经从需要不到 10Mbps的可用带宽,演进到需要100Mbps,到lGbps,并且在某些终端平 台上可用带宽已经到达10Gbps,而且此趋势很可能继续。这样的带宽增长 致使中央处理单元(CPU)上的负担快速增长。目前的估计是在1Gbps的 情况下,对于TCP/IP而言处理通信可能涉及多达总CPU负载的70%。CPU负担的增加进而促进双处理器服务器的快速增长,该双处理器服 务器已经发展为既提供足够的处理器周期以服务于应用需求,又提供足够 的周期用于堆栈相关的处理。虽然这些服务器性能强大,但是可能管理复 杂,因为它们在单个平台上实现太多计算功能。因此分别管理高性能服务 器的I/O网络方面的方式是有利于管理员的。虽然以上指出由TCP/IP堆栈处理需求所特别产生的问题,然而对于 管理其他类型接口的软件堆栈而言存在类似问题,所述其他类型接口的软 件堆栈包含用于光纤通道、Infmiband、火线接口 (IEEE 1394) 、 USB、 蓝牙、无线802.11和其他接口的外围堆栈。用于这些接口的每个接口的带 宽利用量都在增加。而且,检查通信流量的安全需求和在这些接口上的保 护变得尤为重要,尤其是对于从一个接口桥接到另一接口的通信量而言。过去的方法或者以不完全或者具有明显缺点的方式解决了部分前述问 题。例如,在一种方法中,利用卸载处理器适应带宽的增长。卸载处理器 是专用处理器,其承担主CPU的当前负担。例如,卸载处理器可用在 TCP卸载卡中,其对于给定接口从一组CPU卸载TCP堆栈处理功能。光 纤通道主机总线适配器(HBA)卡可卸载存储功能。然而,卸载处理器是专用非商品性部件,并且由于它们相对高的成本 使其市场渗透很慢。在虛拟化的环境中在多个访客操作系统(guestoperating system)之间不共享卸载处理器。不从网络管理卸载处理器。诸如实现火线接口和USB的堆栈之类的更简单的堆栈已经以相对较低 的成本出现在定制芯片上,因为这些接口已经普遍存在于终端设备中。然 而,这些芯片的速度增长相对较慢,这些芯片彼此独立地或多或少地起作 用,并且当这些芯片耦合在使用两种类型接口的设备中时,性能显著地降 低。用于文件系统功能的卸载能力目前无法获得,并且需要网络卸载和块 存储卸载二者来工作,这在单一用途的网络、TCP或HBA卡中是不能实 现的。诸如Alteon Tigon之类的可编程网络接口卡是我们熟知的。这样的可 编程NIC通常具有固定的适当数量的共享存储器,和少量在缓冲器上执行 DMA操作的专用RISC处理器。固件被设计为可替代的,并且可认为是在 有限程度内可编程的。与卸载卡类似,这些接口成本也相对较高并且尚未 被广泛采用。CPU芯片设计的最新趋势是在相同晶元(die)上提供多个CPU核 心。这些核心可共享公共的通信总线和主存储器,然而通常具有分开的髙 速缓存。已经在一些数据处理方法中采用共享存储器分配技术,其可从较 大的共享池中提取存储器,然而尚不知道其用于负载应用。 一些方法在配 置时已经使用了缓冲器池。在高性能服务器上如今已经采用多核CPU和共 享存储器分配技术二者。与高性能服务器相关联的问题是,在某些情况下,它们提供的大量 CPU性能可能未被充分利用。因此,服务器用户开始配置虚拟化软4牛,其 允许在单个服务器上运行多个操作系统实例。在Linux的Jahma's Osware、 VMWare、 Microsoft的用于多操作系统的Virtual Server、 IBM Hypervisor和Xen中提供了商业虚拟化软件。Xen是开源虚拟化引擎,其 目前包含对Microsoft Windows、 Linux、 NetBSD和FreeBSD的一些变体 的支持。虚拟化软件支持有限的存储器虛拟化,并可提供一些诸如虚拟桥 接之类的联网功能。然而,虚拟化的使用未降低管理高性能服务器的复杂 性,其中在所述高性能服务器中访客操作系统全部独立地实现复杂的I/O联网功能。它也没有避开性能和安全的担忧,人们正直接利用用于虚拟化的硬件支持,包括英特尔的VT、 Vandeipol、 AMD的Pacifica、 (VT)、 AMD的Pacifica和IBM的Hypervisor技术,来解决这种担忧。然而, 一些网络管理员配置使能虚拟桥接的通用服务器,作为边缘网 络设备。当这样的服务器被整合到还包含传统路由器和交换机的数据包交 换网络中时,对服务器及其桥接功能的管理成为挑战,这是因为与服务器 相比,这样的管理通常需要对路由器和交换机使用不同的管理工具。在此领域中的进一步问题涉及操作系统增殖(proliferation)。网络客 户端应用程序的开发者面临如下的问题缺少对一些私有平台上的不同接 口的控制,所述私有平台禁止对端口客户端而言必需的整套特征组的访 问。此外,开发者面临大量的操作系统,每个操作系统都需要不同的客户 端,其通常具有不容易相互移植的特征。这个问题存在于Microsoft Windows 、 Linux 、 Solaris 、 AIX、 本文档来自技高网...

【技术保护点】
一种用于从操作系统卸载网络、块和文件功能的装置,包括:网络接口,其耦合到数据网络以从该数据网络接收一个或多个数据包流;一个或多个处理器,所述一个或多个处理器的每一个都具有一个或多个处理器核心;一个或多个计算机可读存储 介质,其承载一个或多个操作系统和输入/输出网络堆栈,所述一个或多个操作系统和所述输入/输出网络堆栈当被执行时存在于所述处理器核心中的一个或多个处理器核心中,并且当被执行时所述网络堆栈在所述操作系统之间共享,其中所述输入/输出网络堆栈包括一个或多个指令,当执行所述指令时,导致执行如下操作:在多个内部接口之一处从所述操作系统中的一个或多个操作系统接收用于数据传输的请求,其中所述接口至少包括网络、块和文件系统接口;以及通过防止所述一个或多个操作系统执行所述数据传输, 并通过代表所述一个或多个操作系统执行所述数据传输,允许在所述内部接口和至少一个外部接口之间传输数据。

【技术特征摘要】
【国外来华专利技术】US 2005-6-22 60/693,133;US 2006-6-21 11/472,6781.一种用于从操作系统卸载网络、块和文件功能的装置,包括网络接口,其耦合到数据网络以从该数据网络接收一个或多个数据包流;一个或多个处理器,所述一个或多个处理器的每一个都具有一个或多个处理器核心;一个或多个计算机可读存储介质,其承载一个或多个操作系统和输入/输出网络堆栈,所述一个或多个操作系统和所述输入/输出网络堆栈当被执行时存在于所述处理器核心中的一个或多个处理器核心中,并且当被执行时所述网络堆栈在所述操作系统之间共享,其中所述输入/输出网络堆栈包括一个或多个指令,当执行所述指令时,导致执行如下操作在多个内部接口之一处从所述操作系统中的一个或多个操作系统接收用于数据传输的请求,其中所述接口至少包括网络、块和文件系统接口;以及通过防止所述一个或多个操作系统执行所述数据传输,并通过代表所述一个或多个操作系统执行所述数据传输,允许在所述内部接口和至少一个外部接口之间传输数据。2. 如权利要求1所述的装置,还包括指令,当执行所述指令时,导致 在所述处理器核心中的一个或多个处理器核心上的至少一个虚拟机上执行 所述输入/输出网络堆栈。3. 如权利要求1所述的装置,还包括指令,当执行所述指令时,导致 在所述处理器核心中的一个或多个处理器核心上的单独操作系统上执行所 述输入/输出网络堆栈。4. 如权利要求1所述的装置,其中所述内部接口包括套接字接口。5. 如权利要求1所述的装置,所述输入/输出网络堆栈还包括指令,当 执行所述指令时,导致防止所述操作系统在服务器上的主机之间执行数据 的桥接、交换和路由,并且代表所述操作系统在服务器上的主机之间桥 接、交换和路由数据。6. 如权利要求5所述的装置,其中所述主机位于执行所述输入/输出网 络堆栈的服务器外部。7. 如权利要求l所述的装置,其中所述输入/输出网络堆栈位于与所述 处理器核心分开的处理器上。8. 如权利要求1所述的装置,所述输入/输出网络堆栈还包括指令,当 执行所述指令时,导致在将所述数据在所述至少一个外部接口和所述一个或多个操作系统之 间传输之前分析所述数据,其中所述分析包括将所述数据的属性与安全性 策略相比较,以及防止传输不满足所述安全性策略的数据。9. 如权利要求l所述的装置,其中主机系统中的输入/输出网络堆栈可 通信地耦合到网关设备。10. 如权利要求1所述的装置,其中所述输入/输出网络堆栈包括至少 存在于所述处理器核心之一的一部分上的访客操作系统。11. 如权利要求1所述的装置,所述输入/输出网络堆桟还包括指令,当执行所述指令时,导致将来自所述操作系统中至少一个操作系统的套接字呼叫与一个值相关联,该值标识出多个服务质量级别之一;基于所述值,在多个循环缓冲接口之一中中转所述套接字呼叫。12. —种装置,包括-一个或多个处理器核心;一个或多个计算机可读存储介质,其承载一个或多个操作系统和输入/ 输出网络堆栈,所述一个或多个操作系统和所述输入/输出网络堆栈当被执 行时存在于所述处理器核心中的一个或多个处理器核心中,并且当被执行 时所述网络堆栈在所述操作系统之间共享;用于在多个内部接口之一处从所述操作系统中的一个或多个操作系统 接收用于数据传输的请求的装置,其中所述接口至少包括网络、块和文件 系统接口;以及用于通过防止所述一个或多个操作系统执行所述数据传输,并通过代 表所述一个或多个操作系统执行所述数据传输,允许在所述内部接口和至 少一个外部接口之间传输数据的装置。13. 如权利要求12所述的装置,还包括用于在所述处理器核心中的--个或多个处理器核心上的单独虚拟机上执行所述输入/输出网络堆栈的装 置。14. 如权利要求12所述的装置,其中所述内部接口中的至少一个包括 套接字接口。15. 如权利要求12所述的装置,还包括用于防止所述操作系统在服务 器上的主机之间执行的数据桥接、交换和路由的装置,以及用于代表所述 操作系统在服务器上的主机之间桥接、交换和路由数据的装置。16. 如权利要求15所述的装置,其中所述主机位于执行所述输入/输出 网络堆栈的服务器外部。17. 如权利要求12所述的装置,其中所述输入/输出网络堆栈位于与所 述处理器核心分开的处...

【专利技术属性】
技术研发人员:马克巴克蒂莫西库伊克大卫汤普森保罗格莱希奥夫晓雪马
申请(专利权)人:思科技术公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1