CN117178533A - 基于硬件的分组流处理的高可用性 - Google Patents

基于硬件的分组流处理的高可用性 Download PDF

Info

Publication number
CN117178533A
CN117178533A CN202280027082.1A CN202280027082A CN117178533A CN 117178533 A CN117178533 A CN 117178533A CN 202280027082 A CN202280027082 A CN 202280027082A CN 117178533 A CN117178533 A CN 117178533A
Authority
CN
China
Prior art keywords
sdn
snic
virtual
devices
network
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.)
Pending
Application number
CN202280027082.1A
Other languages
English (en)
Inventor
G·R·德格雷斯
D·班萨尔
R·特瓦里
M·C·齐格蒙特
D·亚加西亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US17/335,014 external-priority patent/US11652749B2/en
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority claimed from PCT/US2022/021066 external-priority patent/WO2022216441A1/en
Publication of CN117178533A publication Critical patent/CN117178533A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

公开了用于在虚拟计算环境的软件定义网络(SDN)中处理数据分组和实现策略的技术。至少两个SDN设备被配置为从虚拟计算环境的主机解聚SDN的策略实施。主机在通信地耦合到SDN设备的网络接口的服务器上实现。服务器托管多个虚拟机。服务器通信地耦合到至少两个架顶式交换机(ToR)的网络接口。SDN设备包括被配置为实现SDN设备的功能的多个智能网络接口卡(sNIC)。sNIC具有浮动网络接口,该浮动网络接口被配置为提供到虚拟计算环境的虚拟网络内的端点的虚拟端口连接。

Description

