在软件定义的数据中心中供应网络服务的制作方法

文档序号:27098786发布日期:2021-10-27 17:25阅读:165来源:国知局
在软件定义的数据中心中供应网络服务的制作方法
在软件定义的数据中心中供应网络服务
1.本技术是基于申请号为201680018772.5、申请日为2016年4月1日、发明名称为“在软件定义的数据中心中供应网络服务”的专利申请的分案申请。


背景技术:

2.当今,诸如负载平衡器、防火墙、ids、ips、加密、解密之类的网络服务被部署在数据中心中,以为应用和租户提供丰富的面向服务的环境。通常,这些服务被部署在数据中心网络拓扑中的固定点处。基于配置要求,供应网络服务来服务各种应用和租户。随着需求的增加和变化,维护这种静态布置和供应方法的逻辑变得具有挑战性,并且导致涉及发夹(hair

pinning)流量、阻塞点操作和复杂配置的混淆和复杂部署。跨各种应用和租户的相互依赖性往往使网络的管理变得混乱。


技术实现要素:

3.本发明的一些实施例提供了用于将通用服务映射到网络中的服务资源的特定配置中的动态网络服务分配的系统和方法。在一些实施例中,被分配由网络中的计算资源执行的应用与通用服务集合相关联,并且通用服务集合到服务资源的映射基于应用到计算资源的分配。在一些实施例中,通用服务的映射还基于为应用选择的服务级别,其中不同的服务级别使通用服务集合映射到不同的网络资源集合。
4.在一些实施例中,网络管理器允许用户将所需服务指定为通用服务,而不必直接引用或甚至知道任何底层的实际物理网络资源。在一些实施例中,一般指定的服务是指定应用所需的服务的服务模板的一部分。网络管理器处理服务模板,以便为所需服务动态分配网络资源。在一些实施例中,服务模板中的通用服务与应用的各个应用组件相关联。
5.在一些实施例中,编排引擎将通用服务分配给专用资源或专用资源组。在一些实施例中,编排引擎可以使用标准集合来分配一般指定的服务以动态识别最合适的服务。在一些实施例中,这样的标准允许通用资源的映射基于网络的实时状态/度量(诸如拓扑、工作负载或被分配用于实现应用的计算资源的位置)来动态地完成。
6.在一些实施例中,根据不同类型的布置映射,编排引擎可以将一般指定的服务映射到不同的服务资源集合。在一些实施例中,不同的应用使用不同类型的布置映射。这些不同类型的布置映射可以对应于不同的服务级别、不同服务目录的使用和/或不同的网络动态条件。
7.一些实施例用其所需的服务标记应用组件。无论应用组件被分配在何处(即,无论应用组件被分配哪个计算资源),其服务标记都跟随应用组件。当应用组件被布置或分配时,供应过程将根据服务标记知道在适当的服务资源处供应网络服务。在一些实施例中,当从网络中去除应用时,网络管理器按照应用的服务标记去除不再需要的服务并释放服务资源。
8.在一些实施例中,服务目录指定许可的或可用的资源集合,并且不同的服务目录提供不同的替代的实际服务资源集合。在一些实施例中,编排引擎使用所选择的服务目录
来查找用于给定通用服务的最合适的布置映射。在一些实施例中,服务目录将布置映射限制为仅目录所允许的那些。在一些实施例中,目录集合表示不同的服务级别集合,每一个目录指定与其服务的级别相称的资源,其中“较高级别”的服务在布置期间向应用或其用户授予计算资源和服务资源的优先分配。
9.前面的发明内容旨在用作对本发明的一些实施例的简要介绍。这并不意味着是对本文档中公开的所有发明性主题的介绍或概述。以下的具体实施方式和在具体实施方式中参考的附图将进一步描述在本发明内容中描述的实施例以及其它实施例。因此,为了理解本文档描述的所有实施例,需要对发明内容、具体实施方式和附图的全面地审查。此外,所要求保护的主题不受发明内容、具体实施方式和附图中的说明性细节的限制,而是要由所附权利要求来限定,因为所要求保护的主题可以在不脱离本主题的精神的情况下以其它特定形式来体现。
附图说明
10.本发明的新颖特征在所附权利要求中阐述。但是,为了解释的目的,在以下图中阐述了本发明的若干实施例。
11.图1图示基于应用的服务模板为应用执行动态服务布置的网络管理器。
12.图2图示从服务模板中的一般指定的服务到网络中的实际网络服务资源的映射。
13.图3图示当将一般指定的服务分配到网络中时,编排引擎可以执行的不同类型的映射。
14.图4概念性地图示基于将应用组件与其所需服务相关联的标记的服务的供应。
15.图5图示使用服务目录用于布置映射的数据中心。
16.图6图示使用服务模板和服务目录为应用供应服务的另一个示例。
17.图7概念性地图示用于为应用供应网络服务的过程。
18.图8图示用作计算资源和/或服务资源的数据中心的网络资源。
19.图9图示正在操作用于托管虚拟机的虚拟化软件的示例主机机器。
20.图10概念性地图示实现本发明的一些实施例的电子系统。
具体实施方式
21.在以下描述中,出于解释的目的阐述了许多细节。但是,本领域普通技术人员将认识到的是,本发明可以在不使用这些具体细节的情况下进行实践。在其它情况下,众所周知的结构和设备以框图的形式示出,以便防止不必要的细节模糊本发明的描述。
22.本发明的一些实施例提供了用于将通用服务映射到网络中的服务资源的特定配置中的动态网络服务分配的系统和方法。在一些实施例中,被分配由网络中的计算资源执行的应用与通用服务集合相关联,并且通用服务集合到服务资源的映射基于应用到计算资源的分配。在一些实施例中,通用服务的映射还基于为应用选择的服务级别,其中不同的服务级别使得通用服务集合映射到不同的网络资源集合。
23.本发明促进了正确的和确定性的规模和资源利用率,并且减少了重新配置现有服务和/或引入新服务的熵。这使得网络服务的布置和配置更加动态和简单化,以便灵活地满足虚拟化应用不断变化的需求和要求。
24.下面描述本发明的若干更详细的实施例。第i部分描述向应用和相关联的通用服务分配网络资源。第ii部分讨论在具有操作虚拟化软件的主机机器的数据中心中可用的不同类型的服务资源。第iii部分描述用作vm的主机机器的示例计算设备。最后,第iv部分描述实现本发明的一些实施例的电子系统。
25.i.服务的动态布置
26.当在网络中供应应用(即,分配网络资源以执行应用)时,一些实施例执行动态服务布置。这种应用的示例是该是托管多层级应用、其策略和服务级别的虚拟机(vm)以及一些时候其它vapp的集合。在一些实施例中,动态服务布置由负责管理和配置网络资源的网络管理器的编排引擎执行。
27.由于应用的执行需要用于应用的服务,诸如边际服务、负载平衡、防火墙、动态主机配置协议(dhcp)、虚拟专用网(vpn)、网络地址转换(nat)等,因此在一些实施例中,网络管理器允许用户在不必直接引用或甚至知道任何底层的实际物理网络资源的情况下将所需服务指定为通用服务。因此,一般指定的服务是用于实现服务的底层实际物理网络资源的抽象。在一些实施例中,一般指定的服务是指定应用所需的服务的服务模板的一部分。网络管理器处理服务模板,以便为所需服务动态分配网络资源。
28.图1图示基于应用的服务模板为应用执行动态服务布置的网络管理器110。如图所示,网络管理器110管理数据中心100的网络。数据中心100提供可以用作计算资源/节点(示为cn)和/或服务资源/节点(示为sn)的网络资源阵列。网络管理器110从用户借口130接收用于在数据中心网络100中部署应用150的供应请求120。网络管理器110又通过产生配置网络100的各种资源的配置140来供应应用。
29.在一些实施例中,数据中心可以同时支持来自一个或多个不同租户的许多应用。来自这些租户的应用使用网络中的不同资源但也共享网络中的一些资源。在一些实施例中,网络管理器110基于(例如,来自用户接口130的)用户输入和预定服务目录集合160为这些应用及其相关联的服务中的每一个识别数据中心中最合适的资源。在一些实施例中,用户接口130由网络管理器110提供,以便促进供应请求的编写(authoring)。
30.如图所示,网络管理器110根据接收到的供应请求120生成配置140。供应请求120包括用于应用150的应用简档121。供应请求120还包括用于指定执行应用150所需的网络服务的服务模板122。应用简档121提供关于要由网络100的资源(特别是计算资源)执行的应用的信息。在一些实施例中,应用包括可以分配给不同计算节点的若干组件,其中每一个组件需要其自己的网络服务集合。在一些实施例中,应用的不同组件是应用的不同层。例如,在一些实施例中,应用是具有web层、应用层和数据库层的多层级应用。每层具有其自己对网络服务的要求。应用的服务模板122又描述对不同层/组件中的每一个的服务要求。
31.服务模板122包括以不引用特定网络资源的通用的抽象项一般地指定应用150所需的服务(也称为通用服务)的参数。例如,在一些实施例中,服务模板可以在不引用实际的网络资源的情况下一般地指定只允许某些类型的流量流入或流出应用的防火墙、将流量平衡到应用的特定组件或层的负载平衡、用于应用的特定组件或层的动态dhcp服务、或者对离开应用的数据进行加密。网络管理器110又将服务模板122中的这些通用服务转换成用于配置网络100中的资源的配置140。所生成的配置140特定于网络100中的实际物理计算或服务资源。
32.网络管理器110包括用于将应用简档121和服务模板122映射到配置140的编排引擎115。编排引擎116识别用于实现应用所需的服务的最合适的服务资源。对于服务模板122中一般指定的服务,编排引擎将它们映射到具有实际网络地址的实际服务资源。例如,在一些实施例中,编排引擎116将把用于dhcp服务的规范映射到由边缘路由器提供的dhcp服务器。
33.在一些实施例中,编排引擎160基于当前网络拓扑(例如,各种网络资源逻辑上或物理上的相对位置)和/或当前网络状态或度量(例如,各种网络资源的工作负载)来确定应用和所需服务的最合适的布置,并相应地动态分配计算资源和服务资源。编排引擎160然后为那些已分配的网络资源生成对应的配置140。
34.在一些实施例中,服务模板122中的通用服务与vapp的各个应用组件相关联,因此通用服务的映射部分地基于各个应用组件的布置来确定。例如,一旦将特定应用组件分配给特定的计算资源(或计算资源集合),网络管理器就将把该组件的相关联的通用服务映射到关于特定计算资源正确定位的服务资源,以便用作那些相关联的通用服务的实施点。
35.如图所示,网络管理器110基于服务目录集合160执行应用及其所需服务的布置。在一些实施例中,不同的服务目录提供用于映射到编排引擎115的不同的替代的实际服务资源集合。在一些实施例中,服务模板122中的通用服务规范可以引用服务目录中的一个,因此编排引擎将知道使用由特定服务目录变得可用的网络资源。下面将参考图5进一步描述服务目录。
36.图2图示用于应用150的从模板122中的一般指定的服务到网络100中的实际网络服务资源的映射。如图所示,应用150的应用简档121指定应用150包括web层260、应用层270和数据库(db)层280。服务模板122又按照与应用150的那些层有关的抽象通用服务来指定若干安全策略。例如,服务模板122包括通用服务“允许从web对应用的访问”和“拒绝从应用对web的访问”。服务模板122还包括通用服务“将流量负载平衡到web中”和“对web和应用之间的流量进行负载平衡”。
37.在一些实施例中,服务模板还可以包括网络服务的明确直接规范。例如,除了一般指定的服务之外,服务模板122还包括明确的网络服务规范,诸如“允许访问192.168.2.3”。
38.服务模板122包括在无需指定实际的网络资源的情况下以通用项指定用于进出web和应用层的流量的访问控制服务以及负载平衡服务的策略。然后,编排引擎将把这些通用项与引用实际网络资源的标识符、地址和规则进行映射。
39.图2还图示在供应应用150并且实现服务模板122中的通用服务集合之后的网络100的状态。如图所示,应用150的层在网络100的计算资源中实现。具体而言,应用150的web层由计算资源cn1、cn2和cn3(作为实例或组件261

263)实现、应用150的应用层由计算资源cn4、cn5和cn6(作为实例或组件271

273)实现、并且db层由计算资源cn7、cn8和cn9(作为实例或组件281

283)实现。简档122中的通用服务集合被映射到网络100的服务资源sn1和sn2。在这个示例中,sn1实现关于对进出cn1

9的流量的访问控制的服务,而sn2实现关于进出cn1

9的流量的负载平衡的服务。
40.图2的示例图示由编排引擎115基于应用组件的计算资源分配来映射服务模板122中的服务规范。服务模板122被映射到用于sn1的配置数据210和用于sn2的配置数据220。如图所示,服务模板122中的通用项被映射到引用网络100中的实际网络资源的标识符、地址
和规则。例如,通用服务“允许从web对应用的访问”在sn1中被映射到“允许从cn1

3对cn4

6的访问”,因为web层在cn1

3中实现,并且应用层在cn4

6中实现。同样,通用服务“web和应用之间的负载平衡”被映射到“cn1

3和cn4

6之间的负载平衡”。虽然这个示例使用标签“cn1

9”或“sn1

2”来引用计算资源和服务资源,但是普通技术人员将理解的是,在一些实施例中,这些标签表示被标注的计算资源的实际地址(例如,ip地址或mac地址),并且引用这些标签的服务正在指定被标注资源的地址(诸如适用于这些地址的访问控制或防火墙规则)。在一些实施例中,这些标签中的每一个表示实际地址的动态分组(被称为容器或安全组),因此引用这种标签的服务正在指定地址的动态分组。
41.图3图示当把一般指定的服务分配到网络300中时,编排引擎350可以执行的不同类型的映射。在一些实施例中,编排引擎可以将通用服务分配给专用资源或专用资源组。在一些实施例中,编排引擎可以使用标准集合分配一般指定的服务来动态识别最合适的服务。在一些实施例中,这种标准允许通用资源的映射基于网络的实时状态/度量(诸如拓扑、工作负载或被分配实现应用的计算资源的位置)动态地完成。
42.在一些实施例中,根据不同类型的布置映射,编排引擎可以将一般指定的服务映射到不同的服务资源集合。在一些实施例中,不同应用(或数据中心的不同租户的相同应用)使用不同类型的布置映射。这些不同类型的布置映射可以对应于不同的服务级别、不同服务目录的使用和/或不同的网络动态条件。例如,在一些实施例中,具有较高服务级别的通用服务将被映射到较快的资源或预留资源,而对应于较低服务级别的通用服务将被简单地映射到任何可用资源。在一些实施例中,数据中心的每一个租户为其自己的服务级别付费并由编排引擎相应地进行映射。
43.图3图示具有用于要被供应到网络300中的两个不同应用的一般指定的服务的两个示例服务模板301和302。网络300包括服务资源(或服务节点)sn1至sn24。服务模板301由编排引擎根据布置映射311映射,并且服务模板302由编排引擎350根据布置映射312映射。
44.服务模板301一般地指定其所需的服务u、v、x、y和z。服务模板302一般地指定其所需的服务u,w,x和z。布置映射311和312两者都提供通用服务u、v、w、x、y和z的映射,但是如图所示,它们不同地映射这些通用服务。例如,(当编排引擎350使用)布置映射311(时)将通用服务w映射到sn 10,而(使用)布置映射312(时)将通用服务w映射到sn 20。一些服务被映射到相同的资源集合。例如,布置映射311和布置映射312两者都将服务y映射到资源sn5。在一些实施例中,布置映射可以(由编排引擎使用以)将通用服务映射到多于一个网络资源。例如,布置映射311将服务x映射到sn11和sn12。
45.在一些实施例中,通用服务被映射到一种类型的服务资源。例如,服务u由布置映射311和312两者被映射到服务资源类型“2”,而服务v由布置映射312映射到服务资源类型“3”。在一些实施例中,服务资源类型可以是对特定服务资源组的指派。例如,服务资源类型“2”对应于服务节点sn1、sn2、sn10、sn11,而服务资源类型“1”对应于服务节点sn11、sn12、sn13、sn21、sn22和sn23。
46.在一些实施例中,服务资源类型可以对应于用于动态识别网络资源以供应所请求的服务的标准集合。在一些实施例中,编排引擎具有执行这些类型的动态分配的过程。例如,服务资源类型“3”和“4”两者都对应于编排引擎350中使用实时网络信息选择用于供应所请求的服务的网络资源的动态分配器353和354。在所示示例中,用于服务资源类型“3”的
动态分配器353已基于当前网络状态或度量为应用302选择了sn14,而用于服务资源类型“4”的动态分配器354已基于当前网络状态选择了sn24。这种动态分配可以是各种网络资源的工作负荷(例如,识别最空闲的资源),或者基于网络拓扑(例如,识别处于最佳位置的服务资源,以便基于计算资源的配置实施某些安全策略)。
47.在一些实施例中,不同的服务资源类型对应于不同的服务级别。换句话说,一些较高级别的服务资源类型比一些较低级别的服务资源类型更自由地使用更多的“优选”或者甚至预留的服务资源。在这些实施例中的一些实施例中,用于较高级别服务的动态分配器将在资源分配中享有比用于较低级别服务的动态分配器更高的优先级。在一些实施例中,较高级别的服务模板使用较高级别的资源类型,而较低级别的服务模板使用较低级别的资源类型。
48.如上所述,在一些实施例中,服务的动态分配取决于应用(及其组件)如何被供应,即,应用的各种组件/实例/层/部分在网络中如何被布置以及被布置在何处。在一些实施例中,应用的每一个组件需要其自己的服务资源集合。例如,在图2中,应用150的web层260需要访问控制服务来拒绝来自应用层270的访问以及负载平衡服务来平衡来自应用层270的传入流量。因此,一些实施例用应用组件需要的服务来标记应用组件(例如,层)。无论应用组件被分配在何处(即,无论应用组件被分配哪个计算资源),其服务标记总是跟随应用组件。当应用组件被布置或分配时,供应过程(例如,网络管理器或编排引擎)将根据服务标记知道在适当的服务资源处供应网络服务。在一些实施例中,当从网络去除应用时,网络管理器按照应用的服务标记去除不再需要的服务并释放服务资源。
49.图4概念性地图示基于将应用组件与其所需服务相关联的标记的服务的供应。供应是用于将应用410实现到具有计算资源cn1至cn5和服务资源sn1至sn5的数据中心400中。应用410将要通过使用应用规范421和服务规范422来供应。
50.根据应用规范421,应用410具有三个组件411