基于硬件的分组流处理的高可用性
背景技术
数据中心可以容纳计算机系统以及各种联网、存储和其他相关组件。例如,服务提供者可以使用数据中心来向企业和个人提供计算服务作为远程计算服务,或者提供“软件即服务”(例如,云计算)。软件定义网络(SDN)允许物理和虚拟网络设备的集中配置和管理,以及网络策略的动态和可扩展实现。对数据业务的有效处理对于在这样的网络中保持可伸缩性和高效操作是重要的。
正是考虑到这些考虑和其他因素,才提出了本文中的公开。
发明内容
在一些实施例中,上述场景可以受益于用于从主机解聚策略处理的系统和方法的实现。解聚还可以实现更大的网络规模,以满足客户日益增长的需求。在一些实施例中,SDN可以实现中间设备,其在本文中可以被称为SDN设备。SDN设备可以结合于2021年5月31日提交的题为“HARDWARE-BASED PACKET FLOW PROCESSING”(基于硬件的分组流处理)的美国申请No.xx/xxxxxx的一些功能。
在一些实施例中,SDN设备可以允许使用SDN控制平面来管理网络设备,同时提供高可用性和容错性,如本文进一步描述的。SDN设备提供了将SDN策略和配置的应用分离到不同计算环境的模型。SDN设备的操作对虚拟网络是透明的。此外,SDN设备提供了在比以前更多的虚拟网络上摊销计算环境能力的机会。
在所示的示例实施例中,可以通过从主机解聚(disaggregatig)策略实施并将其移动到战略性地放置在网络中的SDN设备来增强SDN能力。SDN设备可以被配置为实施SDN策略、执行相关联的转换以及实现负载均衡器策略。在一些实施例中,为了将主机SDN策略实施完全移出主机,可以使用包括FPGA的SDN设备来将SDN策略实施移出主机。SDN设备的实现可以释放客户工作负载的工作/计算能力,并允许更可预测的性能。SDN设备可以放置在数据中心中,以动态提供主机上可能无法实现或无法使用的规模或特征。这些特征可以包括VM扩展、分组处理卸载和灵活的SDN策略应用。
本文公开了一种数据中心智能机架,其在本文也可以被称为云智能机架,其从主机解聚SDN。数据中心智能机架通过高效地分配网络资源,将基于连接的管理功能分配到机架中,从而最大限度地提高网络资源利用率。该功能可以包括SDN和卸载存储方案。
本文公开了用于基于策略的流转发的高可用性(HA)的方法。可以为基于机架的联网设备实现高可用性(HA)方案。HA方法可以解决故障模式,包括在SDN设备中丢失smartNIC和完全丢失设备。这些技术可能包括在发生故障时同步到新设备或smartNIC的过程。
本文公开了用于通过在多个SDN设备上分布来扩展主机策略的方法。本发明提供了对基于机架的联网设备的超额订阅的管理。这些技术可以包括在设备上分布虚拟机,使得设备的能力可以有效地超额订阅。
所描述的技术可以允许虚拟计算环境支持包括定制硬件和混合架构的各种配置,同时保持对诸如处理器周期、存储器、网络带宽和功率的计算资源的有效利用。提供本发明内容是为了以简化形式介绍一组概念,这些概念将在下面的详细描述中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在使用本发明内容来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决本公开的任何部分中所指出的任何或所有缺点的实现。
附图说明
参考附图描述了具体实施方式。在本文的具体实施方式中,参考形成本文一部分的附图,并且这些附图以图解的方式示出了具体实施例或示例。本文的附图不是按比例绘制的。贯穿若干附图的相同的数字表示相同的元素。
图1是示出根据本公开的示例架构的图示;
图2是示出根据本公开的数据中心的图示;
图3是示出根据本公开的示例架构的图示;
图4是示出根据本公开的注入实例的图示;
图5是示出根据本公开的用于实现虚拟服务的架构的图示;
图6是示出根据本公开的用于实现虚拟服务的架构的图示;
图7是示出根据本公开的示例架构的图示;
图8是示出根据本公开的示例架构的图示;
图9是示出根据本公开的示例架构的图示;
图10是示出根据本公开的示例架构虚拟网络的图示;
图11是示出根据本公开的示例架构虚拟网络的图示;
图12A是示出根据本公开的示例架构的图示;
图12B是示出根据本公开的示例架构的图示;
图13是示出根据本公开的示例架构的图示;
图14是示出根据本公开的示例架构的图示;
图15是示出根据本公开的示例架构的图示;
图16是描述根据本公开的示例过程的流程图;
图17是根据本公开的示例计算系统。
具体实施方式
所公开的实施例使数据中心能够以能够降低其网络的成本和复杂性的方式提供服务,从而允许更有效地使用计算、存储和网络资源。云服务提供者高效实现端到端服务可以允许跨各种足迹的无缝和更一致的体验。多租户和单租户资源与综合资源管理方法的集成可以最大限度地减少用户的开销,他们将不需要解决策略实施问题和执行其他复杂的管理任务。所描述的解聚函数的有效分布可以基于对诸如延迟和数据安全性的各种性能和安全影响的影响来确定。
本文公开了一种数据中心智能机架,其在本文也可以被称为云智能机架,其从主机解聚SDN。数据中心智能机架可以被配置为以通过以高效方式分配网络资源来最大化网络资源利用率的方式将基于连接的管理功能分配到机架中。该功能可以包括软件定义联网(SDN)和卸载存储场景。在一些实施例中,可以实现SDN设备,其被配置为实施SDN策略、执行相关联的转换以及实现负载均衡器策略。在一个实施例中,该设备可以位于数据中心智能机架的顶部,而不是位于数据中心中的其他位置。
在一个实施例中,SDN设备可以启用SmartNIC。在一个实施例中,数据中心智能机架中的服务器可以部署“瘦(skinny)”NIC,其可以是不具有SmartNIC功能的标准NIC。如本文所使用的,术语硬件加速设备还可以包括利用硬件加速和卸载技术来执行功能的其他方式,例如,a)至少一些任务在硬ASIC逻辑等中实现的情况;b)至少一些任务在软(可配置的)FPGA逻辑等中实现的情况;c)至少一些任务在FPGA软件处理器覆盖层(overlay)等上作为软件运行的情况;d)至少一些任务在硬ASIC处理器等上作为软件运行的情况等,或其任何组合。在一些实施例中,外围设备可以是网络通信设备,例如网络接口卡(NIC)。这样的NIC在本文可以被称为smartNIC或sNIC。
在本文公开的一些实施例中,可以实现灵活的网络接口。如本文所使用的,这样的灵活网络接口可以被称为灵活网络接口卡、浮动网络接口卡或fNIC,或者更一般地被称为虚拟端口(vport)。fNIC可以被插入在从主机到目的地的路径上,并且可以被配置为在到达目的地之前应用SDN策略。在一些实施例中,可以在SDN设备上实现一个或多个fNIC。实现SDN策略的点可以根据该流在主机和SDN设备之间浮动。
在传统的SDN应用中,SDN策略的应用可以基于元组(tuple)处理。当被实现为中间盒技术时,例如利用SDN设备,需要SDN操作的中间盒后面的业务目的地可以被预编程为fNIC,其解析由诸如VLAN、MAC、IP和其他信息的定制定义的标识符的组合组成的业务,以唯一地标识流并应用适当的策略。这一层的可编程性可为在不同网络环境和场景中应用策略提供灵活性。
与云计算网络中的虚拟机(VM)相关联的fNIC可以被配置为弹性地从父NIC附接和解除附接,从而使得该虚拟机能够同时连接到与相同或不同订阅相关联的多个不同的虚拟网络(VNet)和/或子网。例如,fNIC可以使服务提供者能够将计算实例注入到现有的VNet中,其中数据平面使用专用网络接口来连接客户的VNet,而另一个专用网络接口向服务提供者提供管理平面连接。这种配置为客户的VNet提供数据平面隔离,以遵守适用的安全策略,而不会中断注入资源和服务提供者之间的管理业务。使用交叉订阅架构,父NIC可以与例如对注入的计算实例的管理业务的服务订阅相关联,并且与对数据业务的客户订阅相关联的附接fNIC相关联。
除了在注入的计算实例的数据和管理业务之间提供隔离之外,利用fNIC还为云计算客户和服务提供者提供了额外灵活性。例如,计算实例可以同时连接到客户的VNet中的不同子网(可能具有不同的安全策略)。由fNIC提供的这种能力可以有利地促进客户企业中的资源的有效组织和消耗。
利用fNIC可以支持多租户架构的实现,以提供多个租户对单个共享VM的访问。附接到与服务提供者相关联的父NIC的每个fNIC可以对每个租户订阅使用唯一的网络分区标识符(NPI)。fNIC提供灵活的多租户实现,同时允许将精细网络策略实施到特定的离散计算工作负载,而不是整个VM。在父NIC之下的虚拟过滤平台扩展可以被配置为实施绑定到每个fNIC的特定的联网策略,包括例如带宽计量、访问控制、VNet数据封装和寻址等。VM上的每个租户的数据平面可以并发地操作,但是彼此隔离,以确保一个租户的数据处理不会对其他租户产生影响。
fNIC还可以利用可以按需快速部署的相关联的策略来预先提供额外的计算资源,同时减少将资源注入客户的VNet传统上所需的时间。在这种“热附接”架构中,服务提供者可以例如在VM中具有已经处于主动状态的计算实例的池作为备用。该服务可以将fNIC附解到父NIC,并将其与客户的订阅相关联,以提供对客户VNet的访问。管理和数据平面独立操作以防止中断,同时提供与适用的网络和安全策略的合规性。
参考附图,其中相同的数字贯穿多个附图表示相同的元素,将描述用于网络解聚技术和支持技术的各种技术的各方面。在下面的详细描述中,参考形成其一部分的附图,并且附图通过图解的方式示出了具体的配置或示例。
图1示出了其中可以实现本文描述的实施例的示例计算环境。图1示出了被配置为向用户站点140处的用户提供计算资源的服务提供者100。用户站点140可以具有可以经由网络130访问由服务提供者100提供的服务的用户计算机。服务提供者100提供的计算资源可以包括各种类型的资源,诸如计算资源、数据存储资源、数据通信资源等。例如,计算资源可以作为虚拟机可用。虚拟机可以被配置为执行应用,包括Web服务器、应用服务器、媒体服务器、数据库服务器等。数据存储资源可以包括文件存储设备、块存储设备等。联网资源可以包括虚拟联网、软件负载均衡器等。
服务提供者100可以具有各种计算资源,包括服务器、路由器和可以使用例如虚拟机来提供可远程访问的计算和网络资源的其他设备。可以提供的其他资源包括数据存储资源。服务提供者100还可以执行管理和控制网络资源的分配的功能,例如网络管理器110。
例如,网络130可以是链接网络的公共可访问网络,并且可以由诸如因特网的各种实体操作。在其他实施例中,网络130可以是专用网络,例如公众完全或部分不可访问的专用网络。网络130可以提供对用户站点140处的计算机和其他设备的访问。
图2示出了其中可以实现本文描述的实施例的示例计算环境。图2示出了数据中心200,该数据中心200被配置为经由通信网络220,经由用户计算机202a、202b和202c(其在本文可以被单数称为“计算机202”或在复数中被称为“多个计算机202”)向用户200a、200b或200c(其在本文可以被单数称为“用户200”或在复数中被称为“多个用户200”)提供计算资源。数据中心200提供的计算资源可以包括各种类型的资源,诸如计算资源、数据存储资源、数据通信资源等。每种类型的计算资源可以是通用的,或者可以以多种特定配置可用。例如,计算资源可以作为虚拟机可用。虚拟机可以被配置为执行应用,包括Web服务器、应用服务器、媒体服务器、数据库服务器等。数据存储资源可以包括文件存储设备、块存储设备等。每种类型或配置的计算资源可以在不同的配置中可用,例如处理器的数量、存储器和/或存储容量的大小。在一些实施例中,可以将资源以称为实例的单位提供给客户端,例如虚拟机实例或存储实例。虚拟计算实例可以被称为虚拟机,并且例如可以包括具有指定计算能力(可以通过指示CPU的类型和数量、主存储器大小等来指定)和指定软件堆栈(例如,操作系统的特定版本,其可以在管理程序之上运行)的一个或多个服务器。
数据中心200可以对应于图1和图2中的服务提供者100,或者图2的边缘站点150。数据中心200可以包括可以单独地或在服务器机架上安装的服务器226a、226b和226c(其在本文可以单数地称为“服务器228”或在复数中称为“多个虚拟机228”),并且提供作为虚拟机228a和228b(其在本文可以单数地称为“虚拟机228”或在复数中称为“多个虚拟机228”)可用的计算资源。虚拟机228可以被配置为执行诸如Web服务器、应用服务器、媒体服务器、数据库服务器等的应用。可以提供的其他资源包括数据存储资源(图2中未示出),并且可以包括文件存储设备、块存储设备等。服务器226还可以执行管理和控制数据中心中的资源分配的功能,例如控制器225。控制器225可以是结构控制器或被配置为管理服务器226上的虚拟机的分配的另一类型的程序。
参考图2,例如,通信网络220可以是链接网络的公共可访问网络,并且可以由诸如因特网的各种实体操作。在其他实施例中,通信网络220可以是私有网络,例如公众完全不可访问或部分不可访问的公司网络。
通信网络220可以提供对计算机202的访问。计算机202可以是由用户200使用的计算机。计算机202a、202b或202c可以是服务器、台式或膝上型个人计算机、平板计算机、智能电话、机顶盒或能够访问数据中心200的任何其他计算设备。用户计算机202a或202b可以直接连接到互联网(例如,经由电缆调制解调器)。用户计算机202c可以在数据中心200的内部,并且可以经由内部网络直接连接到数据中心200中的资源。尽管仅示出了三个用户计算机202a、202b和202c,但应当理解,可以有多个用户计算机。
计算机202还可用于配置由数据中心200提供的计算资源的各方面。例如,数据中心200可以提供Web界面,通过该Web界面可以通过使用在用户计算机202上执行的Web浏览器应用来配置其操作的各方面。备选地,可以使用在用户计算机202上执行的独立应用来访问由数据中心200展示的用于执行配置操作的应用编程接口(API)。
服务器226可以被配置为提供上述计算资源。服务器226中的一个或多个可以被配置为执行被配置为执行虚拟机的管理器230a或230b(其在本文可以被单数地称为“管理器230”或在复数中被称为“多个管理器230”)。管理器230可以是例如虚拟机监测器(VMM)、结构控制器或被配置为能够在服务器226上执行虚拟机228的另一种类型的程序。
应当理解,尽管上面公开的实施例是在虚拟机的上下文中讨论的,但是可以利用本文公开的概念和技术来利用其他类型的实现。
在图2所示的示例数据中心200中,可以利用网络设备222来互连服务器226a和226b。网络设备222可以包括一个或多个交换机、路由器或其他网络设备。网络设备222还可以连接到网关240,该网关240连接到通信网络220。网络设备222可以例如通过基于这种通信的特征(例如,包括源和/或目的地地址、协议标识符等的报头信息)适当地转发分组或其他数据通信来促进数据中心200中的网络内的通信,和/或专用网络的特性(例如,基于网络拓扑的路由等)。应当理解,为了简单起见,在不示出某些常规细节的情况下图示了该示例的计算系统和其他设备的各个方面。在其他实施例中,附加计算系统和其他设备可以互连,并且可以以不同方式互连。
应当理解,图2中所示的网络拓扑已被极大地简化,并且可以利用更多的网络和联网设备来互连本文公开的各种计算系统。这些网络拓扑和设备对于本领域技术人员来说应该是显而易见的。
还应当理解,图2中描述的数据中心200仅是说明性的,并且可以利用其他实现。此外,应当理解,本文公开的功能可以以软件、硬件或软件和硬件的组合来实现。对于本领域的技术人员来说,其他实现方式应该是显而易见的。还应当理解,服务器、网关或其他计算设备可以包括能够交互并执行所述类型的功能的硬件或软件的任意组合,包括但不限于台式或其他计算机、数据库服务器、网络存储设备和其他网络设备、PDA、平板计算机、智能电话、互联网设备、基于电视的系统(例如,使用机顶盒和/或个人/数字录像机)、以及包括适当通信能力的各种其他消费产品。此外,在一些实施例中,由所示模块提供的功能可以在更少的模块中组合或在附加模块中分布。类似地,在一些实施例中,可以不提供所示模块中的一些模块的功能和/或可以提供其他附加功能。
在一些实施例中,本公开的各方面可以在结合4G、5G或其他蜂窝网络实现的移动边缘计算(MEC)环境中实现。MEC是一种使用蜂窝网络和5G的边缘计算,使数据中心能够使用分布式架构将云服务扩展到本地部署,该架构为本地和远程数据和控制管理提供联合选项。MEC架构可以在蜂窝基站或其他边缘节点实施,使运营商能够托管更靠近网络边缘的内容,从而向最终用户提供高带宽、低延迟的应用。例如,云提供者的足迹可以位于运营商站点(例如运营商数据中心),从而允许边缘基础设施和应用通过5G网络更靠近最终用户运行。
图3示出了说明性云计算环境300,其中客户网络305包括多个部分,包括内部网络(on-premises)330和虚拟网络(VNet)335。该示例中的客户网络是混合网络,但是也可以根据用户场景的特定要求来使用其他网络配置。可以使用由云服务提供者325操作的一个或多个主机320来物理地实现VNet。注意,为了说明清楚起见,图3中的图被简化,并且未示出诸如防火墙、路由器等的典型联网设备。
通常使用网关330或其他联网设备的实例在通信网络335上可操作地耦合内部网络和VNet,通信网络335可以包括例如使用连接服务的各种组合的专用和/或公共联网基础设施。VNet可以包括多个子网340,每个子网340包括通常使用负载均衡器350和/或其他联网设备连接的一个或多个虚拟机345实例。安全和其他联网策略(共同由附图标记355表示)通常适用于每个子网。每个子网的网络策略通常不同,但在某些情况下它们可能相同和/或重叠。
图4示出了来自服务资源提供者405的将专用计算实例410注入客户的VNet 415中的说明性服务。例如,在一些实现中,可以使用平台即服务(PaaS)来实现这样的服务资源提供者以提供搜索、内容递送等。服务资源提供者可以与云服务提供者405相关联或者在一些情况下是第三方。当供应与进入和退出网关330的客户数据业务415交互的给定云计算服务时,服务资源提供者可以将计算实例或其他资源注入VNet。如图4所示,由客户实现以保护VNet或子网的安全或联网策略455被用来过滤业务并为所有网络业务流提供在VM/VNet/子网处的端节点控制。
联网策略可以通过阻止来自NRP 405的导致服务中断的管理平面访问来阻止管理业务440。服务中断可以通过fNIC来解决,该fNIC可按如下所述的弹性方式从父网络接口控制器fNIC附接和解除附接。管理平面和数据平面的分离可以是软件定义网络(SDN)的一个特性。因此,在一些实现中,客户的网络405可以全部或部分基于SDN技术,如下所述。
图5示出了可用于支持附接到父NIC 510的各种场景的说明性fNIC 505。在该示例中,父NIC可以被实现为使用容器模型支持VM 345的主机处的网络接口的虚拟化,尽管在一些场景中可以利用物理实施例。可以使用容器的隔间作为子网络接口配置来实现fNIC。本质上,可以使用占位符网络接口来创建计算实例,从而可以通过分别从实例附接和解除附接来动态地放置和移除多个fNIC。
父NIC和fNIC为客户的VNet中的虚拟机提供身份、连接和可发现性。fNIC通过其从父NIC附接和解除附接的能力,为各种VM部署方案提供灵活性。灵活性允许按需快速调配各种云计算功能和服务,而无需更改给定虚拟机/VNet/子网中的基本工作流,同时遵守适用的联网策略。
如图5所示,使用场景说明性地包括例如交叉订阅和多VNet归宿(由附图标记515指示)、多租户和子网共享520、以及资源的预供应或“热附接”525。
图6示出了对VM交换机605的示例虚拟过滤平台(VFP)600扩展,其通过实施绑定到每个容器610的特定联网策略来实现本文讨论的多租户架构中的数据路径隔离,容器610用于实现父NIC,其中基于NPI将fNIC附接到父NIC。VM交换机可以在逻辑上在父NIC 310之下,并且可以向NIC支持的每个VM提供端口612。VFP可以将适用于该端口的联网策略划分为包括管理SDN行为和特征的规则的层。虚拟过滤平台可以提供在给定计算工作负载中实施策略和转换或隧道传送进入和离开VM 145的数据分组的能力。虚拟过滤平台可以包括执行数据分组处理的中央数据分组处理器(未示出)。
在该示例中,联网策略层可包括与计量615、访问控制列表(ACL)620、VNet寻址/路由625以及其他各种SDN功能或特征630有关的那些,其他各种SDN功能或特征630可以包括例如与路由、隧道、过滤、地址转换、加密、解密、封装、解封装或服务质量(QoS)有关的那些功能或特征。VFP 600中的分组处理器可以在数据业务635的分组遍历联网策略层时对其进行评估,基于在前一层中执行动作之后的分组的状态来匹配每一层中的规则。返回的分组可以以相反的方向穿过各层,并且可以由VFP处理以匹配适用的规则。用于表达联网策略的规则可以是在VFP处理计算工作负载时对匹配分组执行动作(例如,使用匹配动作表模型)的实体。
在所示的示例场景中,SDN能力可以通过从主机解聚策略实施并将其移动到战略性地放置在网络中的SDN设备来增强。
软件定义联网(SDN)通常在通用计算节点上实现。SDN控制平面可以对主机进行编程以提供诸如安全、虚拟网络和负载均衡器策略之类的核心网络功能。
参考图7,示出了根据一些实施例可以实现解聚的SDN设备710的示例。在一些实施例中,SDN设备710可以允许使用SDN控制平面来管理网络设备,同时提供高可用性和容错性,如本文进一步描述的。图7示出了包括SDN代理720、能够执行诸如虚拟过滤平台(VFP)730的网络转换的网络驱动器、策略740和卡(例如,FPGA)750的网络优化机箱(chassis)的一个示例。SKU可以改变,如果需要,主机750可以用作SDN设备。本文描述的各种实施例将SDN设备的使用示为一般概念。
如上所述,各种实施例包括数据中心联网模型,该数据中心联网模型包括选择性地放置的网络跳,网络跳可以在数据业务到达其目的地之前在数据中心的各个点(即,网络穿越点)应用软件定义的联网(SDN)策略。这可以在目的地接收数据业务之前提供更高的整体性能、从主机解聚和应用其他SDN能力。
在一个实施例中,用于确定在哪里实现流的SDN策略的标准可以包括,例如:流的年龄、流的速率、在流上传输的总字节数、在对端主机处使用的流的总数等。由于应用于流的SDN策略可以包括多个方面,因此可以在不同位置实现该策略的不同方面。
在使用诸如架顶式(ToR)交换机之类的机架级交换机的一些实现中,这种设备通常不具有执行转换的能力。SDN设备网关可用于托管这些代理并提供交换机功能,还可进一步提供转换和连接。SDN设备可以接受执行转换的策略。在一些实施例中,可以实现对在SDN设备上运行的驱动程序进行编程的代理。工作负载发送的业务可以通过SDN设备定向,SDN设备可以对业务应用策略和执行转换,并将业务发送到目的地。在一些配置中,SDN设备可以包括诸如虚拟过滤平台的虚拟交换机。
SDN设备可能成为软件定义的网络的单点故障。SDN设备的故障缓解必须考虑瞬时状态(例如,TCP流状态)的保留以及各个SDN设备中状态的局部性。如果两台设备交叉连接到两台交换机,从物理设备的角度来看,单点故障是可以避免的,但可以带来状态管理和预期的连接问题。
例如,所描述的实施例可以支持多个不同网络和物理拓扑中的SDN设备上的连接设备,例如,FPGA。
虽然使用FPGA来说明所描述的技术,但是应当理解,这些技术可以应用于诸如GPU的其他类型的连接设备。
本文关于某些示例和实施例描述了本公开的各个方面,这些示例和实施例旨在说明但不限于公开。应当理解,本文呈现的主题可以被实现为计算机进程、计算机控制的设备、计算系统、诸如计算机可读存储介质的制品、或者包括用于实现功能的硬件逻辑的组件,诸如现场可编程门阵列(FPGA)设备、大规模并行处理器阵列(MPPA)设备、图形处理单元(GPU)、专用集成电路(ASIC)、多处理器片上系统(MPSoC)等。
组件还可以包括利用设备来执行功能的其他方式,例如,a)至少一些任务在硬ASIC逻辑等中实现的情况;b)至少一些任务在软(可配置的)FPGA逻辑等中实现的情况;c)至少一些任务在FPGA软件处理器覆盖等上作为软件运行的情况;d)至少一些任务在硬ASIC处理器等上作为软件运行等的情况,或其任何组合。组件可以表示硬件加速设备的同构集合,例如,FPGA设备。另一方面,组件可以表示不同类型的硬件加速设备的异构集合,包括具有不同的各自处理能力和架构的不同类型的FPGA设备、FPGA设备和其他类型的硬件加速设备的混合等。
参考图8,示出了具有两个SDN设备810的数据中心智能机架800的示例,其具有一个或多个智能NIC 820和多个具有服务器的计算行830。在数据中心智能机架中的任何服务器上运行的任何虚拟机840都可以利用SDN设备810。例如,具有高每秒连接数(CPS)或业务规模需求的虚拟机可以通过SDN设备发送业务。与传统方法相比,这些设备可以被配置为以显著更快的速率执行SDN数据路径功能。
参考图9,示出了以虚拟或分布式方式实现设备或其组件以提供灵活的实现方法的示例。换句话说,SDN设备的组件可以分布在服务器910中,而不是容纳在单独的物理组件中。例如,数据中心智能机架900中的每个服务器910可以包含至少2个SmartNIC 930。在一个实施例中,可以逻辑地组合smartNIC 930的分组以形成虚拟设备940。
参考图10,示出了SDN解聚的示例,其中从计算主机移除非计算功能。在一种实现中,可以将smartNIC 1010池聚到共享设备1000中。在一个实施例中,设备1000可以是成本优化的。设备1000可以被配置为执行所有SDN数据路径功能。在本文的该附图和其他附图中,虚线表示瘦NIC 1040,而实线表示smartNIC 1010。为了实现低功能、低成本和低功率,可以在服务器1030上实现瘦NIC 1040。
在一个实施例中,存储业务可以绕过该设备。图10示出了对ToR或设备故障具有弹性的容错方案的示例。每个设备1000交叉连接到每个ToR 1020。在一个实施例中,两个设备可以使用连接状态复制。在一个示例中,可以根据负载实现每个设备2-4个SmartNIC 1010。在一个实施例中,每个ToR 1020可以完全连接到每个SmartNIC 1010。例如,每个SmartNIC1010可以提供两个冗余的100G线上凸点SDN。所示的示例允许NIC的热插入/删除/RMA。服务器1030可以具有双端口瘦NIC 1040。在该实施例中,存储业务不通过SmartNIC(存储旁路)。在一个实施例中,SDN代理1050可以在服务器或ToR上执行。
参考图11,示出了数据中心智能机架1100的实施例,其中将smartNIC 1130分布到智能ToR 1120(例如,基于SONiC的ToR)。图示的示例可以通过存储旁路提供相同的数据中心智能机架设备功能。在一个实施例中,SmartToR 1120可以包括交换机和SmartNIC 1130。在一个实现中,SmartToRS1130可以类似于图10中所示的数据中心智能机架通过暴露NIC端口来互连。在该实现中,机架可以用更少的连接器和电路板进行机械和板式优化。在一个实施例中,服务器1110可以各自具有一个瘦NIC 1140。在一个实施例中,SDN代理1150可以在服务器或ToR上执行。
参考图12A,示出了数据中心智能机架1200的另一实施例,该数据中心智能机架1200具有在服务器1210之间分布的smartNIC 1240以创建分布式和虚拟设备。此示例可能类似于具有存储旁路的SDN功能。该实施例通过在服务器1210内添加SmartNIC 1240来消除物理上分离的SDN设备,从而创建具有N个SmartNIC(在该示例中为2个)的虚拟设备1250。大多数或所有服务器1210还可以具有一个瘦NIC 1230。该比率可以基于性能需要(例如,3:1的比率)来确定。在一个实施例中,SDN代理1260可以在服务器或ToR上执行。
参考图12B,示出了数据中心智能机架1200的另一实施例,该数据中心智能机架1200具有在服务器1270之间分布的smartNIC 1280以创建分布式和虚拟设备。在一些实施例中,虚拟设备可以在裸机服务器场景中实现。该实施例还通过在服务器1270内添加SmartNIC 1280来消除单独的SDN设备,其中N个服务器每一个都配置有SmartNIC以形成具有N个SmartNIC的虚拟设备。在一些实施例中,这样的配置可以用于支持5G边缘应用。
参考图13,该图的左侧示出了提供RDMA卸载功能1325和到该设备的连接的瘦或标准NIC 1320。联网业务可以被隧道传送到设备1330。该图的右侧显示了在SmartNIC 1340上执行的基于策略的状态网络转发和安全1350。
本文公开了用于基于策略的流转发的高可用性(HA)的技术。可以为本文公开的基于机架的联网设备实施高可用性(HA)方案。HA方案可以解决的故障模式包括在设备中丢失smartNIC和完全丢失设备。这些技术包括在发生故障时同步到新设备或SmartNIC的过程。
在一个实施例中,高可用性可以通过以下概念来实现:
·具有两(2)台SDN设备的主动-被动架构
·过量配置(overprovisioning)-由多个设备smartNIC处理相同的ENI
·配对——来自一台SDN设备的每个sNIC在另一台SDN设备中都将具有“配对”卡,具有共享/相同的VIP
本文公开了一种通过跨多个SDN设备分布来扩展主机策略。描述了用于管理基于机架的联网设备的超订用的技术。这些技术包括将虚拟机分布在设备上,以便设备的功能可以高效超额订阅。
在一个实施例中,可以通过以下概念来实现扩展:
·过量配置——相同ENI由多个设备sNIC处理,每个sNIC具有不同的VIP
·流拆分——TOR(或源节点)在不同VIP之间平均拆分业务
对于高可用性,一个目标可能是零宕机计划内故障转移,以及不到2秒(<2sec)的非计划内故障转移停机时间。此外,另一个目标可能是能够在发生计划外和计划内故障转移时恢复连接。可以实现高可用性方案,使得如果设备接收到有效分组,则设备不会由于流复制延迟而丢弃该分组。另一个目标可以是确保入站和出站分组对给定流使用相同的设备。
图14示出了用于高可用性和可扩展性的机架设计的高级架构的示例。此示例说明了主动/主动硬件设计和主动/被动ENI设计(软件)。图14示出了具有具有交叉线设计的两个ToR的实施例。每个sNIC可以同时连接到ToR,以实现可用性和规模。
在单一TOR故障的情况下,两个SDN设备均可用。某些ENI在SDN设备1上可能是“主动”的,在SDN设备2上可能是“被动”的。其他ENI在SDN设备2上是“主动”的,在SDN设备1上是“被动”的
两种SDN设备均可用于业务。在一个实施例中,可以向每个SDN设备提供高达所设置的容量阈值(以允许故障转移)。例如,可以使用80%。如果需要全吞吐量冗余,则设备可以以50%运行。
所描述的技术提供了其中单个TOR故障不影响总体连接率的方案。
图15示出了高度可用且可扩展的设备集合中的业务流的示例。在一个实施例中,可以在相同SDN设备上的多个sNIC上供应来自单个VM的ENI。例如,来自SDN设备1的sNIC可以与来自SDN设备2的sNIC配对(其中每个sNIC仅参与单个配对关系)。可以提供配对流复制。单个sNIC可以处理多个ENI。
相同sNIC上的一些ENI可以在主动模式下运行,而相同sNIC上的一些其他ENI可以在被动模式下运行。
每个sNIC可以有两个VIP:一个VIP以通过BGP的短路径通告(由ENI在“主动”模式中使用),以及第二个VIP以通过BGP的较长路径通告(由ENI在“被动”模式中使用)。配对sNIC可以通告相同VIP集合。
配置可以包括基于ENI的(非基于卡的)流复制(流复制方向:“主动ENI”->“被动ENI”)。
单个ENI可以在多个sNIC上编程(每个sNIC具有不同的VIP)。
TOR(或VM所在的源节点)可以跨提供该ENI的sNIC的VIP对所选ENI执行业务负载均衡/拆分/分片。
高可用性架构
主动-被动模型
在(1)TOR/SDN设备之一发生故障或变得不可用,或(2)单个sNIC发生故障或变得不可用的情况下,主动-被动模型可确保高可用性。
设置详细信息
来自“SDN设备1”的每个sNIC可能具有来自“SDN设备2”的“配对”sNIC
“配对”sNIC可以为相同的ENI提供服务,每个ENI上设置的策略完全相同
“配对”sNIC可以连续地将主动流从主动sNIC复制到被动sNIC两个sNIC可以通过BGP通告相同的VIP
“SDN设备1”可以处于主动模式(通过BGP通告到它自己的优选的、更短的路径)
“SDN设备2”可以处于被动模式(通过边界网关协议(BGP)通告到它自己的不太优选的、更长的路径)
正常业务模式
sNIC处理的ENI的正常业务模式可以通过“SDN设备1”(主动)。
故障模式
在出现故障的情况下,BGP可以从可以被撤销的“SDN设备1”(先前处于主动状态)中路由,并且TOR可以切换到“SDN设备2”并将业务重定向到那里,从而确保业务的持续和不间断的客户体验。
配对
“SDN设备1”和“SDN设备2”之间的SNIC可以相互配对,以创建所描述的“主动-被动”模型。
在一个实施例中,控制平面可以负责在sNIC之间创建“配对”关系——选择哪些sNIC创建配对。
ENI策略配置
“配对”sNIC可以(由控制平面)配置相同的ENI和相同的策略。
控制平面可能负责在两个配对sNIC上配置相同的ENI和相同的策略。sNIC可能不需要复制ENI策略,因为它由控制平面处理。
流复制
一旦建立了“配对”关系,就可以开始复制和同步流。SNIC可能负责在“配对”关系中的sNIC之间复制和同步流。
在停机的情况下(例如,整个SDN设备在较长时间内不可用),控制平面可以改变这种“配对”关系。
在这种情况下,控制平面可以:
·从sNIC撤销“配对”关系(取消配对sNIC)
·与另一个sNIC建立新的“配对”关系(配对不同的sNIC)
当配对关系改变时,原始sNIC(当前处于主动状态)可以继续接收业务。
一旦建立了新的配对,就可以开始流传输/同步。从业务的角度来看,新的sNIC可以变为“被动”,并且为了确保不发生中断,新的sNIC不应该变为“主动”,直到所有的流都与原始sNIC完全同步为止。
过量配置
相同ENI可以由多个sNIC处理
可扩展性
由于所有连接将分布在多个sNIC上,因此过量配置和流拆分可以为客户提供高CP和高带宽。在各种实施例中,可以根据客户对规模的需求来配置不同数量的sNIC。
过量配置
在单个SDN设备中,可以在多个sNIC上配置单个ENI。可以在每个sNIC上设置相同的策略(sNIC VIP除外,其会有所不同)。
每个sNIC可以通告不同的VIP。
TOR(或源侧)可以被配置为将通过SDN设备的业务跨多个VIP拆分(扩展),以确保业务在所有过量配置的sNIC上均等分布。
此外,出于高可用性的目的(如上所述),也可以在次级SDN设备上的“配对”sNIC上设置相同的ENI。
流拆分
流拆分的目的是确保ECMP或任何其他机制将确保任何主动和同步的流集合实际上在被动节点上结束,并避免ECMP或其他机制登陆已同步的不同流集合。
流拆分可以由智能TOR执行,基于稳定的散列直接对源执行,或者直接对源节点(VM所在的节点)执行。
由于单个ENI将由多个VIP(过量配置)处理——例如。23.0.0.1、23.0.0.2、23.0.0.3,TOR可以同样地重写目的地址,以确保类似于“ECMP”协议中的结果(具有附加的显式目的地址重写)。
场景
单个TOR故障——单个TOR变为无法访问
业务模式如何变化
仍可通过第二TOR访问此TOR后的SDN设备。可以丢失50%的带宽,而不会丢失CPS。第二ToR现在必须处理两倍的带宽和两倍的CPS。假设sNIC实际上是CPS(而不是TOR)的瓶颈,则CPS不会丢失,唯一的影响是带宽。
TOR成为带宽和CPS的瓶颈
两台SDN设备仍在100%容量下操作
通过将负载拆分到多个sNIC,只会丢失50%来自故障的sNIC的连接,而不会丢失VM的全部负载。
单链路故障——TOR和单sNIC之间的单链路变为不可用
业务模式如何变化
sNIC仍由连接到第二个TOR的链路提供服务。
由于入口和出口都使用单个连接,因此sNIC的带宽可以损失50%对CPS无影响
通过将负载拆分到多个sNIC,只会丢失50%来自故障的sNIC的连接,而不会丢失VM的全部负载。
单个sNIC故障
·单个sNIC变为不可用
·此sNIC对于某些ENI设置为“主动”,对于其他ENI则设置为“被动”
·此sNIC不再为“主动”ENI提供业务服务
业务模式如何变化
此sNIC不再通过BGP通告自己的VIP
ToR使用针对相同VIP的较长路线
“配对”sNIC对所有ENI来说都是“主动”的(对于一些ENI来说已经是“主动”的,对于其他ENI来说是“被动的”,现在“被动的”ENI正在变成“主动的”)
由该sNIC提供服务的ENI的利用率从每个80%->50%(每个sNIC的容量损失3/8或37.5%)。这假设原始sNIC最多只分配了80%(以允许故障切换)。这个数字是可以调整的。
考虑到单个ENI跨多个sNIC进行负载均衡,其他sNIC不受影响,实际缩容(带宽+CPS)远低于30%。假设每个ENI分配5个sNIC,则单个sNIC的丢失会使容量降低7.5%。
先前:100%、100%、100%、100%、100%=100%容量
现在:62.5%,100%,100%,100%,100%=92.5%容量
接下来会发生什么
如果单个sNIC的中断持续,控制平面可以在另一个SDN设备(SDN设备3)上选择不同的sNIC,并发起与该sNIC的配对。可以提供备份和“空的”SDN设备来处理这种情形。
流同步可以在当前正在处理业务的sNIC(一半的“主动的”ENI)之间开始,并且可以将新的sNIC添加到配对关系中。一旦所有ENI的流同步完成,新配对sNIC就可以开始将其VIP宣告为“主动”(具有较短的BGP路径)。
业务再次切换到新的sNIC,因为它是主要的。
容量已完全恢复。
单个SDN设备故障(该设备上的所有sNIC)——该设备上的所有sNIC都变得不可访问
业务模式如何变化
·每个sNIC与来自第二个SDN设备的其他sNIC配对
·第二个SDN设备对所有ENI都变为主动
·容量减少(带宽和CPS)
接下来会发生什么
如果停机持续,控制平面将删除现有配对关系,分配新的SDN设备,并创建与该新SDN设备的配对关系。
使用完全同步的流复制
完全同步在配对sNIC之间提供一致的数据流同步,因为这些sNIC处于主动状态,并且接收新连接非常重要。
下面的算法允许在建立、重新建立或恢复配对关系后的同步过程中在一对sNIC之间进行一致的状态复制。
先决条件
以下示例使用颜色表示配对失败时的连接/流。然而,应当理解,可以使用其他方法,例如使用时间戳或可用于将流与诸如标志、位模式等配对相关联的另一指示。
至少有2种颜色(建议:用3比特表示8种颜色)
流程表中的所有连接/条目都是有颜色的
在两个sNIC(主sNIC和次sNIC)之间建立配对关系
存在将连接(流表中的条目)复制到配对设备的方法。
算法:
·当sNIC变为在线时,它选择一种颜色(“颜色A”)
·当sNIC开始接收业务时,它会创建新的流(在流表中创建条目)
·新的流被添加到具有所选颜色的流表(“颜色A”),并立即复制到配对设备(不复制颜色)
·所有连接/流使用相同的颜色,直到配对失败,如果没有主动的配对,则继续使用该颜色
·重新建立配对时,设备会将颜色“更改”为新颜色(“颜色B”)
·使用新颜色(“颜色B”)将新的流添加到流表中,并立即复制到配对设备(不复制颜色)。
·设备开始复制(同步)现有连接(创建了新配对的新设备或重新建立了配对的现有设备)
·同步方法只复制颜色与当前使用的颜色不同的连接(流表中的条目)(不同于“颜色B”)
·不会通过同步算法复制具有当前主动颜色(“颜色B”)的条目,因为它们是实时复制的(在创建时立即复制)。
·算法结束。流复制已完成。
上述算法确保两个同步并行进行:
·新更改的实时即时同步(在“完全同步”完成后将保持主动状态)
·现有连接的同步(在“完全同步”期间发生)
随着同步的发生,新连接以及现有连接状态的改变(无论颜色如何)都会立即实时复制(在同步算法之外)。
连接可以结束(FIN),并将导致主sNIC删除流并立即发送新的连接状态更改以关闭到配对设备的连接(甚至在现有连接被记录/同步到配对设备之前)。为了在配对设备端处理这种可能性,如果其表中不存在该连接,则应该忽略该更新消息。
当重新建立配对时,次sNIC可以清空业务表的整个状态以允许其接收清洁状态。
现在转到图16,示出了用于在虚拟计算环境的软件定义网络(SDN)中处理数据分组并实现策略的示例操作过程,其通过至少两个SDN设备实现,该SDN设备被配置为从虚拟计算环境的主机解聚SDN的策略实施。在一个实施例中,主机可以在通信地耦合到SDN设备的网络接口的服务器上实现。在一个实施例中,服务器托管多个虚拟机。在一个实施例中,服务器通信地耦合到至少两个架顶式交换机(ToR)的网络接口。在一个实施例中,SDN设备包括被配置为实现SDN设备的功能的多个智能网络接口卡(sNIC)。在一个实施例中,sNIC具有浮动网络接口,该浮动网络接口被配置为提供到虚拟计算环境的虚拟网络内的端点的虚拟端口连接。在一个实施例中,与第一SDN设备相关联的每个sNIC和与第二SDN设备相关联的sNIC配对。在一个实施例中,每个配对sNIC被配置为服务相同的浮动网络接口。
这样的操作过程可以由图1至图15所示的一个或多个组件提供。该操作过程可以在包括一个或多个计算设备的系统中实现。本领域的普通技术人员应当理解,本文公开的方法的操作不一定以任何特定的顺序呈现,并且以(多个)备选顺序执行一些或全部操作是可能的并且是预期的。为便于描述和说明,已按演示顺序介绍了这些操作。在不脱离所附权利要求的范围的情况下,可以添加、省略、一起执行和/或同时执行操作。
还应当理解,所示方法可以在任何时间结束,并且不需要全部执行。方法的一些或所有操作和/或实质上等同的操作可以通过执行包括在本文定义的计算机存储介质上的计算机可读指令来执行。在本说明书和权利要求书中使用的术语“计算机可读指令”及其变体在本文被广泛使用,以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费电子产品、其组合等。
应当理解,本文描述的逻辑操作被实现为(1)作为在诸如本文描述的计算系统上运行的计算机实现的动作或程序模块的序列和/或(2)作为计算系统内的互连的机器逻辑电路或电路模块。实现是取决于计算系统的性能和其他要求的选择问题。因此,逻辑运算可以在软件、固件、专用数字逻辑及其任意组合中实现。因此,尽管例程1600被描述为在系统上运行,但是可以理解,本文描述的例程1600和其他操作可以在单个计算设备或若干设备上执行。
参考图16,操作1601示出选择SDN设备之一作为主动SDN设备。在一个实施例中,另一个SDN设备是被动SDN设备。
操作1601之后可以是操作1603。操作1603示出通过边界网关协议(BGP)为每个配对sNIC通告相同的虚拟IP(VIP)。
操作1603之后可以是操作1605。操作1605示出针对每个配对sNIC将主动流从主动sNIC复制到被动sNIC。
操作1605之后可以是操作1607。操作1607示出了响应于主动SDN设备的故障从主动SDN设备撤销(withdraw)路由。
操作1607之后可以是操作1609。操作1609示出了使ToR将数据业务重定向到被动SDN设备。
图17示出了通用计算设备1700。在所示实施例中,计算设备1700包括经由输入/输出(I/O)接口1730耦合到系统存储器1717的一个或多个处理器1710a、1710b和/或1710n(其在本文可单数地称为“处理器1710”或在复数中称为“多个处理器1710”)。计算设备1700还包括耦合到I/O接口1730的网络接口1740。
在各种实施例中,计算设备1700可以是包括一个处理器1710的单处理器系统或包括多个处理器1710(例如,两个、四个、八个或另一个适当数量)的多处理器系统。处理器1710可以是能够执行指令的任何适当的处理器。例如,在各种实施例中,处理器1710可以是实现各种指令集架构(ISA)中的任何一种的通用或嵌入式处理器,诸如x1717、PowerPC、SPARC或MIPS ISA或任何其他适当的ISA。在多处理器系统中,每个处理器1710通常但不一定实现相同的ISA。
系统存储器1717可以被配置为存储(多个)处理器1710可访问的指令和数据。在各种实施例中,系统存储器1717可以使用任何适当的存储器技术来实现,例如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其他类型的存储器。在所示实施例中,实现一个或多个期望功能的程序指令和数据,诸如上述那些方法、技术和数据,被示为存储在系统存储器1720中作为代码1725和数据17217。
在一个实施例中,I/O接口1730可以被配置为协调处理器1710、系统存储器1717和设备中的任何外围设备(包括网络接口1740或其他外围接口)之间的I/O业务。在一些实施例中,I/O接口1730可以执行任何必要的协议、定时或其他数据转换,以将来自一个组件(例如,系统存储器1720)的数据信号转换为适合于另一组件(例如,处理器1710)使用的格式。在一些实施例中,I/O接口1730可以包括对通过各种类型的外围设备总线附连的设备的支持,例如,外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体。在一些实施例中,I/O接口1730的功能可以被分成两个或多个单独的组件。此外,在一些实施例中,I/O接口1730的一些或全部功能,例如到系统存储器1720的接口,可以直接结合到处理器1710中。
网络接口17170可以被配置为允许在计算设备1700和其他一个或多个设备17170之间交换数据,其附接到一个或多个网络17170,例如图1到图5所示的其他计算机系统或设备。在各种实施例中,网络接口1740可以支持经由任何适当的有线或无线通用数据网络的通信,例如,诸如各种类型的以太网络。此外,网络接口1740可以支持经由诸如模拟语音网络或数字光纤通信网络的电信/电话网络、经由诸如光纤通道SAN的存储区域网络或经由任何其他适当类型的网络和/或协议的通信。
在一些实施例中,系统存储器1720可以是计算机可访问介质的一个实施例,该计算机可访问介质被配置为存储如上所述的用于实现相应方法和装置的实施例的附图中的程序指令和数据。然而,在其他实施例中,可以在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。计算机可访问介质可以包括非瞬态存储介质或存储器介质,诸如磁或光介质,例如经由I/O接口1730耦合到计算设备1700的盘或DVD/CD。非易失性计算机可访问存储介质还可以包括任何易失性或非易失性介质,诸如RAM(例如SDRAM、DDRSDRAM、RDRAM、SRAM等)、ROM等,其可以包括在计算设备1700的一些实施例中作为系统存储器1720或另一类型的存储器。此外,计算机可访问介质可以包括经由诸如网络和/或无线链路的通信介质传送的传输介质或诸如电、电磁或数字信号的信号,诸如可以经由网络接口1740实现的。在各种实施例中,可以使用诸如图17中所示的那些多个计算设备的部分或全部来实现所描述的功能;例如,在各种不同设备和服务器上运行的软件组件可以协作来提供该功能。在一些实施例中,除了使用通用计算机系统来实现之外,还可以使用存储设备、网络设备或专用计算机系统来实现所述功能的部分,或者代替使用通用计算机系统来实现所描述功能的部分。本文使用的术语“计算设备”至少指所有这些类型的设备,而不限于这些类型的设备。
各种存储设备及其相关联的计算机可读介质为本文描述的计算设备提供非易失性存储。本文讨论的计算机可读介质可以指大容量存储设备,诸如固态驱动器、硬盘或CD-ROM驱动器。然而,本领域技术人员应当理解,计算机可读介质可以是可由计算设备访问的任何可用计算机存储介质。
作为示例而非限制,计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光或其他光存储、盒式磁带、磁带、磁盘存储或其他磁存储设备、或可用于存储所需信息并可由本文讨论的计算设备访问的任何其他介质。为了权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变体本身不包括波、信号和/或其他瞬时的和/或无形的通信介质。
对本文呈现的软件模块进行编码还可以改变本文呈现的计算机可读介质的物理结构。在本说明书的不同实现中,物理结构的具体转换可以取决于各种因素。这些因素的示例可以包括但不限于用于实现计算机可读介质的技术、计算机可读介质的特征是主存储还是次存储等。例如,如果计算机可读介质被实现为基于半导体的存储器,则可以通过转换半导体存储器的物理状态将本文公开的软件编码在计算机可读介质上。例如,软件可以转换构成半导体存储器的晶体管、电容器或其他分立电路元件的状态。该软件还可以转换这些组件的物理状态,以便在其上存储数据。
作为另一示例,本文公开的计算机可读介质可以使用磁或光技术来实现。在这样的实现中,当软件被编码在其中时,本文呈现的软件可以改变磁或光介质的物理状态。这些转换可以包括改变给定磁介质内的特定位置的磁特性。这些转换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。在不背离本描述的范围和精神的情况下,物理介质的其他转换也是可能的,前述示例仅为便于该讨论而提供。
鉴于以上所述,应当理解,为了存储和执行本文呈现的软件组件和/或功能,在所公开的计算设备中发生许多类型的物理转换。还可以预期,所公开的计算设备可以不包括图17中所示的所有所示组件,可以包括图17中未明确示出的其他组件,或者可以利用与图17中所示完全不同的架构。
尽管已经用特定于结构特征和/或方法动作的语言描述了各种配置,但是应当理解,在所附表示中定义的主题不一定限于所描述的特定特征或动作。相反,公开了特定特征和动作作为实现所要求保护的主题的示例形式。
本文使用的条件性语言,例如,除其他外,“能”、“可能”、“可”、“可以”、“例如”等,通常意在传达某些实施例包括某些特征、元素和/或步骤,而其他实施例不包括某些特征、元素和/或步骤,除非另外特别说明,或者在所使用的上下文中以其他方式理解。因此,这种条件语言通常并不意在暗示一个或多个实施例以任何方式需要特征、元素和/或步骤,或者一个或多个实施例必须包括用于在有或没有作者输入或提示的情况下确定在任何特定实施例中是否包括或将执行这些特征、元素和/或步骤的逻辑。术语“包括”、“包含”、“具有”等是同义的,并且以开放式方式包括地使用,并且不排除附加元素、特征、动作、操作等。此外,术语“或”的用法具有包容性(而不是排他性),因此当使用术语“或”连接元素列表时,术语“或”表示列表中的一个、一些或所有元素。
虽然已经描述了某些示例实施例,但是这些实施例仅作为示例来呈现,并且不旨在限制本文公开的发明的范围。因此,上述描述中的任何内容都不意味着任何特定的特征、特性、步骤、模块或块是必需的或不可缺少的。实际上,本文描述的新颖方法和系统可以以各种其他形式体现;此外,在不背离本文公开的发明的精神的情况下,可以对本文描述的方法和系统的形式进行各种省略、替换和改变。所附权利要求及其等同旨在涵盖属于本文公开的某些发明的范围和精神的形式或修改。
应当认识到,说明书中提及的任何关于“第一”、“第二”等项目和/或抽象概念不是也不应该被解释为必然对应于权利要求中的“第一”、“第二”等要素的任何提及。具体地,在发明内容和/或下面的具体实施方式中,诸如例如计算集群的各个计算设备和/或操作状态之类的项和/或抽象概念可以通过数字标识来区分,而没有对应于权利要求的此类标识或甚至发明内容和/或具体实施方式的其他段落。例如,在本公开的段落内对计算集群的“第一操作状态”和“第二操作状态”的任何指定仅用于区分该特定段落内的计算集群的两个不同的操作状态——不是任何其他段落,尤其不是权利要求。
尽管已经用结构特征和/或方法动作特有的语言描述了各种技术,但是应当理解,在所附表示中定义的主题不一定限于所描述的特定特征或动作。相反,具体特征和动作被公开作为实施所要求保护的标的的示例形式。本文提供的公开内容还包括以下条款中提出的主题:
条款1:
一种用于在虚拟计算环境的软件定义网络(SDN)中处理数据分组和实现策略的方法,其通过至少两个SDN设备实现,所述至少两个SDN设备被配置为从所述虚拟计算环境的主机解聚所述SDN的策略实施,所述主机在通信地耦合到所述SDN设备的网络接口的服务器上实现,所述服务器托管多个虚拟机,所述服务器通信地耦合到至少两个架顶式交换机(ToR)的网络接口,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC),具有浮动网络接口的所述sNIC被配置为提供到所述虚拟计算环境的虚拟网络内的端点的虚拟端口连接,其中:
与所述第一SDN设备相关联的每个sNIC和与所述第二SDN设备相关联的sNIC配对;
每个配对的sNIC被配置为服务相同浮动网络接口;
所述方法包括:
选择所述SDN设备中的一个作为主动SDN设备,其中另一个SDN设备是被动SDN设备;
通过边界网关协议(BGP)为每个配对的sNIC通告相同虚拟IP(VIP);
针对每个配对的sNIC,将主动流从主动sNIC复制到被动sNIC;以及
响应于主动SDN设备的故障:
撤销从所述主动SDN设备的路由;以及
使所述ToR将数据业务重定向到所述被动SDN设备。
条款2:根据条款1所述的方法,还包括:
从远离所述虚拟计算环境的远程设备接收寻址到由所述虚拟机中的一个虚拟机托管的虚拟网络中的端点的数据分组,所述数据分组包括指示远程设备的标识符;
基于所述标识符:
确定所述数据分组与所述虚拟网络相关联;以及
基于所确定的关联,将多个策略中的一个策略映射到所述虚拟网络的数据流;
根据所映射的策略修改所述分组;其中所映射的策略能够基于所述数据流动态调整;以及
将修改后的分组转发到所述虚拟网络中的端点。
条款3:根据条款1-2中任一项所述的方法,其中所述VIP是使用BGP经由短路径通告的,还包括使用BGP通告利用长路径通告的第二VIP,其中所述第二VIP在处于被动模式时由所述浮动网络接口使用。
条款4:根据条款1-3中任一项所述的方法,其中配对的sNIC通告相同VIP集合。
条款5:根据条款1-4中任一项所述的方法,其中流复制基于所述浮动网络接口,并且流复制的方向是主动到被动。
条款6:根据条款1-5中任一项所述的方法,其中在多个sNIC上编程单个浮动网络接口。
条款7:一种系统,包括:
通信地耦合到至少两个软件定义网络(SDN)设备的多个服务器,所述SDN设备被配置为从所述虚拟计算环境的主机解除虚拟计算环境的SDN的策略实施,所述主机在通信地耦合到所述SDN设备的网络接口的服务器上实现,所述服务器托管多个虚拟机,所述服务器通信地耦合到至少两个架顶式交换机(ToR)的网络接口,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC),具有浮动网络接口的所述sNIC被配置为提供到所述虚拟计算环境的虚拟网络内的端点的虚拟端口连接,
其中:
与所述第一SDN设备相关联的每个sNIC和与所述第二SDN设备相关联的sNIC配对;
每个配对的sNIC被配置为服务相同浮动网络接口;
所述系统被配置为:
选择所述SDN设备中的一个作为主动SDN设备,其中另一个SDN设备是被动SDN设备;
通过边界网关协议(BGP)为每个配对的sNIC通告相同虚拟IP(VIP);
针对每个配对的sNIC,将主动流从主动sNIC复制到被动sNIC;以及
响应于主动SDN设备的故障,撤销从所述主动SDN设备的路由;以及使所述ToR将数据业务重定向到所述被动SDN设备。
条款8:根据条款7所述的系统,其中所述ToR被配置为跨卡的VIP为所选浮动网络接口执行业务负载平衡、拆分或分片,在所述卡上提供所选浮动网络接口。
条款9:根据条款7和8中任一项所述的系统,其中所述虚拟计算环境的控制平面被配置为创建sNIC之间的配对关系,其中配对的sNIC被配置有相同ENI和策略。
条款10:根据条款7-9中任一项所述的系统,其中响应于在阈值时间段内不可用的SDN设备的故障:
从相关联的sNIC中撤销所述配对关系;以及
与另一个sNIC建立新的配对。
条款11:根据条款7-10中任一项所述的系统,其中所述SDN设备被实现为分布式设备,其中所述sNIC在物理上分布在一个或多个架顶式交换机之间,所述服务器通信地耦合到所述架顶式交换机的网络接口,使得所述服务器的每个服务器具有到所述架顶式交换机的每个sNIC的可切换通信路径。
条款12:根据条款7-11中任一项所述的系统,其中所述VIP是使用BGP经由短路径通告的,还包括使用BGP通告利用长路径通告的第二VIP,其中所述第二VIP在处于被动模式时由所述浮动网络接口使用。
条款13:根据条款7-12中任一项所述的系统,其中配对的sNIC通告相同VIP集合。
条款14.根据条款7-13中任一项所述的系统,其中流复制基于所述浮动网络接口,并且流复制的方向是主动到被动。
条款15:一种数据中心机架,包括:
通信地耦合到至少两个软件定义网络(SDN)设备的多个服务器,所述SDN设备被配置为从所述虚拟计算环境的主机解除虚拟计算环境的SDN的策略实施,所述主机在通信地耦合到所述SDN设备的网络接口的服务器上实现,所述服务器托管多个虚拟机,所述服务器通信地耦合到至少两个架顶式交换机(ToR)的网络接口,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC),具有浮动网络接口的所述sNIC被配置为提供到所述虚拟计算环境的虚拟网络内的端点的虚拟端口连接,
其中:
与所述第一SDN设备相关联的每个sNIC和与所述第二SDN设备相关联的sNIC配对;
每个配对的sNIC被配置为服务相同浮动网络接口;
所述数据中心机架被配置为:
选择所述SDN设备中的一个作为主动SDN设备,其中另一个SDN设备是被动SDN设备;
通过边界网关协议(BGP)为每个配对的sNIC通告相同虚拟IP(VIP);
针对每个配对的sNIC,将主动流从主动sNIC复制到被动sNIC;以及
响应于主动SDN设备的故障,撤销从所述主动SDN设备的路由;以及使所述ToR将数据业务重定向到所述被动SDN设备。
条款16:根据条款15所述的计算环境,其中所述VIP是使用BGP经由短路径通告的,还包括使用BGP通告利用长路径通告的第二VIP,其中所述第二VIP在处于被动模式时由所述浮动网络接口使用。
条款17:根据条款15和16中任一项所述的计算环境,其中配对的sNIC通告相同VIP集合。
条款18:根据条款15-17中任一项所述的计算环境,其中流复制基于所述浮动网络接口,并且流复制的方向是主动到被动。
条款19:根据条款15-18中任一项所述的计算环境,其中在多个sNIC上编程单个浮动网络接口。
条款20:根据条款15-19中任一项所述的系统,其中所述ToR被配置为跨卡的VIP为所选浮动网络接口执行业务负载平衡、拆分或分片,在所述卡上提供所选浮动网络接口。
本文提供的公开内容还包括以下条款中提出的主题:
条款1:一种用于通过基于硬件的联网设备在虚拟计算环境中处理数据分组的方法,所述基于硬件的联网设备被配置为解聚对来自所述虚拟计算环境的主机的数据分组的处理,所述基于硬件的联网设备包括实现指示所述虚拟计算环境中的数据流的分组处理图的多个行为模型的基于硬件的组件,所述方法包括:
由所述基于硬件的联网设备接收具有来自或去往所述虚拟计算环境的虚拟网络中的端点的源或目的地的数据分组;
确定所述数据分组是去往或来自所述端点的数据流的第一分组;
基于所述确定,将所述行为模型之一映射到所述数据流;
根据所映射的行为模型修改所述分组,其中在所述基于硬件的组件中处理所映射的行为模型;
存储所述数据流的状态;以及
基于所存储的状态来处理所述数据流的后续分组。
条款2:根据条款1所述的方法,还包括:
确定接收到的后续分组是所述数据流的最后一个分组;
响应于所述确定,移除所述数据流的状态。
条款3:根据条款1-2中任一项所述的方法,其中所述多个行为模型包括所述虚拟计算环境的数据流的阈值数量或百分比。
条款4:根据条款1-3中任一项所述的方法,其中所述基于硬件的组件是灵活的硬件引擎、专用处理器或可编程电路之一。
条款5:根据条款1-4中任一项所述的方法,其中所述基于硬件的组件包括入站分组处理管线和出站分组处理管线。
条款6:根据条款1-5中任一项所述的方法,其中所述流被存储在GFT中的所述基于硬件的组件中。
条款7:根据条款1-6中任一项所述的方法,其中所述基于硬件的组件包括NAT层、VNET层、解封装层或转换层中的一个或多个。
条款8:根据条款1-7中任一项所述的方法,其中所述入站分组处理管线和所述出站分组处理管线包括ACL管线。
条款9:一种基于硬件的联网设备,其被配置为解聚对来自虚拟计算环境的主机的数据分组的处理,所述基于硬件的联网设备包括基于硬件的组件,所述基于硬件的组件实现指示所述虚拟计算环境中的数据流的分组处理图的多个行为模型,所述基于硬件的联网设备被配置为:
接收具有来自或去往虚拟计算环境的虚拟网络中的端点的源或目的地的数据分组;
确定所述数据分组是去往或来自所述端点的数据流的第一分组;
基于所述确定,将所述行为模型之一映射到所述数据流;
根据所映射的行为模型修改所述分组,其中在所述基于硬件的组件中处理所映射的行为模型;
存储所述数据流的状态;以及
基于所存储的状态处理所述数据流的后续分组。
条款10:根据条款9所述的基于硬件的联网设备,其中所述基于硬件的联网设备还被配置为对VNET到VNET的数据业务执行分组转换。
条款11:根据条款9和10中任一项所述的基于硬件的联网设备,其中所述基于硬件的联网设备还被配置为对负载均衡业务执行分组转换。
条款12:根据条款9-11中任一项所述的基于硬件的联网设备,其中所述基于硬件的联网设备还被配置为对专用链路业务执行分组转换。
条款13:根据条款9-12中任一项所述的基于硬件的联网设备,其中所述基于硬件的联网设备还被配置为对服务隧道执行分组转换。
条款14:根据条款9-13中任一项所述的基于硬件的联网设备,其中所述基于硬件的联网设备还被配置为对VNET加密、遥测、BGP、调试或流复制中的一个或多个执行分组转换。
条款15:根据条款9-14中任一项所述的基于硬件的联网设备,其中所述基于硬件的联网设备还被配置为:
确定接收到的后续分组是所述数据流的最后一个分组;
响应于所述确定,移除所述数据流的状态。
条款16:一种计算环境,包括多个计算设备和一个或多个基于硬件的联网设备,所述一个或多个基于硬件的联网设备被配置为接聚对来自所述多个计算设备的数据分组的处理,所述基于硬件的联网设备包括实现指示所述计算环境中的数据流的分组处理图的多个行为模型的基于硬件的组件,所述基于硬件的联网设备被配置为:
接收具有来自或去往虚拟计算环境的虚拟网络中的端点的源或目的地的数据分组;
确定所述数据分组是去往或来自所述端点的数据流的第一分组;
基于所述确定,将所述行为模型之一映射到所述数据流;
根据所映射的行为模型修改所述分组,其中在所述基于硬件的组件中处理所映射的行为模型;
存储所述数据流的状态;以及
基于所存储的状态来处理所述数据流的后续分组。
条款17:根据条款16所述的计算环境,其中所述多个行为模型包括所述虚拟计算环境的数据流的阈值数量或百分比。
条款18:根据条款16和17中任一项所述的计算环境,其中所述基于硬件的组件是灵活的硬件引擎、专用处理器或可编程电路之一。
条款19:根据条款16-18中任一项所述的计算环境,其中所述基于硬件的组件包括入站分组处理管线和出站分组处理管线。
条款20:根据条款16-19中任一项所述的计算环境,其中所述流被存储在GFT中的所述基于硬件的组件中。
本文提供的公开内容还包括以下条款中提出的主题:
条款1:
一种用于在虚拟计算环境的软件定义网络(SDN)中处理数据分组和实现策略的方法,其通过至少一个SDN设备实现,所述至少一个SDN设备被配置为从所述虚拟计算环境的主机解聚所述SDN的策略实施,所述主机在通信地耦合到所述SDN设备的网络接口的服务器上实现,所述服务器托管多个虚拟机,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC),所述方法包括:
在所述SDN设备处,从远离所述虚拟计算环境的远程设备接收寻址到由所述虚拟机中的一个虚拟机托管的虚拟网络中的端点的数据分组,所述数据分组包括指示远程设备的标识符;
基于所述标识符:
确定所述数据分组与所述虚拟网络相关联;以及
基于所确定的关联,将多个策略中的一个策略映射到所述虚拟网络的数据流;
由所述SDN设备根据所映射的策略修改所述分组;其中所映射的策略能够基于所述数据流动态调整;以及
将修改后的分组转发到所述虚拟网络中的端点。
条款2:根据条款1所述的方法,其中所述SDN设备被实现为分布式设备,其中所述sNIC在物理上分布在所述服务器之间。
条款3:根据条款1-2中任一项所述的方法,其中所述SDN设备被实现为通信地耦合到至少两个架顶式交换机的两个物理设备,所述服务器通信地耦合到所述架顶式交换机的网络接口,使得所述服务器的每个服务器具有到所述物理设备的每个sNIC的可切换通信路径。
条款4:根据条款1-3中任一项所述的方法,其中存储业务绕过所述sNIC。
条款5:根据条款1-4中任一项所述的方法,其中所述SDN设备被实现为分布式设备,其中所述sNIC在物理上分布在一个或多个架顶式交换机之间,所述服务器通信地耦合到所述架顶式交换机的网络接口,使得所述服务器的每个服务器具有到所述架顶式交换机的每个sNIC的可切换通信路径。
条款6:根据条款1-5中任一项所述的方法,其中至少两个架顶式交换机配置有SDN代理,所述SDN代理被配置为管理所述SDN设备的功能。
条款7:一种系统,包括:
通信地耦合到至少一个软件定义网络(SDN)设备的多个服务器,所述SDN设备被配置为从所述虚拟计算环境的主机解除虚拟计算环境的SDN的策略实施,所述主机在通信地耦合到所述SDN设备的网络接口的服务器上实现,所述服务器托管多个虚拟机,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC);
所述系统被配置为:
从远离所述虚拟计算环境的设备接收寻址到由所述虚拟机中的一个虚拟机托管的虚拟网络中的端点的数据分组,所述数据分组包括指示远程设备的标识符;
基于所述标识符:
确定所述数据分组与所述虚拟网络相关联;以及
基于所确定的关联,将多个策略中的一个策略映射到所述虚拟网络的数据流;
由所述SDN设备根据所映射的策略修改所述分组;其中所映射的策略能够基于所述数据流动态调整;以及
将修改后的分组转发到所述虚拟网络中的端点。
条款8:根据条款7所述的系统,其中所述SDN设备被实现为分布式设备,其中所述sNIC在物理上分布在所述多个服务器之间。
条款9:根据条款7和8中任一项所述的系统,其中所述SDN设备被实现为通信地耦合到至少两个架顶式交换机的两个物理设备,所述服务器通信地耦合到所述架顶式交换机的网络接口,使得所述服务器的每个服务器具有到所述物理设备的每个sNIC的可切换通信路径。
条款10:根据条款7-9中任一项所述的系统,其中存储业务绕过所述sNIC。
条款11:根据条款7-10中任一项所述的系统,其中所述SDN设备被实现为分布式设备,其中所述sNIC在物理上分布在一个或多个架顶式交换机之间,所述服务器通信地耦合到所述架顶式交换机的网络接口,使得所述服务器的每个服务器具有到所述架顶式交换机的每个sNIC的可切换通信路径。
条款12:根据条款7-11中任一项所述的系统,其中至少两个架顶式交换机配置有SDN代理,所述SDN代理被配置为管理所述SDN设备的功能。
条款13:根据条款7-12中任一项所述的系统,其中所述策略被应用于所述虚拟网络中选择性地放置的网络跳。
条款14:根据条款7-13中任一项所述的系统,其中所述SDN设备被配置为在所述数据业务离开其源之后并且在所述数据业务到达其目的地之前将所述虚拟计算环境的策略应用于所述虚拟网络上的数据业务。
条款15:一种数据中心机架,包括:
多个服务器,所述服务器通信地耦合到至少一个软件定义网络(SDN)设备,所述SDN设备被配置为从所述虚拟计算环境的主机解除虚拟计算环境的SDN的策略实施,所述主机在通信地耦合到所述SDN设备的网络接口的服务器上实现,所述服务器托管多个虚拟机,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC);
所述数据中心机架被配置为:
从远离所述虚拟计算环境的软件定义网络(SDN)的设备接收寻址到由所述虚拟机中的一个虚拟机托管的虚拟网络中的端点的数据分组,所述数据分组包括指示远程设备的标识符;
基于所述标识符:
确定所述数据分组与所述虚拟网络相关联;以及
基于所确定的关联,将多个策略中的一个策略映射到所述虚拟网络的数据流;
由所述SDN设备根据所映射的策略修改所述分组;其中所映射的策略基于能够所述数据流动态调整;以及
将修改后的分组转发到所述虚拟网络中的端点
条款16:根据条款15所述的计算环境,其中所述SDN设备被实现为分布式设备,其中所述sNIC在物理上分布在所述多个服务器之间。
条款17:根据条款15和16中任一项所述的计算环境,其中所述SDN设备被实现为通信地耦合到至少两个架顶式交换机的两个物理设备,所述服务器通信地耦合到所述架顶式交换机的网络接口,使得所述服务器的每个服务器具有到所述物理设备的每个sNIC的可切换通信路径。
条款18:根据条款15-17中任一项所述的计算环境,其中存储业务绕过所述sNIC。
条款19:根据条款15-18中任一项所述的计算环境,其中所述SDN设备被实现为分布式设备,其中所述sNIC在物理上分布在一个或多个架顶式交换机之间,所述服务器通信地耦合到所述架顶式交换机的网络接口,使得所述服务器的每个服务器具有到所述架顶式交换机的每个sNIC的可切换通信路径。
条款20:根据条款15-19中任一项所述的计算环境,其中至少两个架顶式交换机配置有SDN代理,所述SDN代理被配置为管理所述SDN设备的功能。
本文提供的公开内容还包括以下条款中提出的主题:
条款1:
一种用于在虚拟计算环境的软件定义网络(SDN)中处理数据分组和实现策略的方法,其通过至少两个SDN设备实现,所述至少两个SDN设备被配置为从所述虚拟计算环境的主机解聚所述SDN的策略实施,所述主机在通信地耦合到所述SDN设备的网络接口的服务器上实现,所述服务器托管多个虚拟机,所述服务器通信地耦合到至少两个架顶式交换机(ToR)的网络接口,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC),具有浮动网络接口的所述sNIC被配置为提供到所述虚拟计算环境的虚拟网络内的端点的虚拟端口连接,其中:
与所述第一SDN设备相关联的每个sNIC和与所述第二SDN设备相关联的sNIC配对;
每个配对的sNIC被配置为服务多个浮动网络接口;
每个浮动网络接口由多个sNIC服务;
所述方法包括:
选择所述SDN设备中的一个作为主动SDN设备,其中另一个SDN设备是被动SDN设备;
通过边界网关协议(BGP)为每个配对的sNIC通告不同的虚拟IP(VIP);
配置每个浮动网络接口以由多个VIP服务;
由所述ToR将数据业务平均拆分到不同的VIP;以及
当被动sNIC变为主动状态时,在配对的sNIC之间执行流同步过程。
条款2:根据条款1所述的方法,其中所述流同步过程包括:
实现至少两种颜色;
将流表中的每个连接和条目与颜色相关联;
在主sNIC和次sNIC之间建立配对关系,其中到配对设备的连接可以被复制;
将颜色分配给上线的sNIC;
当在线sNIC接收到业务时,将具有所分配颜色的新流添加到流表,并将所复制的新流添加到配对的sNIC,其中所有连接使用相同的颜色,直到配对失败,并且如果没有主动配对,则继续使用相同的颜色;
当重新建立配对时,将所分配的颜色更改为新的颜色;
针对添加到所述流表的新流使用新颜色,并且将新流复制到配对的sNIC;以及
将现有连接复制到创建了新配对的新设备或重新建立配对的现有设备,其中:
仅复制具有与主动使用的颜色不同的颜色的连接;
不复制具有当前主动颜色的条目。
条款3:根据条款1-2中任一项所述的方法,还包括当重新建立配对时清除次sNIC的流表的状态。
条款4:根据条款1-3中任一项所述的方法,还包括当连接不存在于流表时忽略更新消息。
条款5:根据条款1-4中任一项所述的方法,其中响应于单卡sNIC:
如果单个sNIC的中断仍然存在,则在另一个SDN设备上选择不同的sNIC并且发起与所述另一个设备上的sNIC的配对;以及
当所有浮动网络接口的流同步完成时,通告所选sNIC的VIP为主动状态。
条款6:根据条款1-5中任一项所述的方法,其中响应于单个SDN设备故障:如果所述单个SDN设备的中断仍然存在,则移除现有配对关系,分配新的SDN设备,并且创建与所述新的SDN设备的配对关系。
条款7:一种系统,包括:
通信地耦合到至少两个软件定义网络(SDN)设备的多个服务器,所述SDN设备被配置为从所述虚拟计算环境的主机解除虚拟计算环境的SDN的策略实施,所述主机在通信地耦合到所述SDN设备的网络接口的服务器上实现,所述服务器托管多个虚拟机,所述服务器通信地耦合到至少两个架顶式交换机(ToR)的网络接口,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC),具有浮动网络接口的所述sNIC被配置为提供到所述虚拟计算环境的虚拟网络内的端点的虚拟端口连接,其中:
与所述第一SDN设备相关联的每个sNIC和与所述第二SDN设备相关联的sNIC配对;
每个配对的sNIC被配置为服务多个浮动网络接口;
每个浮动网络接口由多个sNIC服务;
所述系统被配置为:
选择所述SDN设备中的一个作为主动SDN设备,其中另一个SDN设备是被动SDN设备;
通过边界网关协议(BGP)为每个配对的sNIC通告不同的虚拟IP(VIP);
配置每个浮动网络接口以由多个VIP服务;
由所述ToR将数据业务平均拆分到不同的VIP;以及
当被动sNIC变为主动状态时,在配对的sNIC之间执行流同步过程。
条款8:根据条款7所述的系统,其中所述流同步过程包括:
实现至少两种颜色;
将流表中的每个连接和条目与颜色相关联;
在主sNIC和次sNIC之间建立配对关系,其中到配对设备的连接可以被复制;
将颜色分配给上线的sNIC;以及
当在线sNIC接收到业务时,将具有所分配颜色的新流添加到流表,并将所复制的新流添加到配对的sNIC,其中所有连接使用相同的颜色,直到配对失败,并且如果没有主动配对,则继续使用相同的颜色;
当重新建立配对时,将所分配的颜色更改为新的颜色;
针对添加到所述流表的新流使用新颜色,并且将新流复制到配对的sNIC;
将现有连接复制到创建了新配对的新设备或重新建立配对的现有设备,其中:
仅复制具有与主动使用的颜色不同的颜色的连接;
不复制具有当前主动颜色的条目。
条款9:根据条款7和8中的任一项所述的系统,还包括当重新建立配对时清除次sNIC的流表的状态。
条款10:根据条款7-9中任一项所述的系统,还包括当连接不存在于流表时忽略更新消息。
条款11:根据条款7-10中任一项所述的系统,其中响应于单卡sNIC:
如果单个sNIC的中断仍然存在,则在另一个SDN设备上选择不同的sNIC并且发起与所述另一个设备上的sNIC的配对;以及
当所有浮动网络接口的流同步完成时,通告所选sNIC的VIP为主动状态。
条款12:根据条款7-11中任一项所述的系统,其中响应于单个SDN设备故障:如果所述单个SDN设备的中断仍然存在,则移除现有配对关系,分配新的SDN设备,并且创建与所述新的SDN设备的配对关系。
条款13:根据条款7-12中任一项所述的系统,其中实现了由3比特表示的8种颜色。
条款14:根据条款7-13中任一项所述的系统,其中由智能ToR基于稳定散列对源执行流拆分,或者直接对源节点执行流拆分。
条款15:一种数据中心机架,包括:
通信地耦合到至少两个软件定义网络(SDN)设备的多个服务器,所述SDN设备被配置为从所述虚拟计算环境的主机解除虚拟计算环境的SDN的策略实施,所述主机在通信地耦合到所述SDN设备的网络接口的服务器上实现,所述服务器托管多个虚拟机,所述服务器通信地耦合到至少两个架顶式交换机(ToR)的网络接口,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC),具有浮动网络接口的所述sNIC被配置为提供到所述虚拟计算环境的虚拟网络内的端点的虚拟端口连接,其中:
与所述第一SDN设备相关联的每个sNIC和与所述第二SDN设备相关联的sNIC配对;
每个配对的sNIC被配置为服务多个浮动网络接口;
每个浮动网络接口由多个sNIC服务;
所述数据中心机架被配置为:
选择所述SDN设备中的一个作为主动SDN设备,其中另一个SDN设备是被动SDN设备;
通过边界网关协议(BGP)为每个配对的sNIC通告不同的虚拟IP(VIP);
配置每个浮动网络接口以由多个VIP服务;
由所述ToR将数据业务平均拆分到不同的VIP;以及
当被动sNIC变为主动状态时,在配对的sNIC之间执行流同步过程。
条款16:根据条款14所述的计算环境,其中所述流同步过程包括:
实现至少两种颜色;
将流表中的每个连接和条目与颜色相关联;
在主sNIC和次sNIC之间建立配对关系,其中到配对设备的连接可以被复制;
将颜色分配给上线的sNIC;
当在线sNIC接收到业务时,将具有所分配颜色的新流添加到流表,并将所复制的新流添加到配对的sNIC,其中所有连接使用相同的颜色,直到配对失败,并且如果没有主动配对,则继续使用相同的颜色;
当重新建立配对时,将所分配的颜色更改为新的颜色;
针对添加到所述流表的新流使用新颜色,并且将新流复制到配对的sNIC;以及
将现有连接复制到创建了新配对的新设备或重新建立配对的现有设备,其中:
仅复制具有与主动使用的颜色不同的颜色的连接;
不复制具有当前主动颜色的条目。
条款17:根据条款15和16中的任一项所述的计算环境,还包括当重新建立配对时清除次sNIC的流表的状态。
条款18:根据条款15-17中任一项所述的计算环境,还包括当连接不存在于流表时忽略更新消息。
条款19:根据条款15-18中任一项所述的计算环境,其中响应于单卡sNIC:
如果单个sNIC的中断仍然存在,则在另一个SDN设备上选择不同的sNIC并且发起与所述另一个设备上的sNIC的配对;以及
当所有浮动网络接口的流同步完成时,通告所选sNIC的VIP为主动状态。
条款20:根据条款15-19中任一项所述的计算环境,其中响应于单个SDN设备故障:如果所述单个SDN设备的中断仍然存在,则移除现有配对关系,分配新的SDN设备,并且创建与所述新的SDN设备的配对关系。