413(应用组件1、2和3)。服务规范422又指定由这些应用组件中的每一个所需的网络服务。具体而言,组件411需要服务1a和1b,组件412需要服务2a和2b,并且组件413需要服务3a、3b和3c。因此,应用组件411被通用服务1a和1b标记,应用组件412被通用服务2a和2b标记,并且应用组件413被通用服务3a、3b和3c标记。这些标记将跟随其对应的应用组件并被相应地供应。
51.图4图示应用组件411

413的两个不同的布置401和402。在一些实施例中,应用组件的布置是基于所订阅的服务级别、所需的计算性能级别、计算资源的可用性或工作负载、租户的身份、网络的拓扑、以及可用于布置引擎(例如,网络管理器110)的其它信息。例如,在一些实施例中,每一个应用组件被布置在特定性能能力的网络资源的某些转发跳数内。较高级别的服务将把应用组件布置在更快的执行网络资源的更少转发跳数内,而较低级别的服务可以将应用组件布置在远离网络资源的更多数量的转发跳数处,或被分配为由较慢的执行网络资源服务。
52.根据第一布置401,应用组件411被布置在计算资源cn1处(即,被分配为由计算资源cn1执行),应用组件412被布置在计算资源cn2处,并且应用组件413被布置在计算资源cn3处。根据第二布置402,应用组件411被布置在计算资源cn3处,应用组件412被布置在计算资源cn5处,而应用组件413被布置在计算资源cn2处。
53.该图还图示布置根据标记与应用组件相关联的服务。在一些实施例中,应用组件
的服务标记允许供应过程基于应用组件的布置来识别用于实现所标记服务的最合适的服务资源。例如,根据布置401,应用组件411被布置在cn1处,并且其标记的服务1a和1b被对应地布置在附近的资源sn1和sn2处。(在该图中,比其它sn更适于实现布置在特定cn处的应用组件的所需服务的sn概念上被示为比其它sn更靠近该特定cn)。但是,当应用组件411根据布置402被布置在cn3处时,其标记的服务1a和1b替代地被布置在sn3和sn4处,因为这些服务资源更适于cn3而不是sn1和sn2。换句话说,应用组件的服务标记允许应用组件基于应用组件的布置使其所需服务在最合适的服务资源处实现。下面将在第ii部分中进一步描述更“合适”的资源由什么构成。
54.在一些实施例中,由编排引擎使用的布置映射是基于已经为该服务或该应用选择的服务目录。如上所述,在一些实施例中,服务目录指定可许可的或可用的资源集合,并且不同的服务目录提供不同的替代的实际服务资源集合。在一些实施例中,编排引擎使用所选择的服务目录来查找用于给定通用服务的最合适的布置映射。在一些实施例中,服务目录将布置映射限制为仅由目录允许的那些布置映射。
55.在一些实施例中,目录集合表示不同的服务级别集合,每一个目录指定与其服务的等级相称的资源,其中“较高级别”的服务在布置期间向应用或其用户授予计算资源和服务资源的优先分配(例如,具有更高优先级、具有更多的特征集合可供选择、被分配使用更高性能的资源、或被布置得更靠近所分配的资源)。在一些实施例中,数据中心的每一个租户选择对应于其(支付的)服务级别的服务目录例如作为默认目录。在一些实施例中,每一个应用选择服务目录。在一些实施例中,用于应用的特定组件的每一个服务模板选择并使用服务目录。在一些实施例中,服务模板可以具有被选择用于不同通用服务的不同服务目录。
56.图5图示使用服务目录用于布置映射的数据中心500。数据中心500具有服务资源sn1至sn24,并且编排引擎510执行用于服务的布置映射。编排引擎510可以从分别对应于“金”、“银”和“铜”服务级别的服务目录集合531

533中选择。“金”目录允许使用服务资源sn1、sn2和sn3。“银”目录允许使用服务资源sn11、sn12和sn13。“铜”目录允许使用服务资源sn21、sn22和sn23。在一些实施例中,不同的目录由编排引擎更新,以确保根据最新的网络拓扑或度量为每一个服务级别提供最合适的资源。
57.编排引擎510接收指定通用服务521(“服务1”)和通用服务522(“服务2”)的应用(或应用组件)的服务模板520。如图所示,服务521指定它正在使用“银目录”,而服务522指定它正在使用“铜”目录。每一个目录都根据服务级别(金/银/铜等)识别合格的由应用使用的资源集合。每一个服务还指定用于从合格的资源当中选择最合适的资源的标准集合。在一些实施例中,这些标准基于随机、工作流、拓扑、等待时间、成本等。在这个示例中,服务521指定它应该从合格的资源中选择最低等待时间的资源,而服务522指定它应该从合格的资源中选择最低成本的资源。
58.编排引擎又通过基于所选择的目录执行布置映射来创建配置数据集合540。具体而言,服务资源sn11、sn12、sn13被配置成执行服务521(“服务1”),因为这些是由“银”目录提供的资源,并且服务资源sn21、sn22和sn23被配置成执行服务522(“服务2”),因为这些是由“铜”目录提供的资源。
59.图6图示使用服务模板和服务目录为应用供应服务的另一个示例。为了在数据中
心中供应应用600,数据中心的编排引擎接收指定三个不同层或层级(层级0、层级1和层级2)的应用简档610。编排引擎还接收用于应用600的不同层级的服务模板集合621

623,服务模板621指定用于应用层级0的服务,服务模板622指定用于应用层级1的服务,并且服务模板623指定用于应用层级2的服务。每一个层级的服务模板包括不寻址到网络中的实际资源的一般指定的规则或服务。编排引擎使用对应于不同级别服务(“金”、“银”和“铜”)的服务目录631

633,每一个目录指定与其服务级别相称的服务资源集合。
60.编排引擎采用应用简档610、服务模板621

623、服务目录631