Claims (15)

1.一种用于在虚拟计算环境的软件定义网络(SDN)中处理数据分组和实现策略的方法,所述方法通过至少两个SDN设备实现,所述至少两个SDN设备被配置为从所述虚拟计算环境的主机解聚所述SDN的策略实施,所述主机在被通信地耦合到所述SDN设备的网络接口的服务器上被实现,所述服务器托管多个虚拟机,所述服务器被通信地耦合到至少两个架顶式交换机(ToR)的网络接口,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC),具有浮动网络接口的所述sNIC被配置为提供到所述虚拟计算环境的虚拟网络内的端点的虚拟端口连接,其中:
与所述第一SDN设备相关联的每个sNIC和与所述第二SDN设备相关联的sNIC配对;
每个配对的sNIC被配置为服务相同浮动网络接口;
所述方法包括:
选择所述SDN设备中的一个SDN设备作为主动SDN设备,其中另一个SDN设备是被动SDN设备;
经由边界网关协议(BGP)为每个配对的sNIC通告相同虚拟IP(VIP);
针对每个配对的sNIC,将主动流从主动sNIC复制到被动sNIC;以及
响应于所述主动SDN设备的故障:
撤销从所述主动SDN设备的路由;以及
使所述ToR将数据业务重定向到所述被动SDN设备。
2.根据权利要求1所述的方法,还包括:
从远离所述虚拟计算环境的远程设备接收被寻址到由所述虚拟机中的一个虚拟机托管的虚拟网络中的端点的数据分组,所述数据分组包括指示所述远程设备的标识符;
基于所述标识符:
确定所述数据分组与所述虚拟网络相关联;以及
基于所确定的关联,将多个策略中的一个策略映射到所述虚拟网络的数据流;
根据所映射的策略来修改所述分组;其中所映射的策略能够基于所述数据流而被动态调整;以及
将修改后的所述分组转发到所述虚拟网络中的所述端点。
3.根据权利要求1所述的方法,其中所述VIP是使用BGP经由短路径被通告的,所述方法还包括使用BGP来通告利用长路径被通告的第二VIP,其中所述第二VIP在处于被动模式时由所述浮动网络接口使用。
4.根据权利要求1所述的方法,其中配对的sNIC通告相同VIP集合。
5.根据权利要求1所述的方法,其中流复制基于所述浮动网络接口,并且流复制的方向是主动到被动。
6.根据权利要求1所述的方法,其中单个浮动网络接口在多个sNIC上被编程。
7.一种系统,包括:
被通信地耦合到至少两个软件定义网络(SDN)设备的多个服务器,所述SDN设备被配置为从所述虚拟计算环境的主机解除虚拟计算环境的SDN的策略实施,所述主机在被通信地耦合到所述SDN设备的网络接口的服务器上被实现,所述服务器托管多个虚拟机,所述服务器被通信地耦合到至少两个架顶式交换机(ToR)的网络接口,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC),具有浮动网络接口的所述sNIC被配置为提供到所述虚拟计算环境的虚拟网络内的端点的虚拟端口连接,
其中:
与所述第一SDN设备相关联的每个sNIC和与所述第二SDN设备相关联的sNIC配对;
每个配对的sNIC被配置为服务相同浮动网络接口;
所述系统被配置为:
选择所述SDN设备中的一个SDN设备作为主动SDN设备,其中另一个SDN设备是被动SDN设备;
经由边界网关协议(BGP)为每个配对的sNIC通告相同虚拟IP(VIP);
针对每个配对的sNIC,将主动流从主动sNIC复制到被动sNIC;以及
响应于所述主动SDN设备的故障,撤销从所述主动SDN设备的路由;以及使所述ToR将数据业务重定向到所述被动SDN设备。
8.根据权利要求7所述的系统,其中所述ToR被配置为跨卡的VIP为所选浮动网络接口执行业务负载平衡、拆分或分片,在所述卡上提供所选浮动网络接口。
9.根据权利要求7所述的系统,其中所述虚拟计算环境的控制平面被配置为创建sNIC之间的配对关系,其中所述配对的sNIC被配置有相同ENI和策略。
10.根据权利要求9所述的系统,其中响应于在阈值时间段内不可用的SDN设备的故障:
从相关联的sNIC撤销所述配对关系;以及
与另一个sNIC建立新的配对。
11.根据权利要求7所述的系统,其中所述SDN设备被实现为分布式设备,其中所述sNIC在物理上被分布在一个或多个架顶式交换机之间,所述服务器被通信地耦合到所述架顶式交换机的网络接口,使得所述服务器中的每个服务器具有到所述架顶式交换机的每个sNIC的可切换通信路径。
12.根据权利要求9所述的系统,其中所述VIP是使用BGP经由短路径被通告的,所述系统还包括使用BGP来通告利用长路径被通告的第二VIP,其中所述第二VIP在处于被动模式时由所述浮动网络接口使用。
13.根据权利要求7所述的系统,其中配对的sNIC通告相同VIP集合。
14.根据权利要求7所述的系统,其中流复制基于所述浮动网络接口,并且流复制的方向是主动到被动。
15.一种数据中心机架,包括:
被通信地耦合到至少两个软件定义网络(SDN)设备的多个服务器,所述SDN设备被配置为从所述虚拟计算环境的主机解除虚拟计算环境的SDN的策略实施,所述主机在被通信地耦合到所述SDN设备的网络接口的服务器上被实现,所述服务器托管多个虚拟机,所述服务器被通信地耦合到至少两个架顶式交换机(ToR)的网络接口,所述SDN设备包括被配置为实现所述SDN设备的功能的多个智能网络接口卡(sNIC),具有浮动网络接口的所述sNIC被配置为提供到所述虚拟计算环境的虚拟网络内的端点的虚拟端口连接,
其中:
与所述第一SDN设备相关联的每个sNIC和与所述第二SDN设备相关联的sNIC配对;
每个配对的sNIC被配置为服务相同浮动网络接口;
所述数据中心机架被配置为:
选择所述SDN设备中的一个SDN设备作为主动SDN设备,其中另一个SDN设备是被动SDN设备;
经由边界网关协议(BGP)为每个配对的sNIC通告相同虚拟IP(VIP);
针对每个配对的sNIC,将主动流从主动sNIC复制到被动sNIC;以及
响应于所述主动SDN设备的故障,撤销从所述主动SDN设备的路由;以及使所述ToR将数据业务重定向到所述被动SDN设备。
CN202280027082.1A 2021-04-09 2022-03-21 基于硬件的分组流处理的高可用性 Pending CN117178533A (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US202163173334P 2021-04-09 2021-04-09
US63/173,336 2021-04-09
US63/173,348 2021-04-09
US63/173,352 2021-04-09
US63/173,334 2021-04-09
US17/335,014 US11652749B2 (en) 2021-04-09 2021-05-31 High availability for hardware-based packet flow processing
US17/335,014 2021-05-31
PCT/US2022/021066 WO2022216441A1 (en) 2021-04-09 2022-03-21 High availability for hardware-based packet flow processing

Publications (1)

Publication Number Publication Date
CN117178533A true CN117178533A (zh) 2023-12-05

Family

ID=88964924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280027082.1A Pending CN117178533A (zh) 2021-04-09 2022-03-21 基于硬件的分组流处理的高可用性

Country Status (1)

Country Link
CN (1) CN117178533A (zh)

Similar Documents

Publication Publication Date Title
US11757782B2 (en) Architectures for disaggregating SDN from the host
US10812374B2 (en) Segment routing with fast reroute for container networking
US11588740B2 (en) Scaling host policy via distribution
US11102164B1 (en) Software defined networking operations for programmable connected devices
US9397946B1 (en) Forwarding to clusters of service nodes
US10091087B2 (en) Methods and systems for load balancing based on data shard leader
US9876715B2 (en) Network fabric overlay
US9450810B2 (en) Policy-driven automatic redundant fabric placement mechanism for virtual data centers
CA3002975C (en) Method and apparatus for implementing and managing virtual switches
US9998356B2 (en) Synchronizing network convergence and virtual host migration
US20220086025A1 (en) Flexible network interfaces as a framework for a network appliance
US11190406B1 (en) Injecting network endpoints into a SDN
Chen et al. A scalable multi-datacenter layer-2 network architecture
US20150200853A1 (en) Controller-less peer-to-peer distributed switch
US11799782B2 (en) Scaling host policy via distribution
CN115706673A (zh) 改进冗余网络安全设备的可用性和性能的智能流状态同步
CN117178533A (zh) 基于硬件的分组流处理的高可用性
WO2022216432A1 (en) Architectures for disaggregating sdn from the host
WO2022216441A1 (en) High availability for hardware-based packet flow processing
US11743189B2 (en) Fault tolerance for SDN gateways using network switches
US20230308354A1 (en) Intelligent controller for smart nics and hardware accelerators

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