633以及网络度量集合(未示出)来创建引用实际地址并配置实际服务资源的配置641。配置641用于部署以下服务:
61.(1)由3个网络10.1.1.0、10.1.2.0和10.1.3.0可达的网络边缘服务,三个各个层级(层级0、层级1、层级2)在这三个网络上,层级0具有内部(对数据中心)可达性并且只公告给10.1.1.0网络;以及
62.(2)负载平衡器(来自目录的银类别,其中各个类别可以具有许多选项),用于具有所提及的参数的层级0流量。负载平衡器的ip地址被用作虚拟ip(vip)。
63.策略集合641指定边缘服务节点上的转发规则,使得来自层级1的流量只能去往层级2,并且从层级2到层级3。由于策略规定层级1只从层级0接收流量,因此,它对来自层级0的流量部署分布式负载平衡器(dlb,其可以是“铜”服务目录633的一部分),以将流量提供给端口8080(如果应用600的用户指定比如“银”,那么一些其它负载平衡器将会被部署和配置)。dlb可以用于将所有端口8080流量从层级0重定向到层级1中的任何ip地址。由于应用600是vapp,因此其内部应用ip地址不需要改变。当dlb用于将流量重定向到层级1vip时(在根据“银”服务目录部署的情况下)也是如此。由于没有任何服务被请求,因此没有任何服务被部署在层级1和层级2之间(除了转发规则之外)。
64.如果用户将层级0服务模板621从内部改变为外部,那么以下改变会自动发生:分配外部vip;根据配置642向边缘服务节点引入网络地址转换(nat)策略。这些创建的配置(例如,641和642)被标记到应用600。当应用600被去除时,来自所有节点的配置641和642也将通过跟踪标记被去除。
65.虽然未示出,但是基于根据用于“金”、“银”和“铜”的服务目录631

633供给的服务。编排器还可以通过其它服务机制来供应服务,并且通过填充和提供用于服务模板选择的附加服务目录来使那些其它服务机制可用于映射。
66.图7概念性地图示基于本发明的一些实施例的用于为应用供应网络服务的过程700。在一些实施例中,过程700由诸如110(或其编排引擎)的网络管理器执行。当过程710接收到在数据中心中供应虚拟应用的命令时,过程710开始。在一些实施例中,当数据中心的用户或租户请求网络管理器供应应用(即,vapp)时,或者如果网络管理器已经确定需要重新分配网络资源(为了例如效率或者为了故障恢复原因)时,该过程开始。
67.然后,该过程接收(在720处)应用简档及其相关联的服务模板。在一些实施例中,当应用被供应到数据中心的计算资源中时,应用被划分成若干部分或组件。应用简档指定应用如何被供应,例如通过层/层级/组件被供应。服务模板指定应用所需的网络服务。在一些实施例中,应用的每一个层都具有指定由该层所需的服务的其自己的对应的服务模板。在一些实施例中,服务模板以不引用特定实际网络资源的抽象通用项来指定一些所需服
务。因此,这些一般指定的服务可以由编排引擎自由地布置映射到最合适的资源中。
68.接下来,该过程(在730处)将应用组件与所需的网络服务相关联。一些实施例识别应用的每一个组件所需的服务,并将应用组件与那些识别出的服务相关联。为了将应用组件与其所需的服务相关联,一些实施例提供将所需服务与应用组件链接的标记。标记还允许以通用项(通用服务)指定的所需服务能够跟随应用组件并且被布置在最合适的服务资源处。然后,该过程(在740处)将虚拟应用组件分配给网络中的计算节点。应用组件的布置的示例可以在标题为“automatic placement of clients in a distributed computer system based on at least physical network topology information”的美国专利申请14/284,286中找到。在一些实施例中,应用组件的布置至少部分地确定相关联网络服务的布置。
69.接下来,该过程(在750处)识别对于实现所需服务合格的服务资源。在一些实施例中,合格的资源由为那些所需服务选择的服务目录确定。在一些实施例中,服务模板引用服务目录,以将布置映射限制到特定类别或类型的服务资源,这在一些实施例中对应于服务级别。在一些实施例中,对于不引用服务目录的通用服务,该过程将网络中的所有服务资源视为合格用于布置映射。通过参考以上图5和图6描述用于识别服务资源的服务目录的使用。
70.然后,该过程(在760处)基于识别出的合格服务资源识别用于布置映射通用服务的最合适的资源。这种操作允许通用服务要求被转换为实际的服务资源。在一些实施例中,对于每一个服务,该过程基于随机、拓扑、等待时间、成本等从合格资源当中识别最合适的资源。如所提及的,在一些实施例中,服务目录提供合格的资源,而服务模板提供用于从合格资源当中识别最合适资源的标准。在一些实施例中,服务资源的布置也基于将应用组件与其所需服务链接的服务标记,因为从所布置的应用组件的角度看,该过程使用应用组件的服务标记将所需服务布置在最合适的服务资源中。通过参考以上图4描述基于服务标记的布置。
71.基于应用组件和所需服务的布置,该过程生成(在780处)用于所分配的计算资源和服务资源的配置数据。然后,该过程(在790处)通过递送其对应的配置数据来配置所分配的计算资源和服务资源。然后,过程700结束。
72.ii.数据中心中的服务资源
73.以上部分i一般地将为应用执行计算的数据中心资源称为“计算资源”或“计算节点”并且将为应用组件执行服务的资源称为“服务资源”或“服务节点”。在一些实施例中,这些网络资源由操作虚拟化软件的计算设备(即,主机机器)以及不实现虚拟化软件的物理路由器和交换机来实现。
74.图8图示用作在第i部分中被称为计算资源和/或服务资源的数据中心800的网络资源。该数据中心具有网络管理器810,用于接收供应应用的请求并且生成用于配置数据中心中的计算资源和服务资源的对应配置数据。数据中心800包括用作计算资源和服务资源的主机机器801

804以及物理路由器805

806。主机机器801

804和物理路由器805

806通过物理网络890互连。
75.如图所示,每一个主机机器正在运行允许其托管一个或多个虚拟机(vm)的虚拟化软件(vsw)。虚拟化软件管理vm的操作以及vm对主机机器的计算资源和网络资源的访问。在
一些实施例中,虚拟化软件提供每一个vm与由底层网络支持的逻辑交换机之间的接口。虚拟化软件可以包括一个或多个软件组件和/或层,可能包括在虚拟机技术领域中已知的软件组件中的一个或多个,如虚拟机监视器(vmm)、管理程序或虚拟化内核。由于虚拟化术语已随着时间的推移而演进并且尚未完全变得标准化,因此这些术语并不总是在它们引用的软件层和组件之间提供明显的界限。如本文所使用的,术语“管理程序”旨在一般地指逻辑上插入在虚拟机和主机平台之间的软件层或组件。用作主机机器的计算设备将在下面的第iii部分中进一步描述。主机机器801例如正在操作vsw 831和托管vm 821

823。
76.如图所示,每一个主机机器801

804的虚拟化软件正在运行分布式虚拟交换机(dvs)和虚拟分布式路由器(vdr)。在一些实施例中,它们也被称为受管理转发元件(mfe),因为它们被软件定义和管理用于执行l2和l3分组转发操作。在一些实施例中,在不同主机机器中操作的dvs实例共同作为一个逻辑交换元件(lse)操作,其中每一个本地dvs实例在其主机机器处作为受管理物理交换元件(mpse)操作(例如,本地dvs实例811是主机机器801的mpse)。在一些实施例中,在不同主机机器中运行的vdr实例共同作为一个逻辑路由元件(lre)操作,其中每一个本地vdr实例作为用于在其主机机器处执行l3路由的受管理物理路由元件(mpre)操作。在一些实施例中,vdr中的一些还提供桥接功能。关于操作受管理转发元件的虚拟化软件的进一步描述可以在标题为“logical router”的美国专利申请no.14/137,862、标题为“virtual distributed bridging”的美国专利申请no.14/503,164和标题为“ingress ecmp in virtual distributed routing environment”的美国专利申请no.14/227,959中找到。在一些实施例中,这些受管理转发元件用作可以被选择以实现(一般指定的或以其它方式指定的)所需网络服务的服务资源。在一些实施例中,虚拟化软件还可以被配置成在其它实施点处(诸如在连接vm和vdr的dvs端口处)实现网络服务。
77.在一些实施例中,主机机器包括可以用作网络中的服务资源的物理组件。例如,在一些实施例中,主机机器的物理网络接口控制器(pnic)包括可以用于实现服务(诸如防火墙)的可配置资源,诸如tcam(ternary content addressable memory,三元内容可寻址存储器)。
78.物理路由器805

806是不操作虚拟化软件并且不操作软件定义的受管理转发元件的转发元件。在一些实施例中,这些被称为架顶式(top of rack,tor)路由器,它们被安装以处理某些特定类型的分组转发操作。
79.主机机器和物理路由器提供一些计算资源和服务资源。在一些实施例中,物理路由器、vdr实例和dvs实例是数据中心的服务资源中的一些。在一些实施例中,物理路由器805

806中的一个或多个或在主机机器801

804中运行的vm中的一个或多个可以作为边缘节点操作,以提供网络边缘服务。在一些实施例中,这些服务资源对于网络管理器(或编排器)是已知的,用于对所请求的服务进行布置映射。在一些实施例中,这些服务资源中的一些被特定服务目录称为对应于特定服务级别。
80.在主机机器上运行的vm用作数据中心的计算资源和服务资源中的一些。一些vm可以被配置为执行被供应的应用组件中的一些的计算资源。一些vm可以被配置为执行应用所需的服务(诸如负载平衡器、防火墙,边缘等)中的一些的服务资源。在一些实施例中,虚拟化软件本身可以被配置成用作服务资源。在一些实施例中,通用服务可以要求多个服务资源或转发元素来实现。例如,服务可以要求设置多个路由器或交换机,以允许分组从充当应
用组件的计算资源的vm跳到充当应用组件的服务资源的另一个vm。
81.在一些实施例中,诸如防火墙、入侵检测系统(ids)、入侵防御系统(ips)、负载平衡、加密和dhcp的服务可以由软件服务节点实现。软件服务节点可以部署在主机机器处或l2/l3边界处,以提供所需的服务。这些服务还可以是vnic和交换机之间的内联服务(例如,vm 821和dvs 811之间的软件服务节点841)。这些软件服务节点是网络管理器可以管理和操纵以将模板中的通用服务映射到特定实例的软件资源。在一些实施例中,诸如dhcp的服务中的一些服务在边缘路由器处实现。在一些实施例中,诸如805或806的物理路由器用作边缘路由器。在一些实施例中,在主机机器中的一个上运行的vm用作边缘路由器。
82.如以上第i部分所提及的,在一些实施例中,应用组件被其所需的网络服务标记,并且应用供应过程将基于那些标记来识别用于实现那些所需服务的最“合适的”服务资源。在一些实施例中,服务的最合适的资源被认为是比任何其它服务资源更好地安置以为标记的应用组件执行服务的资源。例如,如果特定应用组件被分配给主机机器801上的vm 821,那么在相同主机机器801(诸如vsw 831)上运行的服务资源将比在其它主机机器上运行的服务资源更适合,因为vm 821可以在不经过物理网络890的情况下直接与vsw 831的部分通信。对于一些实施例,这是由网络的拓扑所确定的布置的示例。另一方面,如果主机机器801的本地资源已经被分配服务于其它应用、不具有必要的计算能力或者不处于用作实施点的位置,那么主机机器801的本地资源将不被认为适于在vm 821上运行的应用组件。
83.在一些实施例中,这些服务不需要被预先配置。网络管理器在请求到来时通过即时(on

the

fly)部署和配置这些服务来供应服务。换句话说,网络管理器只有在(根据请求)需要这些服务时才咨询对应的服务模板和服务目录来供应必要的服务,并且服务(和应用组件)的布置可以被动态确定(例如,基于网络的实时状态)。
84.在一些实施例中,当网络管理器基于服务模板部署应用(诸如web服务器或应用服务器或3层级应用)时,防火墙规则被铺设(plumb)在其中布置vapp网络的相关策略实施点(诸如vnic、边缘节点或主机机器)处。在一些实施例中,服务(比如负载平衡)在服务应用的网络上自动实例化。在一些实施例中,分布式负载平衡用于提供服务。在一些实施例中,应用的应用简档或服务模板指定其服务/规则是分布式还是集中式。
85.取决于应用中进行负载平衡的服务器的数量以及负载平衡池包括的服务器的范围,一些实施例在可以服务于该目的的数据中心中的l2网络中部署专用的单臂负载平衡器。如果负载不足,那么负载平衡器可以跨l3域共享,并且部署在单个负载平衡器上的多个配置可以形成负载平衡器集群。在一些实施例中,每一个应用都具有其自己的对应的服务级别。类似地,对于比如ids/ips/加密的服务,一些实施例映射服务集群以服务由应用生成的各种负载,并将它们布置在数据中心中的各个点处,并实例化策略以将这些服务流量路由到这些实施点。
86.iii.计算设备
87.如前面所提及的,本发明的一些实施例由在用作主机机器的计算设备上运行的虚拟化软件或管理程序实现。对于一些实施例,图9图示正在操作虚拟化软件905的示例主机机器900。虚拟化软件905允许主机机器托管虚拟机911

914以及将虚拟机连接到物理网络990。这个物理网络990可以跨越一个或多个数据中心,并且包括各种物理交换机和路由器。
88.如图所示,主机机器900能够通过物理nic(pnic)995访问物理网络990。虚拟化软
件905用作托管的vm 911

914与物理nic 995(以及其它物理资源,诸如处理器和存储器)之间的接口。每一个vm包括用于通过虚拟化软件905访问网络的虚拟nic(vnic)。vm中的每一个vnic负责在vm和虚拟化软件905之间交换分组。在一些实施例中,vnic是由虚拟nic仿真器实现的物理nic的软件抽象。
89.虚拟化软件905管理vm 911

914的操作,并且包括用于管理vm对物理网络的访问(在一些实施例中通过实现vm连接到其的逻辑网络)的若干组件。如图所示,虚拟化软件905包括物理交换元件920、物理路由元件930、控制器接口940、上行链路模块970以及可配置资源集合950。
90.控制器接口940从控制器或控制器集群960接收控制平面消息。在一些实施例中,这些控制平面消息包括用于配置虚拟化软件和/或虚拟机的各种组件(诸如物理交换元件920和物理路由元件930)的配置数据。在一些实施例中,控制平面消息还包括来自中央网络管理器或本地网络管理器的特定于场所的配置信息。
91.物理交换元件920(或受管理物理交换元件mpse)递送去往和来自物理nic 995的网络数据,该物理nic 995与物理网络990对接。物理交换元件还包括将物理nic与vm 911

914、物理路由元件930和控制器接口940通信地互连的多个虚拟端口(vports)。在一些实施例中,每一个虚拟端口与唯一的l2 mac地址相关联。物理交换元件在连接到物理交换元件的虚拟端口的任何两个网络元件之间执行l2链路层分组转发。物理交换元件还在连接到物理交换元件的虚拟端口中的任何一个端口的任何网络元件与物理网络990上可达的l2网络元件(例如,在另一个主机上运行的另一个vm)之间执行l2链路层分组转发。
92.物理路由元件930(或受管理的物理路由元件mpre)对从物理交换元件920上的虚拟端口接收到的数据分组执行l3路由(例如,通过执行l3 ip地址到l2 mac地址解析)。在一些实施例中,物理路由元件930所附接到的虚拟端口是宿端口(sink port)。然后每一个被路由的数据分组被发送回物理交换单元920,以根据解析的l2 mac地址转发到该被路由的数据分组的目的地。这个目的地可以是连接到物理交换元件920上的虚拟端口的另一个vm,或物理网络990上可达的l2网络元件(例如,在另一个主机上运行的另一个vm、物理非虚拟化机器等)。
93.可配置资源集合950使得虚拟化软件905能够被配置成用作计算和/或服务资源。例如,在一些实施例中,可配置资源集合包括可编程逻辑电路集合,其可以被配置成存储规则并为诸如防火墙的网络服务提供规则匹配能力。在这些实施例中的一些实施例中,这些可配置资源与主机机器中的其它资源(诸如pnic中的tcam)一起作用以提供诸如防火墙的服务。使用虚拟化软件实现防火墙服务的示例可以在标题为“use of stateless marking to speed up stateful firewall rule processing”的美国专利申请no.14/295,544中找到。
94.上行链路模块970在物理交换元件920和物理nic 995之间中继数据。在一些实施例中,上行链路模块970允许主机机器900用作诸如vxlan和vlan之类的封装覆盖网络的隧道端点。vxlan是覆盖网络封装协议。由vxlan封装创建的覆盖网络有时被称为vxlan网络,或简称为vxlan。当主机900上的vm将数据分组(例如,以太网帧)发送到相同vxlan网络中但在不同主机上的另一个vm时,上行链路模块970在将分组发送到物理网络之前使用vxlan网络的vni和vtep的网络地址来封装数据分组。分组通过物理网络(即,封装使得底层分组对
于中间网络元件透明)被隧道化到目的地主机。上行链路模块970还对传入的vxlan分组进行解封装,并只将原始的内部数据分组转发到目的地vm。
95.在本文档中,术语“分组”是指跨网络发送的特定格式的位集合。本领域普通技术人员将认识到的是,术语分组在本文中可以用于指可跨网络发送的各种格式化的位集合,诸如以太网帧、tcp段、udp数据报、ip分组等。
96.贯穿本说明书提到包括虚拟机(vm)的计算和网络环境。但是,虚拟机只是数据计算节点(dcn)或数据计算端节点(也被称为可寻址节点)的一个示例。dcn可以包括非虚拟化物理主机、虚拟机、在主机操作系统之上运行而不需要管理程序或单独的操作系统的容器、以及管理程序内核网络接口模块。
97.在一些实施例中,vm使用由虚拟化软件(例如,管理程序、虚拟机监视器等)虚拟化的主机的资源与在主机上其自己的客户操作系统一起操作。租户(即vm的所有者)可以选择在客户操作系统之上要操作哪些应用。另一方面,一些容器是在主机操作系统之上运行而不需要管理程序或单独的客户操作系统的构造。在一些实施例中,主机操作系统使用名称空间将容器彼此隔离,并且因此提供在不同容器内操作的不同应用组的操作系统级隔离。这种隔离类似于在虚拟化系统硬件的管理程序虚拟化环境中提供的vm隔离,并且因此可以被视为隔离在不同容器中操作的不同应用组的一种虚拟化形式。这种容器比vm更轻巧。
98.在一些实施例中,管理程序内核网络接口模块是包括具有管理程序内核网络接口和接收/传送线程的网络堆栈的非vm dcn。管理程序内核网络接口模块的一个示例是作为vmware公司的esxi
tm
管理程序的一部分的vmknic模块。
99.本领域普通技术人员将认识到的是,虽然本说明书提到vm,但是给出的示例可以是任何类型的dcn,包括物理主机、vm、非vm容器和管理程序内核网络接口模块。事实上,在一些实施例中,示例网络可以包括不同类型的dcn的组合。
100.iv.电子系统
101.上述许多特征和应用被实现为软件过程,该软件过程被指定为记录在计算机可读存储介质(也被称为计算机可读介质)上的指令集合。当这些指令被一个或多个处理单元(例如,一个或多个处理器、处理器核心、或其它处理单元)执行时,它们使得该(一个或多个)处理单元执行在指令中指示的动作。计算机可读介质的示例包括,但不限于,cd

rom、闪存驱动器、ram芯片、硬盘驱动器、eprom等。计算机可读介质不包括无线或通过有线连接传递的载波和电子信号。
102.在本说明书中,术语“软件”是指包括驻留在只读存储器中的固件或者可以被读入到存储器中用于被处理器处理的存储在磁存储中的应用。此外,在一些实施例中,若干软件发明可以被实现为更大程序的子部分,同时保持明显的软件发明。在一些实施例中,若干软件发明也可以被实现为单独的程序。最后,一起实现本文所描述的软件发明的单独程序的任意组合在本发明的范围之内。在一些实施例中,当软件程序被安装,以在一个或多个电子系统上操作时,软件程序定义执行该软件程序的操作的一个或多个特定的机器实现。
103.图10概念性地图示实现本发明的一些实施例的电子系统1000。电子系统1000可以用于执行任何控制、虚拟化或上述操作系统应用。电子系统1000可以是计算机(例如,台式计算机、个人计算机、平板计算机、服务器计算机、大型机、刀片计算机等)、电话、pda或任何其它种类的电子设备。这种电子系统包括用于各种其它类型的计算机可读介质的各种类型
的计算机可读介质和接口。电子系统1000包括总线1005、(一个或多个)处理单元1010、系统存储器1025、只读存储器1030、永久存储设备1035、输入设备1040、以及输出设备1045。
104.总线1005统一地表示通信连接电子系统1000的许多内部设备的所有系统、外设和芯片组总线。例如,总线1005将(一个或多个)处理单元1010与只读存储器1030、系统存储器1025、永久存储设备1035通信地连接。
105.从这些各种存储器单元中,(一个或多个)处理单元1010检索要执行的指令和要处理的数据,以便执行本发明的过程。(一个或多个)处理单元在不同实施例中可以是单个处理器或多核心处理器。
106.只读存储器(rom)1030存储(一个或多个)处理单元1010和电子系统的其它模块所需的静态数据和指令。另一方面,永久存储设备1035是读写存储器设备。这个设备是即使当电子系统1000关闭时也存储指令和数据的非易失性存储单元。本发明的一些实施例使用大容量存储设备(诸如磁或光盘及其对应的盘驱动器)作为永久存储设备1035。
107.其它实施例使用可移除存储设备(诸如软盘、闪存驱动器等)作为永久存储设备。与永久存储设备1035一样,系统存储器1025是读写存储器设备。但是,与存储设备1035不同,系统存储器是易失性读写存储器,诸如随机存取存储器。系统存储器存储处理器在运行时需要的一些指令和数据。在一些实施例中,本发明的过程被存储在系统存储器1025、永久存储设备1035和/或只读存储器1030中。从这些各种存储器单元中,(一个或多个)处理单元1010检索要执行的指令和要处理的数据,以便执行一些实施例的过程。
108.总线1005还连接到输入设备和输出设备1040和1045。输入设备使用户能够传递信息和选择到电子系统的命令。输入设备1040包括字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备1045显示由电子系统生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(crt)或液晶显示器(lcd)。一些实施例包括诸如用作输入设备和输出设备两者的触摸屏的设备。
109.最后,如在图10中所示,总线1005还通过网络适配器(未示出)将电子系统1000耦合到网络1065。以这种方式,计算机可以是计算机的网络(诸如局域网(“lan”)、广域网(“wan”)、或内联网、或诸如互联网的网络的网络)的一部分。电子系统1000的任何组件或所有组件可以与本发明结合使用。
110.一些实施例包括电子组件,诸如微处理器、在机器可读或计算机可读介质(可替代地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的存储设备和存储器。这种计算机可读介质的一些示例包括ram、rom、只读压缩盘(cd

rom)、可记录压缩盘(cd

r)、可重写压缩盘(cd

rw)、只读数字多功能盘(例如,dvd

rom,双层dvd

rom)、各种可记录/可重写dvd(例如,dvd

ram、dvd

rw、dvd+rw等)、闪存存储器(例如,sd卡、小型sd卡、微型sd卡等)、磁和/或固态硬盘驱动器、只读和可记录盘、超密度光盘、任何其它光或磁介质、以及软盘。计算机可读介质可以存储可由至少一个处理单元执行的并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件、或利用解释器的微处理器执行的更高级代码的文件。
111.虽然以上讨论主要指执行软件的微处理器或多核处理器,但是一些实施例通过一个或多个集成电路来执行,诸如专用集成电路(asic)或现场可编程门阵列(fpga)。在一些
实施例中,这种集成电路执行在该电路自身上存储的指令。
112.如在本说明书中所使用的,术语“计算机”、“服务器”、“处理器”、以及“存储器”都是指电子或其它技术设备。这些术语不包括人或人群。为了本说明书的目的,术语显示或正在显示意味着在电子设备上显示。如本说明书中所使用的,术语“计算机可读介质”、“多个计算机可读介质”和“机器可读介质”被完全限制为以由计算机可读的形式存储信息的、有形的、物理的对象。这些术语不包括任何无线信号、有线下载信号、以及任何其它短暂信号。
113.虽然已经参考许多特定细节描述本发明,但是本领域普通技术人员将认识到的是,在不脱离本发明的精神的情况下,本发明可以以其它特定形式体现。此外,多个图(包括图7)概念性地示出过程。这些过程的特定操作可以不以所示和所述的确切顺序执行。特定操作可以不以一系列连续的操作执行,并且不同的特定操作可以在不同的实施例中执行。此外,过程可以利用若干子过程来实现,或者作为较大的宏过程的一部分来实现。因此,本领域普通技术人员将理解的是,本发明不受上述说明性细节的限制,而是由所附权利要求来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1