CN110463140B - 计算机数据中心的网络服务水平协议 - Google Patents

计算机数据中心的网络服务水平协议 Download PDF

Info

Publication number
CN110463140B
CN110463140B CN201880021243.XA CN201880021243A CN110463140B CN 110463140 B CN110463140 B CN 110463140B CN 201880021243 A CN201880021243 A CN 201880021243A CN 110463140 B CN110463140 B CN 110463140B
Authority
CN
China
Prior art keywords
nodes
sla
network
bandwidth
instances
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.)
Active
Application number
CN201880021243.XA
Other languages
English (en)
Other versions
CN110463140A (zh
Inventor
孙岩
许伟
杨晓峰
刘志
符哲
李军
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN110463140A publication Critical patent/CN110463140A/zh
Application granted granted Critical
Publication of CN110463140B publication Critical patent/CN110463140B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5006Creating or negotiating SLA contracts, guarantees or penalties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/091Measuring contribution of individual network components to actual service level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种用于多租户云计算的服务水平协议(service level agreement,简称SLA)***,以确保借助网络SLA为租户配置计算实例。例如,网络SLA可以指定将在数据中心中为租户调度的实例之间的带宽要求。所述SLA***基于与实现所述网络SLA的节点相关联的链路的剩余容量来评估所述数据中心中的节点。本发明提供了一种模块化***,以便将所述SLA***集成到现有云计算基础设施中。所述云管理***可以查询所述SLA***,以确定能够满足网络SLA要求的所述数据中心中的节点。可以对列表进行排序,以指示具有更佳容量来满足所述网络SLA要求的节点。针对租户请求调度实例部署时,所述云管理***可以利用节点的所述有序列表。

Description

计算机数据中心的网络服务水平协议
相关申请案交叉申请
本申请要求于2017年4月14日递交的发明名称为“计算机数据中心的网络服务水平协议”的第15/488,334号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明涉及计算机数据中心的技术领域,更具体地,涉及计算机数据中心的网络服务水平协议。
背景技术
云计算已成为提供计算服务的首选技术。云计算利用数据中心将计算资源作为服务而不是产品来提供,所述数据中心包括诸如用作主机的基于处理器的服务器的硬件。用户通过从云计算***请求服务来访问计算机资源,例如中央处理器、内存、存储器等。这允许用户无需购买和提供适当的硬件和软件即可访问计算机资源,以提供计算服务。终端用户可以使用移动设备、笔记本电脑、台式电脑等客户端设备访问基于云的服务,例如虚拟机或应用。
现代云计算数据中心利用多种技术灵活地为许多用户提供强大的计算服务。云计算通常使用一个或多个网络上的共享资源来提供共享服务。例如,虚拟化技术允许对诸如处理器、内存和存储器等物理计算资源进行虚拟化处理和划分,以提供来自数据中心的多个服务实例。这些架构可以称为多租户云架构,其中数据中心向多个租户提供服务。
在大规模数据中心中配置资源一直是一项挑战,在多租户云架构中尤为如此。分配给每个租户的资源将与所有其它租户隔离,即使所述资源位于同一计算设备(例如,同一物理服务器)。同时,为同一租户配置的多个实例将进行互连处理,就像位于同一子网中一样。
发明内容
根据本发明的一个方面,提供了一种设备,包括:非瞬时性内存存储器,包括指令;一个或多个处理器,与所述存储器通信,其中所述一个或多个处理器执行所述指令以:接收与在计算数据中心中部署多个计算服务实例相关联的网络服务水平协议(service levelagreement,简称SLA),所述网络SLA指定至少两个所述实例之间的带宽要求;从所述数据中心中的节点集中接收一组提议,所述提议指示与相应节点相关联的初始网络资源;使用所述节点集,针对所述提议集,确定与满足所述SLA要求相关联的可用网络资源;基于与所述提议集相关联的所述可用网络资源,将所述多个实例部署在所述计算数据中心的节点子集中。
可选地,在前述任一方面,所述节点子集是第二节点子集;所述一个或多个处理器执行所述指令,以在确定所述可用网络资源之前,在所述计算数据中心的第一节点子集中执行所述多个实例的第一部署;所述一个或多个处理器执行指令,以基于所述第一部署之后的所述可用网络资源,在所述计算数据中心中的所述第二节点子集中部署所述多个实例,所述第二节点子集包括不同于所述第一节点子集中节点的至少一个节点。
可选地,在前述任一方面,所述一个或多个处理器执行所述指令,以监控所述第一节点子集中的所述第一部署,以确定是否满足所述网络SLA要求;其中,基于未满足要求的所述第一部署,在所述第二节点子集中部署所述多个实例。
可选地,在前述任一方面,所述一个或多个处理器执行所述指令以:部署第一QoS规则,以便跨一个或多个交付单元(Point of Delivery,简称Pod)执行;部署第二QoS规则,以便跨一台或多台虚拟机执行;部署第三QoS规则,以便跨一台或多台物理机执行。
可选地,在前述任一方面,所述一个或多个处理器执行所述指令以:使用每项提议,确定一台物理机中的实例之间的可用虚拟网络资源,以满足所述带宽要求;使用每项提议,确定不同物理机中的实例之间的可用物理网络资源,以满足所述带宽要求。
可选地,在前述任一方面,每个节点的所述提议包括在所述节点处可用的初始带宽的指示;所述一个或多个处理器执行所述指令,以针对所述提议集,通过从每个节点处的所述初始带宽中扣除所述带宽要求来确定所述可用网络资源。
可选地,在前述任一方面,所述处理器执行所述指令以:针对包括所述提议集的多个提议,确定所述多个提议的互连实例之间的距离;针对所述提议集,确定在扣除所述带宽要求之后,互连Pod之间的每条链路的剩余容量;基于所述距离和每条链路的所述剩余容量,生成所述提议集的有序列表;其中,部署所述多个实例是基于所述有序列表的。
可选地,在前述任一方面,所述处理器基于互连实例之间的所述距离,对所述多个提议进行排序;通过先评估较短距离提议再评估较长距离提议,所述处理器评估所述多个提议,以便为具有足够网络资源,从而能满足所述带宽要求的所述提议集选择预先确定数目的提议。
可选地,在前述任一方面,在云管理***中接收所述网络SLA和所述提议集;所述一个或多个处理器执行所述指令,以将所述多个提议传输至服务水平协议(service levelagreement,简称SLA)***;所述一个或多个处理器执行所述指令,以从所述SLA***向所述云管理***提供所述有序列表;基于所述有序列表,采用所述云管理***部署所述多个实例。
可选地,在前述任一方面,所述网络SLA指定时延要求和丢包率要求;基于所述时延要求和所述丢包率要求生成所述有序列表;所述一个或多个处理器执行所述指令,以接收与所述部署多个实例相关联的计算SLA;所述一个或多个处理器执行所述指令,以基于所述计算SLA和所述有序列表部署所述多个实例。
可选地,在前述任一方面,所述网络SLA与部署多个容器相关联,每个容器包括计算服务的一个或多个所述实例。
可选地,在前述任一方面,所述网络SLA与部署多个Pod相关,每个Pod包括两个或多个所述容器。
根据本发明的一个方面,提供了一种方法,包括:接收与在计算数据中心部署多个计算服务实例相关联的带宽要求;从所述计算数据中心中的多个节点接收所述多个节点处可用的初始带宽的多个指示;针对所述多个节点,确定所述多个节点的互连实例之间的距离;针对所述多个节点中的至少一部分节点,基于所述初始带宽指示和所述带宽要求,确定互连实例之间的链路的剩余容量;基于互连实例之间的所述距离和所述互连实例之间的链路的所述剩余容量,在所述节点集的子集中部署所述多个实例。
可选地,在前述任一方面,所述多个实例是多个Pod;所述多个节点是多台虚拟机,所述多台虚拟机设置在包括物理处理器和物理存储器的一台或多台物理机上;互连实例之间的所述链路包括第一组链路和第二组链路,所述第一组链路包括一台物理机中的Pod之间的链路;所述第二组链路包括不同物理机中的Pod之间的链路;确定互连实例之间的链路的剩余容量包括:确定可用虚拟网络资源和确定可用物理网络资源。
可选地,在前述任一方面,所述方法还包括:基于互连实例之间的所述距离,对所述多个节点进行排序;基于互连实例之间的所述距离和所述初始带宽指示,从所述多个节点中选择一个节点集,所述节点集中包括的节点少于所述多个节点;基于互连实例之间的所述链路的所述剩余容量,生成所述节点集的有序列表;其中,基于所述有序列表,在所述节点子集中部署所述多个实例。
根据本发明的一个方面,提供了一种用于计算机数据中心管理的存储计算机指令的非瞬时性计算机可读介质,其中所述计算机指令在由一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:接收基于服务水平协议(service level agreement,简称SLA)在计算数据中心中部署多个Pod的请求,所述服务水平协议指定两个或多个所述Pod之间的带宽要求;从所述计算数据中心中的节点集中接收与每个所述节点相关联的初始带宽的指示;针对所述节点集,基于所述初始带宽指示和所述带宽要求,确定与每个节点相关联的剩余带宽;基于每个节点的所述剩余带宽,在所述节点集中的节点子集中调度所述多个Pod。
可选地,在前述任一方面,在网络管理***中接收所述请求;在SLA管理***中,从所述节点集的每个节点上的代理接收所述初始带宽指示;采用所述SLA管理***确定与每个节点相关联的所述剩余带宽,其中,所述剩余带宽指示与每个节点相关联的最拥堵链路的剩余容量;所述指令使所述一个或多个处理器执行以下步骤:基于每个节点的剩余带宽,提供节点的有序列表,其中所述有序列表被从所述SLA管理***提供给云管理***。
可选地,在前述任一方面,所述指令使所述一个或多个处理器执行以下步骤:针对包括所述节点集的多个节点,确定所述多个节点的互连Pod之间的距离;基于所述剩余带宽和互连Pod之间的所述距离,生成所述节点子集的所述有序列表。
可选地,在前述任一方面,所述指令使所述一个或多个处理器执行以下步骤:基于互连Pod之间的所述距离,对所述多个节点进行排序;通过评估所述多个节点,从所述多个节点中确定所述节点集,以选择具有满足所述带宽要求的初始带宽的预先确定数目的节点;其中,通过先评估较短距离节点再评估较长距离节点,评估所述多个节点,使得所述剩余带宽是为少于所述多个节点而确定的。
可选地,在前述任一方面,所述指令使所述一个或多个处理器执行以下步骤:基于所述带宽要求,在所述节点子集中部署一个或多个服务质量规则。
提供本发明内容是为了以简化的形式引入概念的选择,这些概念将在以下具体实施方式中进行进一步的描述。本发明内容的目的不在于识别权利要求书保护的主题的关键特征或必要特征,也不在于帮助确定权利要求书保护的主题的范围。权利要求书保护的主题不限于用于解决在背景技术中提到的任何或全部缺点的实现方式。
附图说明
图1是一种包括计算数据中心的网络环境的框图;
图2是描述计算数据中心中Pod组的计算服务水平协议(service levelagreement,简称SLA)实现方式的框图;
图3是描述一个实施例提供的计算数据中心中Pod组的网络SLA实现方式的框图;
图4是一个实施例提供的一种包括SLA管理***的计算数据中心的框图;
图5是一个实施例提供的一种计算数据中心的数据中心管理集群和计算节点的框图;
图6是描述一个实施例提供的根据网络SLA在计算数据中心中调度Pod部署的流程图;
图7是描述一个实施例提供的网络SLA的服务质量(quality of service,简称QoS)的框图;
图8是描述一个实施例提供的基于与满足网络SLA要求相关联的网络资源来评估节点的流程图;
图9是描述一个实施例提供的计算节点上初始带宽的确定过程的示图;
图10是描述一个实施例提供的网络SLA的不同类型流量的框图;
图11A至图11B是描述一个实施例提供的计算数据中心的一部分和为满足网络SLA要求的网络资源确定过程的示图;
图12A至图12C是描述一个实施例提供的在数据中心的计算节点上预留带宽的框图;
图13是描述用于调度计算数据中心中的Pod的节点提议的有序列表的生成过程的流程图;
图14是描述一个实施例提供的Pod部署和监控的流程图;
图15是描述一个实施例提供的Pod部署和监控的流程图;
图16是描述一个实施例提供的Pod重定位的流程图;
图17是一种诸如计算数据中心的计算***的框图。
具体实施方式
本发明涉及计算机数据中心管理技术,例如用于管理云基础设施的资源的数据中心管理***。云基础设施可以包括具有许多物理主机设备的数据中心,以及许多虚拟机和/或底层物理计算机资源的其它虚拟化。通常,云管理***利用服务器虚拟化技术实现诸如中央处理器(central processing unit,简称CPU)、存储器和磁盘等物理资源的精细切片和分配。通过软件定义的网络技术(包括其典型应用、网络虚拟化)来解决云计算的网络组件问题。
传统上,云计算服务水平协议(service level agreement,简称SLA)仅涉及所述云基础设施的所述物理计算资源。例如,可以为CPU、存储器、磁盘、缓存等计算资源配置计算SLA,以预留一定数量的资源并确保资源质量。虽然计算SLA涉及云基础设施的计算资源,但所述云基础设施的所述网络资源通常不受限制。这样,多个租户共享带宽等网络资源,不受个人租户限制,也不向个人租户提供保证。
根据一个实施例,为计算机数据中心配备多租户基础设施,用于基于网络服务水平协议为租户配置资源。为计算机数据中心配备服务水平协议(service levelagreement,简称SLA)***,以确保借助网络SLA配置计算实例。计算实例是指部署在计算节点中的一个或多个计算资源。实例可以包括诸如内存、计算容量(例如,一个或多个虚拟内核或计算单元)、存储器和/或其它物理基础设施等物理资源的虚拟化。实例还可以包括部署在计算节点中的软件或代码。实例示例包括用于创建HTTP服务器(例如,Web文件***)、数据库服务器或任何其它计算服务的虚拟化物理资源和代码(操作***和应用组合)。可以提供一种网络SLA,指定例如与将为租户调度的云资源相关联的带宽要求。当针对租户请求部署计算实例时,所述SLA***基于与所述节点相关联的剩余容量来评估所述数据中心中的节点。
在一个实施例中,提供了一种模块化SLA网络***,以便将所述SLA***集成到现有云计算基础设施中。所述SLA***提供并利用所述云管理***和所述SLA***之间的通用应用程序编程接口。这允许所述云管理***访问所述SLA***,作为调度所述数据中心中的节点上的计算实例的一部分。例如,所述云管理***可以查询所述SLA***,以确定能够满足租户为部署计算实例而指定的网络SLA要求的所述数据中心中的节点的列表。可以对列表进行排序,以指示具有更佳容量来满足所述网络SLA要求的节点。所述云管理***可以利用节点或提议的所述有序列表作为过程的一部分,以确定在何处针对租户请求部署计算实例。
在一个实施例中,将SLA代理部署在所述数据中心的节点上。所述节点向所述SLA管理***生成指示所述节点上可用的网络资源的提议。所述提议可以为响应特定租户请求生成,或者可以在租户请求之前生成(例如,周期性地)。在一个示例中,所述提议指示所述节点上的可用带宽。所述SLA***接收所述提议并评估所述提议以生成所述有序列表。所述SLA***可以考虑涉及满足网络SLA要求的物理资源和/或虚拟资源。例如,所述SLA***可以考虑一台虚拟机中的节点之间的流量、不同虚拟机中的节点之间的流量以及不同物理机中的节点之间的流量。
在一个实施例中,所述SLA***提供多种模式来部署计算实例以响应租户请求。在被动模式下,可以在评估所述网络资源之前定义和部署计算实例以满足所述网络SLA要求。部署后,监控所述网络,以确定是否满足所述网络SLA要求。如果不满足所述网络SLA要求,所述***可能会尝试实例重定位,以尝试满足所述网络SLA要求。在主动模式下,所述***在部署所述计算实例之前评估所述节点满足所述SLA要求的所述网络资源能力。为了基于满足所述网络SLA要求的整体网络能力来选择节点,对各个节点进行了评估。在一个实施例中,提供了一种混合过程。当具有最低资源等级的节点的数目超出阈值时,使用所述被动模式。当所述数据中心容量较大时,这将启用快速部署。当所述节点数目低于所述阈值时,使用所述主动模式,以降低重新部署的可能性。
图1示出了提供云基础设施或云计算环境的网络环境100,允许远程设备160访问由云计算数据中心110提供的计算服务。所述数据中心可以通过网络102(包括,例如,互联网)与所述远程设备160进行通信。尽管图1中描述了单个数据中心110,但是云计算架构中可能会包括多个数据中心。每个数据中心110可以包括地理位置不同的站点,所述站点托管用于支持基于云的***的硬件。因此,所述数据中心110可以包括用于提供计算节点114的多个刀片、服务器或其它计算机***。所述多个数据中心可以由单个数据中心的数据中心管理***、每个数据中心的***或两者的组合来管理。
数据中心110可以包括存储群集,所述存储群集具有通过网络(未示出)彼此互连的计算机节点114。数据中心110可以包括主机112,每台主机112包括物理机,例如耦合至网络102的服务器。每台物理机包括硬件层,所述硬件层包含一个或多个处理器(例如,CPU)128和一个或多个存储设备(例如,磁盘)126。所述存储设备可以包括光盘存储器、RAM、ROM、EEPROM、闪存、相变内存、磁盒、磁带、磁盘存储器或可用于存储所需信息并可由处理器128访问的任何其它计算机存储介质。所述硬件层可以包括诸如总线等(未示出)其它组件,通常用于实现如下所述的计算设备。
每台主机112包括提供计算服务的多个计算节点114。在该示例中,每个计算节点包括虚拟机116。所述虚拟机116可以是***虚拟机(例如,完全虚拟化)、过程虚拟机(在平***立环境中)或任何其它类型的虚拟机。所述虚拟机在相应的主机(例如,服务器)上执行。
在虚拟化层中提供虚拟机监视器124(或虚拟化管理器),以分配和管理对所述硬件层中的诸如存储设备126和处理器128之类的许多物理资源的访问。在所述虚拟化层中执行的虚拟机116可以通过虚拟机监视器124访问所述物理资源。
虚拟化层用于创建和管理虚拟机116,并向使用所述云中的所述物理资源的客户提供其它服务。例如,所述虚拟化层包括一个或多个操作***118和分配给所述一个或多个操作***118的虚拟资源。虚拟资源可以包括但不限于虚拟磁盘120和虚拟处理器122以及虚拟资源,例如虚拟内存和虚拟网络接口。所述虚拟资源和所述操作***118可以合称为所述虚拟机116。每台虚拟机116可以与所述虚拟机监视器124进行通信,可以用来执行用于管理和配置所述主机上的其它虚拟机114的应用。
在一个实施例中,为一个或多个主机计算设备112配置数据中心管理***140,所述数据中心管理***140提供接口,云运营商和云客户可以通过所述接口与所述云计算环境100进行交互。例如,所述管理***140可以提供一组API和/或具有用户接口的一个或多个基于Web的或独立的应用,以允许云运营商管理所述云资源、配置所述虚拟化层、管理客户账户以及执行其它云管理任务。所述管理***140还可以包括一组API和/或具有户接口的一个或多个基于Web的或独立的应用,用于通过远程设备160从终端用户接收云计算请求,例如创建、修改或破坏所述云中的虚拟机的请求。
为了响应客户请求,所述管理***可以基于所述客户请求在所述云计算环境100的所述硬件层中选择和配置物理资源。例如,所述管理***140可以用于通过网络(例如,互联网)为远程设备160的用户创建和管理虚拟机116及其操作环境,从而使用户能够配置虚拟机116。
所述远程设备110表示任何合适的终端用户设备且可以包括(或可以称为)诸如用户设备(user equipment,UE)、移动无线通信设备、无线发送/接收单元(wirelesstransmit/receive unit,WTRU)、移动台、固定或移动用户单元、寻呼机、蜂窝电话、个人数字助理(personal digital assistant,PDA)、智能手机、笔记本电脑、电脑、触摸板或消费类电子设备等此类设备。所述远程设备160可以具有处理器、存储器(可以是或不是非瞬时性存储器)、收发器和天线(未示出)。在特定实施例中,本文中描述为由所述远程设备提供的部分或全部功能可以由执行存储在所述存储器上的指令的所述远程设备处理器提供。所述远程设备的可替代实施例可以包括附加组件,所述附加组件可以负责提供所述远程设备的某些方面的功能,包括支持本发明实施例所必需的任何所述功能。
所述网络102可以包括任何私网或公网,以促进所述网络102的各个组件之间的通信。在各种实施例中,所述网络102可以包括互联网、PSTN或任何区域网络(例如LAN、WAN、WLAN等)。显而易见的是,尽管所述各种部件被示出为直接连接到所述网络102,但路由器和交换机(未示出)等各种中间设备可以促进此类连接。
可以理解的是,图1是可以使用的网络架构的示例,本领域技术人员应理解,所使用的特定网络架构和数据处理设备可以有所不同,如本文进一步描述的,取决于他们所提供的功能。
图2是描述响应用户请求的云资源的示例性部署的框图。在所述简化示例中,客户请求在所述数据中心110中部署两个Pod组202-1和202-2。Pod组202-1包括四个Pod204-1,用于提供通用计算服务。例如,每个Pod 204-1可以配置为具有与Pod组202-1中每个其它Pod 204-1通用的Web功能的Web服务器或Web服务。所述第二Pod组202-2中的每个Pod 204-2可以配置为与Pod组202-2中每个其它Pod 204-2通用的数据库功能的数据库服务器或数据库服务。应当注意的是,Pod和Pod组的数目和类型仅通过示例提供。可以针对任何类型的计算服务并通过任何数目的组或组内的Pod来配置Pod和Pod组。此外,Pod组中的所述Pod可以分布在多个计算节点上,而不是如图2中所示的分布在单个节点上。
Pod可以用于部署计算服务或应用的实例化。通常,Pod包括一个或多个容器、与所述容器相关联的计算机资源(例如,存储器、内存)以及关于所述容器执行的规范。所述Pod组中的每个Pod可以在共享环境中运行,以提供特定应用服务。每个Pod可以包括共享命名空间和使所述Pod与其它Pod隔离的其它隔离。
Pod组中的每个容器都提供应用或其它计算机服务的虚拟实例。通常,容器虚拟化单个应用,这不同于可以虚拟化多个应用的虚拟机。容器在应用级别而不是服务器级别实例之间创建隔离。容器不需要其自身操作***。在一个示例中,容器包括执行资源的相应计算机服务以运行所述计算机服务的最低资源量,所述资源包括代码、库和操作***部件等。容器组中的容器紧密耦合,例如共享公共地址空间、端口空间等。所述容器可以使用标准进程通信和共享内存直接通信。容器的一个示例是Docker容器,但可以使用任何容器。Docker容器是在计算节点上运行一个软件的一组***资源。Docker容器可以包括应用代码、库和其它***资源,以便在完整的文件***中运行所述应用。
许多云服务基于虚拟机和容器技术,包括Pod部署。然而,本发明不受此限,并且应用于多个租户在其中共享计算资源的任何数据中心框架中。例如,可以结合使用本发明部署任何计算服务实例。在这方面,术语“实例”可以用于指在计算节点上执行的应用的单一部署。此外,术语“实例”可以用于指容器、Pod和或虚拟机,其中所述容器包括应用和用于提供计算服务的其它计算机资源的实例;所述Pod包括一个或多个容器;所述虚拟机提供计算服务。
图2中提供了每个Pod组的计算SLA。计算SLA 210-1提供要为所述相应的Pod组202-1分配和预留的计算机资源的规范。类似地,计算SLA 210-2提供Pod组202-2的计算机资源规范。每个计算SLA都可以指定所述Pod组或所述组中的单个Pod的计算机资源。在该示例中,每个计算SLA都为所述相应的Pod组指定CPU资源、存储器资源、磁盘资源和缓存资源。租户可以提供所述SLA规范,随附或作为代表所述租户部署云资源的请求的一部分。所述计算SLA专用于特定租户的云部署。因此,可以使用公共物理资源为多个租户配置,同时为特定租户预留一定数量的资源。
虽然诸如图2所描述方案之类的方案对多租户环境中云基础设施的所述计算机资源起到一定程度的管理作用,但包括所述基础设施中实例或Pod之间链路的所述网络资源不受所述计算SLA的限制。所述计算SLA不涉及部署所请求的服务所使用的网络资源。因此,允许所述多个租户以不受限制的方式所述共享数据中心内的所述网络资源。例如,所述租户对在数据中心内可能用于其服务的物理带宽没有保证或限制。
传统云计算是在假定网络资源将依次处理所有必要流量的前提下,集中于CPU或存储器等所述计算机资源上。但是,提供容器和Pod等较小服务显示,为租户预留的计算机资源之间的网络资源很容易发生拥塞,从而降低向所述用户提供的服务水平。例如,针对单台物理机的多台虚拟机,容器可能按多个顺序来部署,从而使所述网络资源更加受限。
为了克服所述计算SLA的所述限制,本发明提供了云计算基础设施内的一种网络SLA框架。提供了一种网络SLA,所述网络SLA可以指定在多租户云中为租户部署的计算资源之间的网络要求。所述租户可以提供所述网络SLA,随附或作为代表所述租户部署计算机资源的请求的一部分。所述网络SLA可以为所述相应租户指定计算机资源的带宽要求、时延要求、丢包率要求(在一段时间内可能会丢弃的数据包的最大数目)和/或其它网络要求。可以将所述网络SLA指定为租户部署中的实例、容器和/或Pod之间的要求。
图3是描述针对租户请求的云资源的示例性部署的框图,包括指定针对所述请求预留的计算机资源之间的网络SLA。图3继续图2的简化示例,描述数据中心110中的Pod组202-1和202-2。但是,在图3中,每个Pod组的所述租户部署包括与所述Pod组相关联的网络SLA。在该示例中,提供了第一网络SLA 212-1,所述第一网络SLA 212-1指定Pod组202-1和所述网络102之间的网络要求。所述第一网络SLA 212-1可以指定每个Pod 204-1和互联网之间的链路的带宽资源、时延资源和/或丢包率资源。带宽资源可以指定诸如Pod等计算实例之间要提供的最小带宽。时延资源可以指定实例之间的最大时延。丢包率资源可以指定实例之间的最大丢包率。示出了一具体示例,其中所述网络SLA规定Pod 204-1和互联网208之间的每条链路必须预留10Mbits的带宽。虽然每条链路被指定相同的带宽要求,但不同的链路可以包括不同的要求。例如,SLA 212-1可以单独指定每个Pod的要求,也可以指定所述Pod组中的每个Pod的要求。
类似地,提供了第二网络SLA 212-2,所述第二网络SLA 212-2指定Pod组202-2和Pod组202-1之间的网络要求。SLA 212-2可以指定组202-1中的每个Pod与组202-2中的每个Pod之间的链路的带宽要求、时延要求和/或丢包率要求。示出了一具体示例,其中所述网络SLA指定Pod 204-1和Pod 204-2之间的每条链路必须预留5Mbits的带宽。虽然每条链路被指定相同的带宽要求,但不同的链路可以包括不同的要求。例如,SLA 212-2可以单独指定每个Pod的要求,也可以指定所述Pod组中的每个Pod的要求。这允许在为特定租户部署的计算服务之间预留一定数量的带宽。
尽管图3描述了使用Pod的具体示例,但同样的概念可以应用于部署在数据中心节点中的容器或其它计算服务实例。例如,可以用容器代替所述Pod,以便使用所述网络SLA来调度所述容器部署。
如典型实现方式中可以预期的,SLA规范的变化可以用来解决数目不断变化的服务实例。在一个示例中,链路的带宽表示应在服务之间的任何实例对之间预留的带宽量。在另一示例中,链路的数目表示服务之间的聚合带宽。所述第二示例中的实例之间的所述带宽可以通过在所有实例对中平均划分所述聚合带宽来确定。可以生成数据面策略条目并将其执行到云基础设施中的适当交换机上。
图4是描述数据中心内节点114上Pod部署的示例的框图。在该示例中,跨两台主机112-1和112-2上的四个节点部署了八个Pod。每个节点可以是但不需要是其自身的虚拟机。图4示出了所述客户部署方面的所述Pod之间的三种类型流量。流量T1表示单个节点114-1中Pod 204-1和204-2之间的数据路径。在该示例中,流量T1从第一Pod 204-1上的所述接口152通过交换机154并通过其接口152传递至所述另一Pod 204-2。因此,流量T1在单个节点114-1内。
流量T2通过本地交换机154和接口156,从节点114-1中Pod 204-1上的所述接口152传递至交换机158,所述交换机158将节点114-1耦合至所述同一物理主机112-1中的节点114-2。从交换机158,流量T2通过接口156、交换机154和接口152传递至主机112-1的节点114-2中的所述第二Pod 204-4。因此,流量T2在所述同一物理主机112-1中的两个节点之间传递。虽然未示出,但流量T2可以从第一节点114-1上的第一VM传递至所述第二节点114-2上的第二VM。
流量T3从Pod 204-1上的所述接口152传递至第二物理主机112-2中的Pod 204-8。流量T3通过物理网络160从主机112-1上的交换机158传递至主机112-2。例如,物理网络160可以包括附加接口和交换机。因此,流量T3在不同主机中的两个节点之间传递。虽然未示出,但流量T3可以从所述第一节点上的VM传递至所述第二节上的VM。
由租户请求提供的所述网络SLA可以指定Pod 204之间的特定带宽。为了考虑可能发生的全部三种类型流量,所述SLA管理***可以提供针对每种类型流量执行的服务质量(quality of service,简称QoS)规则。服务质量是指网络或网络中节点的传输质量和服务可用性的度量。QoS规则基于与所述数据包相关联的参数来定义在节点上路由数据包的服务优先级。QoS规则可以基于端口、设备、协议、应用、租户或与所述数据包相关联的任何其它参数来应用。QoS规则可以指定数据包参数和所述数据包参数的路由优先级。例如,QoS规则可以指定:TCP/IP数据包优先于其它数据包类型;与一个租户相关联的数据包优先于来自另一租户的数据包;或者,所述节点上的一定数量的带宽将用于传输与特定租户相关联的数据包。图5是示出对应于图4中示出的三种类型流量的三种QoS流的框图。在该示例中,第一规则集QoS#1控制单个节点或VM内的流量。所述第一规则集QoS#1控制一个VM内的流,用于单个主机112-1内所述同一节点114-1中容器204-1的接口152上的出站流量控制。QoS规则集可以包括一个或多个规则。
第二规则集QoS#2控制所述同一物理主机112-1中的两个节点之间的流量。所述流量可能在两台虚拟机之间。在第一容器204-1上的所述接口152上提供流量控制,以控制出站流量并在节点114-1上的容器204-1和204-2上提供优先控制。此外,也可以在节点114-2上的Pod 204-4上的所述接口152上提供流量控制,以控制交换机154上的入站流量。在一个实施例中,交换机154可以是容器Docker。
第三规则集QoS#3控制不同物理主机112-1和112-2中的两个节点之间的流量。所述流量可能在所述两台主机上的两台虚拟机之间。在节点114-1上的Pod 204-1上的所述接口152上提供流量控制,以控制出站流量并在节点114-1上的Pod 204-1和204-2上提供优先级控制。此外,也可以在节点114-4上的Pod 204-8上的所述接口156上提供流量控制,以控制交换机154上的入站流量。
图6是描述一个实施例提供的数据中心110和数据中心管理***140的框图。一台或多台物理机上的多个计算节点114被描述为与所述数据中心管理***140进行通信。
数据中心管理***140包括云管理***330,用于响应租户请求将计算资源部署在所述数据中心中的节点114中。如图6所示,CMS 330用于接收指定部署计算机资源的客户要求的服务描述322和对应于所述服务描述322的网络SLA描述320。所述服务描述可以指定要针对特定计算服务部署的容器组和相应容器或实例。所述服务描述也可以或者可替代地指定要针对特定计算服务部署的Pod组和相应Pod或实例。所述服务描述可以指定要针对每个Pod组部署的Pod类型和Pod数目。此外,所述服务描述可以指定不同Pod组之间的连接。
与传统云资源部署一样,CMS 330可以利用计算SLA来确定哪些节点将用于部署所述请求的资源。例如,CMS 330可以使用CPU、存储器和缓存规格来确定在哪些节点上调度或配置Pod部署。根据一个实施例,CMS 330用于接收网络SLA并基于一个或多个网络SLA要求调度云资源。例如,CMS 330可以基于所述SLA中的带宽要求和要部署所述Pod的节点之间链路的可用带宽,将Pod部署在所述数据中心中的节点114中。如图所示,CMS 330可以接收可用资源的指示,进而调度实例或Pod,以便在所述数据中心中进行部署。
在一个实施例中,图6中描述的数据中心的框架允许基于网络SLA调度云资源,只对现有云基础设施进行细微修改。提供了一种模块化网络SLA框架,所述框架包括交互式API,以允许所述CMS 330与所述SLA***302集成。在所述CMS 330和所述SLA***302之间交换和同步信息。不同类型的CMS可以调用标准API与所述SLA***302交互,在一个示例中提供抽象API,其可以提供广泛的SLA功能。这样,所述CMS 330仍然是实例部署的最终决定点,可以维护SLA执行的信息。
在一个实施例中,提供了基于提议的调度,使得每个节点114(或每台物理主机)以提议的形式向所述CMS 330报告其可用的网络资源。CMS 330可以根据配置目的对这些提议进行排序,例如以便最大限度地减小整体最大工作负载。此外,所述CMS参考所述SLA***302,以将要接受的提议的确定过程与网络SLA要求结合起来。
API处理程序306在CMS 330上接收来自SLA插件304的请求。在一个实施例中,使用REST API传送请求。所述API处理程序306提取每个请求的类型和有效负载。然后,所述处理程序调用所述SLA***302中的相关模块来执行所述请求。最后,所述API处理程序306回复从所述适当的模块返回的结果。
部署配置管理器310用于从所述CMS 330接收实例配置。这允许所述SLA***获取诸如位置、隶属关系和网络配置等信息。
SLA调度器308用于实现评估提议。所述SLA调度器308可以实现如下所述的提议排序、过滤和/或调整。所述SLA调度程序可以基于当前网络容量提供评估结果和/或重定位结果。在一个示例中,所述网络SLA指定至少两个所述Pod之间的带宽要求。
SLA策略管理器312用于处理策略执行请求。SLA策略管理器312生成数据面SLA策略条目并委托策略呈现器316将所述策略推送到所述数据面,如图所示。管理器312进一步维护数据库中的逻辑和数据面策略条目,以简化其它策略修改。
SLA策略呈现器316用于在所述云基础设施中启用了OpenFlow的交换机上实现所述数据面策略。所述SLA策略实现方式利用多种南向协议。所述SLA策略呈现器隐藏底层复杂性,为策略执行提供干净的接口。
网络资源管理器314用于从所述底层云基础设施收集拓扑和网络资源(例如,链路容量),如图所示。所述网络资源管理器314构建网络资源图356。所述网络资源图由其它模块用来获取实例之间的所述带宽容量和/或确定策略执行点。可以参考所述图以生成部署的任意Pod(或实例)对之间的所述路径和所述可用容量。所述网络资源图356可以是用于指示拓扑和链路容量的任何数据结构(例如,表格、列表或数据库)。网络资源图356可以是数据结构或子数据结构(例如,数据结构中的数据结构),例如可以在数据面上维护和操作的表格、列表或数据库。所述网络资源图356可以存储在任何非瞬时性内存存储器中。上述数据结构可以在主机112的存储器或存储单元中存储和维护。
网络资源矩阵(network resource matrix,简称NRM)352存储部署实体(deployment entity,简称DE)或Pod之间的可用网络资源。术语“部署实体”可用于指可以用来实例化给定云基础结构中的Pod或实例的最低级别计算机资源。例如,部署实体可以是虚拟机、物理主机、部署的Pod或容器或其它实体。在一个实施例中,所述NRM是N x N矩阵,其中N是所述数据中心中的DE的数目。对于每个DE对,所述NRM中的相应值是沿其互连路径的所述可用网络资源(例如,带宽容量)。在一个实施例中,仅响应拓扑变化生成所述互连路径。每次分配带宽之后,将逐步更新所述带宽容量,从而能够快速计算所述评估结果。所述网络资源矩阵352可以是用于将可用网络资源与部署实体关联的任何数据结构(例如,表格、列表或数据库)。矩阵352可以是数据结构或子数据结构(例如,数据结构中的数据结构),例如可以在数据面上维护和操作的表格、列表或数据库。所述矩阵352可以存储在任何非瞬时性内存存储器中。上述数据结构可以在主机112的存储器或存储单元中存储和维护。
距离矩阵354用于存储任意DE之间的距离。在一个实施例中,所述距离矩阵也具有N x N的大小。在一个实施例中,所述距离计算为一对DE之间的跳数。所述距离越长,所述路径占用的链路越多。评估提议时,所述SLA***可以通过参考每对互连DE的所述距离矩阵354来基于位置对所述提议进行排序。所述距离信息可用于在所述云基础设施中针对时延执行网络SLA。所述距离矩阵354可以是用于指示DE之间距离的任何数据结构(例如,表格、列表或数据库)。所述矩阵354可以是数据结构或子数据结构(例如,数据结构中的数据结构),例如可以在数据面上维护和操作的表格、列表或数据库。所述矩阵354可以存储在任何非瞬时性内存存储器中。上述数据结构可以在主机112的存储器或存储单元中存储和维护。
通常,云层次结构中的高层链路承载大量流量,与低层链路相比,更容易发生拥塞。在一个实施例中,所述SLA***应用本地化来缓解高层链路的压力以及减少通信时延。所述SLA***可以使用距离和整体链路利用率作为启发式度量来调度云资源部署。在一个实施例中,所述SLA***试图对链路引入最少负载增加,将通信实例放置在尽可能靠近的位置,以满足部署资源的服务请求。
CMS 330是一种用于接收与在计算数据中心中部署多个Pod相关联的网络服务水平协议(service level agreement,简称SLA)的手段的一个示例。在一个示例中,所述网络SLA指定至少两个所述Pod之间的带宽要求。在一个示例中,所述手段支持接收与在计算数据中心部署多个计算服务实例相关联的带宽要求。在一个示例中,所述手段支持接收基于服务水平协议(service level agreement,简称SLA)在计算数据中心中部署多个Pod的请求,所述服务水平协议指定两个或多个所述Pod之间的带宽要求。
CMS 330是一种用于从所述数据中心中的节点集中接收一组提议(所述提议集指示与诸如所述相应节点相关联的初始带宽之类的初始网络资源)的手段的一个示例。
CMS 330是一种用于基于与所述提议集相关联的所述可用网络资源将所述多个Pod部署在所述计算数据中心的节点子集中的手段的一个示例。在一个示例中,所述手段支持基于互连实例之间的所述距离和所述互连实例之间的链路的所述剩余容量,在所述节点集的子集中部署所述多个实例。在一个示例中,所述手段支持基于每个节点的所述剩余带宽,在所述节点集中的节点子集中调度所述多个Pod。
CMS 330包括允许所述CMS 330和SLA***302之间通信和同步的SLA插件304。在一个实施例中,所述SLA插件提取从节点114接收的提议,参考所述SLA***获取考虑网络资源的布置方案。在一个实施例中,CMS 330上的SLA插件304用于使用RESTful API(例如REST)与所述SLA管理***302进行通信。所述SLA插件将所述SLA***302的所述SLA功能与所述CMS 330结合起来。在一个实施例中,所述SLA插件解析租户规范并提取一个或多个SLA要求(也称为意图)。所述SLA插件拦截所述CMS的提议,参考所述SLA***302进行评估。所述SLA***回复布置建议以进行布置,例如通过提供节点的有序列表,所述有序列表表示具有更多容量以满足所述SLA要求的节点。
SLA 302(例如,SLA调度器308)是一种用于接收与在计算数据中心中部署多个Pod相关联的网络服务水平协议(service level agreement,简称SLA)的手段的一个示例。在一个示例中,所述手段支持接收与在所述计算数据中心部署多个计算服务实例相关联的带宽要求。在一个示例中,所述手段支持接收基于服务水平协议(service level agreement,简称SLA)在计算数据中心中部署多个Pod的请求,所述服务水平协议指定两个或多个所述Pod之间的带宽要求。
SLA***302是一种用于从所述数据中心中的节点集中接收一组提议(所述提议集指示与所述相应节点相关联的初始网络资源)的手段的一个示例。在一个示例中,所述手段支持从所述计算数据中心中的多个节点接收所述多个节点处可用的初始带宽的多个指示。在一个示例中,所述手段支持从所述计算数据中心中的节点集中接收与每个所述节点相关联的初始带宽的指示。
SLA***302是一种用于使用所述节点集针对所述提议集确定与满足所述SLA要求相关联的可用网络资源的手段的一个示例。在一个示例中,所述手段支持针对所述多个节点,确定所述多个节点的互连实例之间的距离;所述手段支持针对所述多个节点中的至少一部分节点,基于所述初始带宽指示和所述带宽要求,确定互连实例之间的链路的剩余容量。在一个示例中,所述手段支持针对所述节点集,基于所述初始带宽指示和所述带宽要求,确定与每个节点相关联的剩余带宽。
图7是数据中心的框图,描述所述数据中心的模块之间的流,以基于租户请求部署云资源。网络管理***(network management system,简称NMS)344用作数据中心和用户之间的整体接口,将请求路由到所述适当的模块。网络管理***344接收部署云资源(例如,数据中心110中的一个或多个Pod组)的请求。如图6所示,所述租户请求可以包括与所述要调度的云服务相关的服务描述以及指定所述要部署的云的组件之间的SLA要求的网络SLA描述。此外,还可以接收计算SLA描述,指定用于实例化所述云服务的所述计算机资源的要求。
为响应所述租户请求,NMS 344向CMS 142发出创建Pod的请求,向SLA***302提供所述云基础设施的拓扑信息。CMS 330接收所述请求并联系SLA插件以启动SLA功能。SLA插件304解析所述SLA规范并提取各种要求。然后,SLA插件304向SLA***302发出查询或请求,以评估针对所述SLA规范的提议。在一个实施例中,在CMS 330上,从每个所述节点上的SLA代理340接收提议。所述SLA插件304向所述SLA***提供来自CMS 330的所述提议,随附基于所述SLA规范对所述提议进行评估的所述请求。在另一实施例中,所述节点上的所述SLA代理340直接向所述SLA***302提供提议。
所述SLA***接收所述提议并根据所述SLA规范评估所述提议。如下所述,可以执行各种过滤、排序和评估来评估节点,以满足所述服务描述和SLA规范。在一个实施例中,所述SLA***生成可以满足所述服务描述和SLA规范的提议或节点的有序列表。所述提议可以基于其满足所述租户请求的能力进行排序。其它因素(例如,位置)可以用于对所述列表进行排序。所述SLA***302向所述CMS***330回复提议或节点的所述有序列表。接收所述评估的提议之后,所述CMS调度必要的云资源,以便在所述数据中心中进行部署。所述CMS可以调度实例、容器和/或Pod,以便在所述数据中心中的节点114上进行执行。所述CMS基于所述有序列表确定要使用的节点。所述CMS还可以使用计算SLA和其它要求来确定要使用的节点。这些将基于所述网络SLA要求与所述有序列表组合使用。
针对所述租户请求确定所述资源部署之后,所述CMS向每个选定节点114上的CMS代理332发出请求。所述请求适用于要部署在所述节点中的Pod。为响应所述创建Pod请求,所述CMS代理向SLA代理340发出请求。所述CMS代理请求所述SLA代理创建网络并让所述Pod加入所述网络。
然后,所述SLA代理从所述SLA***302请求网络拓扑信息。所述SLA***回复网络拓扑信息。然后,所述SLA代理为所述Pod创建所述必要的网络拓扑,实例化所述节点上的Pod以加入所述网络。标准网络组件(standard network component,简称SNC)360的创建如图7所示。
在图7中,所述数据中心管理***包括SLA监控器318,所述SLA监控器318与所述数据中心中的每个节点上的监控代理350通信。所述监控代理向生成端到端网络状态的所述SLA监控器报告。所述SLA监控器可以在每个节点上执行数据面策略。
图8是描述一个实施例提供的多租户数据中心中云资源的调度过程400的流程图。过程400可以使用SLA管理***302在图1中示出的环境中实施,但不限于此类网络环境示例。过程400可以由图6和图7中的各种元件执行,但不限于这些示例。
在步骤402,所述SLA管理***302接收与租户请求相关联的网络SLA,以调度所述数据中心中的云资源。如下所述,可以执行过程400,以便以主动模式初始部署云资源,从而满足租户请求。在被动模式下,可以执行过程400,以在响应租户请求的初始部署之后重新部署云资源。例如,所述SLA***可以调度用于满足服务描述的资源而不考虑网络SLA。所述网络SLA可以在所述初始部署之后使用,以便基于所述SLA要求重新部署资源。
在步骤404,所述SLA***从所述数据中心中的节点接收提议,所述提议指示每个节点上可用的初始网络资源。所述提议可以直接从所述SLA***中的所述节点114接收,或者可以在所述CMS从所述节点接收所述提议之后从所述CMS接收。每个提议指示所述节点上可用的当前网络资源。例如,所述提议可以指示所述节点上可用的带宽,或者与所述节点相关联的当前丢包率或时延。应当注意的是,在步骤404,所述提议可以在接收租户请求和/或所述网络SLA之前或之后接收。例如,在一个实施例中,为响应租户请求,可以接收所述提议。在另一实施例中,每个节点可以周期性地发出提议。所述SLA***可以使用先前接收的提议来评估稍后接收的SLA规范。
在步骤406,所述SLA***针对每个提议确定为所述服务描述调度所述网络SLA相关联的网络资源。在一个实施例中,所述SLA***可以确定互连Pod之间的距离(例如,跳数)。所述SLA***可以针对一项提议评估所有互连Pod之间的路径。在一个实施例中,所述SLA***可以确定属于互连Pod之间路径的全部所述链路的剩余容量。在一个实施例中,所述SLA***在步骤406生成提议列表。可以对所述列表进行排序,以指示与针对每项提议实现所述网络SLA相关联的总体网络成本。在所述列表上,可以将成本较低的提议或节点置于较高位置,以便在其它提议之前进行考虑。
在步骤408,所述CMS基于与每项提议相关联的所述网络资源来调度云资源,以便部署在所述网络中的节点中。在一个实施例中,所述CMS从所述SLA***302接收所述有序列表。所述CMS使用所述列表来确定所述云服务的部署位置,其中所述列表指示与用于实现所述SLA的每项提议相关联的成本。例如,所述CMS可以结合计算SLA利用所述列表来确定用于实例化所述请求的服务的所述节点。
在一个实施例中,所述SLA调度基于具有所述网络SLA最多可用资源的节点完成。在一个实施例中,SLA调度基于具有能够满足所述网络SLA要求的最少资源的节点完成。可以使用复杂的计算和/或批处理。在一个示例中,在所述具有最多可用资源的节点上部署Pod;如果对于需要更多资源的Pod,需要具有更多资源的节点,则可以随后将所述Pod移至另一个具有更少资源的节点。
在一个实施例中,步骤408包括在具有所述Pod部署的所述节点中部署一个或多个服务质量(quality of service,简称QoS)规则。所述QoS规则可以包括:部署用于跨一个或多个Pod执行的规则;部署用于跨一台或多台虚拟机执行的规则;和/或部署用于跨一台或多台物理机执行的规则。
图9是描述确定与针对从节点接收的提议调度网络SLA相关联的网络资源的确定过程420的流程图。在一个示例中,过程420可以在过程400的步骤406使用,以确定与提议相关联的网络资源。过程420描述使用带宽信息基于网络资源要求生成提议的有序列表。在一个实施例中,过程420可以由SLA管理***302执行。
在步骤422,所述SLA***针对多个提议,确定与来自所述租户请求的所述SLA规范相关联的Pod部署之间的距离。所述距离可以确定为部署实体之间的跳数,在所述部署实体中,针对所述提议部署所述Pod。
在步骤424,所述SLA***访问每个节点的所述提议中报告的所述初始带宽。可以在所述节点中使用各种技术来确定初始带宽。在一个实施例中,所述初始带宽是所述节点中当前可用的带宽量。可以使用基于CPU使用率的估计和其它技术。
在步骤426,所述SLA***从每项提议的所述初始带宽中扣除所述SLA的所述带宽要求。对于每项提议,所述SLA***可以扣除所述SLA为部署在所述节点中的Pod预留的带宽。
在步骤428,基于所述网络拓扑,针对每个节点执行时延估计。在一个实施例中,所述时延估计由每个节点上的所述SLA代理执行。在另一实施例中,所述SLA管理***302在步骤428执行所述时延估计。步骤428是可选的。在一个实施例中,所述***仅基于带宽对所述提议执行所述网络资源分析。
在步骤430,针对每个节点,执行丢包率估计。所述丢包率估计可以由每个节点上的所述SLA代理执行,也可以由所述SLA管理***302执行。例如,所述丢包率估计是可选的,其中仅带宽用于调度所述云资源。
在步骤432,所述SLA***302基于所述网络资源分析生成所述提议的有序列表。在一个示例中,所述SLA***基于所述网络资源分析,针对每项提议或所述提议的子集生成评分。所述评分可以基于与所述提议相关联的Pod部署之间的所述距离和成本,其中所述成本表示使用所述提议满足所述网络SLA要求所需的网络容量。使用较少资源或具有布置位置更近的Pod部署的提议的评分可能较高,因此,这些提议被置于评分较低的提议之上。从所述SLA***向所述CMS提供所述有序列表,用于在所述数据中心调度所述云资源。
图10描述了框图430,所述框图430示出了节点上的带宽使用率作为CPU使用率的函数。图10示出随着CPU使用率的增加,带宽使用率通常会增加。因此,可以基于所述计算节点上的CPU使用量来估计特定计算节点上的所述带宽使用率。在一个示例中,可以基于节点上的所述CPU使用量来确定与所述节点相关联的所述初始带宽。可以确定所述CPU使用量并使其与带宽量相关。然后,可以确定所述节点上的所述剩余带宽,在从所述节点接收的提议中将其作为所述初始带宽报告至所述SLA***。在一个实施例中,根据计算节点上的CPU使用率确定在步骤424访问的所述初始带宽。
图11A和图11B是数据中心的一部分的框图,示出了数据中心中节点之间的带宽的示例。在图11A中,两个节点114与交换机158进行通信。每个节点中部署三个Pod 204。在每个节点内,所述Pod与耦合至接口156的交换机154进行通信。每个节点上的接口耦合至交换机158。图11B是所述数据中心的另一表示,描述了耦合至交换机154的所述Pod 204,所述交换机154转而耦合至交换机158。交换机158耦合至高层交换机159。图11B描述了所述节点之间所述链路的所述带宽容量。Pod 204和交换机154之间链路的容量为10Gbps。交换机154和交换机158之间链路的容量为40Gbps,交换机158和交换机159之间的链路也是如此。
如图11B所示,典型基础设施在网络中的级别越低,所具有的带宽容量越低。因此,一个实施例包括分析Pod部署的近节点网络资源,同时忽略远节点资源。这样,可以简化针对提议的网络资源分析以满足网络SLA要求,从而加快所述部署过程。在一个实施例中,在过程420的步骤426评估所述近节点资源,以便从每个节点报告的所述初始带宽中扣除所述SLA预留的所述带宽。
图12A至图12C是数据中心110的一部分的框图,描述了与所述SLA规范相关联的节点上的带宽量或提议的确定过程。在步骤426,可以使用图12A至图12C中描述的过程来确定与所述SLA规范相关联的带宽量,以从提议中的节点报告的所述初始带宽中扣除。所述过程可以用作针对每项提议计算每个节点上的剩余容量的一部分。在一个示例中,所述过程可以由所述SLA***302执行。
图12A描述了云资源部署的客户或服务规范的示例。图12A继续图3中示出的示例。所述服务规范规定生成两个Pod组,第一Pod组具有四个Pod,所述第二Pod组具有两个Pod。所述Pod组中的每个Pod实例化所述相同的计算服务,例如Web服务器。在一个示例中,Pod组202-1包括提供Web服务的四个Web Pod 204-1,Pod组202-2包括提供数据库服务的两个数据库Pod 204-2。
在图12A的示例中,所述租户请求包括网络SLA,所述网络SLA规定所述第一Pod组的每个Pod和所述第二Pod组的每个Pod之间所述路径的最小带宽为5Mbps。如图所示,将提供总共八条路径,以将一组的所述四个Pod与另一组的所述两个Pod互连。
所述SLA管理***302将来自所述网络SLA的链路要求转换为节点要求,所述节点要求可用于针对提议扣除每个节点上所需的带宽。图12B描述了第一步骤,在所述第一步骤,所述SLA***302聚合每个Pod的所述链路,以将所述链路要求转换为每个Pod的Pod要求。在该示例中,组202-1的每个Pod包括10Mbps聚合带宽要求。所述聚合带宽要求通过获取包括所述Pod在内的每个链路要求的和确定。组202-2的每个Pod包括20Mbps聚合带宽要求。
图12C描述了第二步骤,在所述第二步骤,所述SLA***302聚合来自每个Pod的链路,以将所述Pod要求转换为节点要求。在该示例中,在第一节点114-1上定位或调度Pod组202-1的两个Pod,在第二节点114-2上调度两个Pod。在第三节点114-3上放置Pod组202-2的两个Pod。SLA***302将节点114-1和114-2上的所述Pod带宽要求聚合为每个节点20Mbps的节点要求。SLA***302将节点114-3上的所述Pod带宽要求聚合为40Mbps的节点要求。
所述SLA***可以使用所述节点带宽要求来确定与每项提议的每个节点相关联的带宽。例如,所述SLA***可以从提议中的节点报告的所述初始带宽中扣除所述节点的所述聚合带宽要求,以确定与每项提议相关联的每个节点的剩余容量。
图13是描述为响应在数据中心部署云服务的租户请求中可能接收到的网络SLA生成提议的有序列表的过程440的流程图。在一个实施例中,过程440可以作为过程420的一部分来执行,例如以便在步骤432生成提议的所述有序列表。在一个示例中,过程440由SLA***302执行。
所述SLA***访问从多个节点接收的多项提议。所述提议可以周期性地接收,也可以为响应具体租户请求而接收。在步骤450,所述SLA***针对每项提议确定与所述网络SLA相关联的互连Pod或实例之间的距离。在一个示例中,所述SLA***针对每项提议计算所述网络SLA中涉及的互连实例对之间的总距离。在一个实施例中,在步骤450,所述计算使用距离矩阵354。在一个示例中,所述计算的复杂性为O(N x P),其中,P是对等实例的数目。
在步骤452,所述SLA***根据针对每项提议计算的所述距离对所述提议进行排序。在一个示例中,所述SLA***将所述提议排序成列表,使得最短距离提议首先出现在所述列表中。这使得能够先于具有较差位置(较长距离)的提议评估具有较佳位置(较短距离)的提议。在一个示例中,给定N项提议,所述排序操作的复杂性为O(N x logN)。
在步骤454,所述SLA***从所述列表中选择所述第一提议,以选择所述具有最短距离的提议。在步骤456,所述SLA***确定与步骤456的所述提议相关联的所述网络资源。在一个示例中,所述SLA***针对所述提议确定互连Pod或实例之间的所述网络资源。
在一个示例中,所述SLA***参考实例配置管理器来确定与所述SLA策略有关的实例。所述SLA***将原始评估请求转换为相应的Pod间需求。所述Pod间需求可以确定为部署实体之间的所述带宽要求。
在步骤458,所述SLA***确定所述提议是否具有足够的网络资源来满足所述网络SLA要求。在一个实施例中,所述SLA***访问所述网络资源矩阵352以确定所述提议是否具有足够的网络资源。所述SLA***可以使用所述矩阵来过滤没有足够网络资源的提议。每个部署实体或Pod可以O(1)复杂性进行过滤。
如果所述提议没有足够的网络资源,所述SLA***在步骤460跳过或丢弃所述提议,然后转到步骤454,选择具有最短距离的下一项提议。如果没有剩余提议,所述SLA***可以确定所述网络容量不足以满足所述网络SLA要求。
如果提议具有足够的网络资源,则在步骤462对所述提议进行评估。在一个示例中,步骤462包括:针对所述提议,评估所述网络SLA的每个相关实例对之间的路径。对于每个Pod或部署实体,所述SLA***在执行所述提议的所述实例之后,确定每条链路的所述剩余容量。所述SLA***可以确定所述提议的所述最拥堵链路。然后,在步骤464,将所述提议添加至潜在提议列表。在一个示例中,将每项提议的所述最拥堵链路的值的指示包含在所述列表中。
在步骤466,所述SLA***确定所述列表中的提议的数目是否等于预先确定的数目C。步骤466是可选的,因为所有提议都可以在一个实施例中进行评估。如果所述提议数目不等于C,所述SLA***将返回到步骤454,选择所述具有最短距离的下一项提议。
如果所述提议数目等于C,所述SLA***将基于为每项提议中最拥堵链路确定的值对所述提议进行排序。具有最不拥堵链路的提议首先出现在所述列表上,以指示其在服务所述网络SLA方面的高适用性和效率。在一个实施例中,所述SLA***用于返回最多C项提议,以提供更快的响应时间。根据距离对所述提议进行排序,然后基于剩余容量对预先确定数目的提议进行排序,可以使用高效过程。所述提议的有序列表可以从所述SLA***提供给所述CMS。
图14是描述一个实施例提供的第一模式的Pod部署的过程500的流程图。图14的所述过程500可以称为主动模式,因为所述CMS在租户请求的初始Pod部署中使用可用网络资源。所述CMS参考所述SLA***来确定所述网络服务所述网络SLA的能力。基于节点服务所述网络SLA的容量,在所述数据中心中选择所述节点。
在步骤502,所述数据中心管理***接收部署一个或多个Pod组的租户请求。所述租户请求可以包括服务规范、计算SLA和/或网络SLA。在步骤504,所述***访问第一Pod组的Pod组规范。在步骤506,所述***定义所述Pod组及其Pod。在步骤508中,如果定义了多个Pod组,所述***将在Pod组之间添加链路。在步骤510,所述***定义所述Pod组之间的所述SLA。在一个实施例中,步骤502由网络管理***执行,步骤504至510由云管理***执行。其它组件可以执行这些功能。
在步骤512,所述***基于所述网络SLA调度Pod的部署。在一个实施例中,步骤512由图8的过程400执行。在一个实施例中,所述CMS向所述SLA***发出请求,以生成所述网络SLA的提议列表。所述CMS从所述SLA***接收所述列表并用其确定用于部署Pod的节点以满足所述网络SLA要求。
在步骤514中,所述***确定是否已定义全部所述Pod组。如果要定义附加Pod组,则在步骤504继续所述过程。如果已定义所有Pod组,则所述过程继续进行步骤516。在一个示例中,步骤516由SLA监控器318和监控代理350执行。每个节点上的监控代理监控带宽、时延、丢包率等以确定是否满足所述网络SLA要求。如果不满足所述SLA要求,所述***尝试在步骤520重定位Pod,以试图遵守所述网络SLA规范。如果不满足所述网络SLA要求,可以生成报告并且可能终止所述服务。
图15是描述一个实施例提供的第二模式的Pod部署的过程550的流程图。图15的所述过程550可以称为被动模式,因为所述CMS在确定与满足所述网络SLA要求相关联的所述网络资源之前针对所述服务规范部署所述Pod组。部署所述Pod之后,所述***将监控所述部署并进行修改以满足所述网络SLA要求(若需要)。
在步骤552,所述数据中心管理***接收部署一个或多个Pod组的租户请求。所述租户请求可以包括服务规范、计算SLA和/或网络SLA。在步骤504,所述***访问第一Pod组的Pod组规范。在步骤506,所述***定义所述Pod组及其Pod。在步骤558,所述CMS部署所述Pod组的所述Pod。步骤558可以包括评估所述数据中心中的节点,以满足指定诸如CPU等计算机资源的计算SLA。
在步骤560,所述SLA***确定是否有所述租户请求的要部署的附加Pod组。如果剩余附加Pod组,所述过程将返回到步骤554,以访问下一Pod组的规范。
所有Pod组均已部署完成之后,所述***将监控所述网络,以确定在步骤564是否满足所述网络SLA要求。如果不满足所述SLA要求,所述***尝试在步骤566重定位Pod,以试图遵守所述网络SLA规范。如果不满足所述网络SLA要求,可以生成报告并且终止所述服务。
在一个实施例中,所述SLA***提供了一种混合方法,其中使用所述被动模式和所述主动模式。可以建立具有最低可用资源等级的节点的阈值数目。当具有可用资源的节点的数目超出所述阈值时,使用所述被动模式,以提高部署速度。当所述节点数目低于所述阈值时,使用所述主动模式,以降低将需要重新部署的可能性。
图16是描述一个实施例提供的重定位Pod的过程570的流程图。在一个示例中,可以执行过程570以响应确定未满足租户部署的网络SLA规范。在一个实施例中,过程570由SLA管理***302执行。在一个实施例中,过程570用于针对网络SLA生成一个实例重定位方案。在另一实施例中,所述SLA***尝试生成多个实例重定位方案,以适应所述网络SLA。
在步骤572,所述***选择提议。对于每项提议,所述***假设与所述提议相对应的节点上可以容纳目标实例。在步骤574,所述***基于根据所述网络SLA将所述目标实例部署在所述节点中来计算所有链路的所述带宽容量。使用与所述提议相关的链路利用率,所述***计算所述提议超出的总链路容量。所述提议的所述超出的总链路容量指示在使用所述提议的条件下要释放的网络资源量。计算所述超出的链路容量之后,所述***在步骤577确定是否有要评估的附加提议。如果要评估附加提议,在步骤572,过程570继续进行以选择所述下一项提议。
一旦已针对超出的链路容量计算所有链路,则在步骤578根据每项提议的要释放的所述网络资源量对所述提议进行排序。需要最少要释放资源量的提议置于所述列表的顶部,以便在后续步骤中首先考虑所述提议。因此,所述***在评估具有较高资源释放要求的提议之前,评估具有较低资源释放要求的提议。
对所述提议进行排序之后,所述***在步骤580从所述列表顶部选择所述提议。对于每项提议,所述***尝试生成重定位方案。在一个实施例中,所述***可以迭代所述提议,因为每个重定位方案可以包括多个实例的替换。
为了检查提议的所述重定位方案,在步骤582,所述***执行所述网络SLA之后检查所有链路的容量。所述***获取过度利用的链路。在步骤584,所述***尝试重定位一个或多个实例以释放所述提议的网络资源(例如,带宽)。在一个示例中,所述***对所述过度利用的链路进行迭代。所述***获取全部实例对,所述全部实例对的互连链路与所述过度利用的链路重叠。对于每条过度利用的链路,所述相应的实例对可以根据其对链路拥堵的贡献程度按降序进行排序(贡献较大的对位于所述列表顶部)。所述***创始重定位所述实例对,这样就不会因为所述重定位而出现新的过度利用链路,同时使得当前过度利用链路不会变得更加拥堵。
在步骤586,所述***检查是否已为全部所述过度利用链路释放足够的容量。如果释放了所述足够的容量,则在步骤588生成重定位方案。如果没有释放足够的容量,则在步骤580继续进行所述下一项提议。如果所述***未能生成适用于所有提议的方案,则可能确定无法满足所述网络SLA要求。在一个示例中,可以限制迭代的提议的数目和可以配置的方案的最大数目,以提供更快的响应时间。
图17是能够用于实现各种实施例的计算***1300的高层次框图。在一个示例中,计算***1300是网络***1300。特定设备可利用所有所示的组件或仅利用所述组件的子集,且设备之间的集成程度可能不同。此外,设备可以包含多个组件实例,例如多个处理单元、处理器、存储器、发射器、接收器等。
所述网络***可以包括处理单元1301,其配备有一个或多个输入/输出设备,例如网络接口、存储接口等。所述处理单元1301可以包括与总线相连的中央处理器(centralprocessing unit,简称CPU)1310、存储器1320、大容量存储设备1330和I/O接口1360。所述总线可以是任意类型的几种总线架构中的一种或多种,包括存储器总线或存储器控制器、***总线等。处理单元1301可以用于实现本文描述的任何计算设备,例如远程设备160和/或主机112。
所述CPU 1310可以包括任意类型的电子数据处理器。所述CPU 1310可以用于实现本文描述的任意方案,例如图4、8、11A-11B、12A-12C和13中所示的使用实施例中描述的任何一个步骤或其组合的过程。所述存储器1320可以包括任意类型的***存储器,例如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamicrandom access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)或其组合等。在一实施例中,所述存储器1320可以包含在开机时使用的ROM以及在执行程序时使用的存储程序和数据的DRAM。在实施例中,所述存储器1320是非瞬时的。所述大容量存储设备1330可以包括任意类型的存储设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线访问。所述大容量存储设备1330可以包括如下项中的一种或多种:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等。
所述处理单元1301还包括一个或多个网络接口1350,所述网络接口1350可以包括以太网电缆等有线链路,和/或到接入节点或者一个或多个网络1380的无线链路。所述网络接口1350允许所述处理单元1301通过所述网络1380与远程单元通信。例如,所述网络接口1350可以通过一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一实施例中,所述处理单元1301耦合至局域网或广域网上以用于数据处理以及与诸如其它处理单元、互联网、远程存储设施等远程设备通信。在一个实施例中,所述网络接口1350可以用于接收和/或发送ICN中的兴趣包和/或数据包。这里,术语“网络接口”将被理解为包括端口。
所述处理单元1301可以用于实现本文描述的任意方案,例如图8、9、13、14、15或16中所示的使用实施例中描述的任何一个步骤或其组合的过程400、420、440、500、550和570。
图17中示出的计算***中描述的组件通常是在适于与本文描述的技术结合使用的计算***中所发现的组件,意在表示本领域所熟知的广泛类别的此类计算机组件。可以使用许多不同的总线配置、网络平台和操作***。
在一示例性实施例中,所述计算***1300包括:带宽接收模块,用于接收与在计算数据中心部署多个计算服务实例相关联的带宽要求;指示接收模块,用于从所述计算数据中心中的多个节点接收所述多个节点处可用的初始带宽的多个指示;距离确定模块,用于针对所述多个节点,确定所述多个节点的互连实例之间的距离;链路容量确定模块,用于针对所述多个节点中的至少一部分节点,基于所述初始带宽指示和所述带宽要求,确定互连实例之间的链路的剩余容量;实例部署模块,用于基于互连实例之间的所述距离和所述互连实例之间的链路的所述剩余容量,在所述节点集的子集中部署所述多个实例。在一些实施例中,所述计算***1300可以包括用于执行所述实施例中描述的步骤的任一或组合的其它或者附加模块。此外,如任一附图中所示或在任一项权利要求中所描述的方法的任何附加或可替代实施例或方面预期也包括类似模块。
本文描述的技术可以使用硬件、软件或硬件和软件的组合来实现。所述使用的软件存储在一个或多个上述处理器可读存储设备(例如,存储器82、大容量存储器84或便携式存储器92)上,以编程一个或多个所述处理器以执行本文描述的功能。所述处理器可读存储设备可以包括计算机可读介质,例如易失性介质、非易失性介质、可移动介质和不可移动介质。例如但不限于,计算机可读介质可以包括计算机可读存储介质和通信介质。计算机可读存储介质为非瞬时性介质,可以在任何方法或技术中实现,用以存储计算机可读指令、数据结构、程序模块或其它数据等信息。计算机可读存储介质的示例包括RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字多功能光盘(digital versatile disc,简称DVD)或其它光存储器、磁盒、磁带、磁盘存储器或其它磁存储设备,或能用来存储所需信息和计算机能够访问的任何其它介质。通常,通信介质体现计算机可读指令、数据结构、程序模块或例如载波或其它传输机制等调制数据信号中的其它数据,并包括任何信息传递介质。术语“调制数据信号”是指具有该信号特点集合中的一个或多个特点的信号或按该特点集合进行变化从而对信号中的信息进行编码的信号。例如但不限于,通信介质包括有线介质,如有线网或直接有线连接,以及无线介质,如RF和其它无线介质。上述各项的组合也包含在计算机可读介质的范围内。
所述非瞬时性计算机可读介质包括所有类型的计算机可读介质,包括磁存储介质、光存储介质和固态存储介质,具体不包括信号。应当理解的是,软件可以安装在路由器、客户端或其它网络设备上并可以随路由器、客户端或其它网络设备一同出售。或者,可以获取所述软件并加载到设备中,包括通过光盘介质或以网络或分发***的任何方式获取所述软件,例如,包括从软件开发者所有的服务器或从非软件开发者所有但为其所用的服务器获取所述软件。例如,所述软件可以存储在服务器上以便通过互联网分发。
在可替代实施例中,部分或全部所述软件可以被专用硬件所取代,所述专用硬件包括定制集成电路、门阵列、FPGA、PLD和专用计算机。在一个实施例中,实现一个或多个实施例的软件(存储在存储设备上)用于编程一个或多个处理器。所述一个或多个处理器可以与一个或多个计算机可读介质/存储设备、***和/或通信接口进行通信。在可替代实施例中,部分或全部所述软件可以被专用硬件所取代,所述专用硬件包括定制集成电路、门阵列、FPGA、PLD和专用计算机。
非瞬时性计算机可读介质包括所有类型的计算机可读介质,包括磁存储介质、光存储介质和固态存储介质,具体不包括信号。应当理解的是,软件可以安装在所述设备上并可以随所述_设备一同出售。或者,可以获取所述软件并加载到所述_设备中,包括通过光盘介质或以网络或分发***的任何方式获取所述软件,例如,包括从软件开发者所有的服务器或从非软件开发者所有但为其所用的服务器获取所述软件。例如,所述软件可以存储在服务器上以便通过互联网分发。
上述详细描述只是为了说明的目的,其并非旨在穷举或限制发明主题为所公开的精确形式。根据上述教导,许多修改和变更是可能的。选出和描述的各个实施例的目的是为了更好地解释公开技术的原理和其实际应用,因而使本领域技术人员能够更好利用各个实施例的技术和适合预期特定用途的各种变更。本发明的范围意图由所附权利要求书界定。
结合各种实施例描述了本发明。然而,通过研究附图、本发明以及所附权利要求书,能够理解并获得公开实施例的其它变形和修改;此类变形和修改将被解释为涵盖在所附权利要求书中。在权利要求书中,词语“包括”不排除其它元素或步骤,不定冠词“a”或者“an”不排除多个。单个处理器或其它单元可满足权利要求中描述的几项的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能被有效地使用。计算机程序可存储或分发到合适的介质上,例如与其它硬件一起或者作为其它硬件的部分提供的光存储介质或者固态介质,还可以以其它形式例如通过互联网或者其它有线或无线电信***分发。

Claims (16)

1.一种设备,其特征在于,包括:
内存存储器,包括指令;
一个或多个处理器,与所述内存存储器通信,其中所述一个或多个处理器执行所述指令以:接收与在计算数据中心中部署多个计算服务实例相关联的网络服务水平协议SLA,所述网络SLA指定至少两个所述计算服务实例之间的带宽要求;
从所述计算数据中心中的节点集中接收提议集,所述提议集指示与相应节点相关联的初始网络资源;
使用所述节点集,针对所述提议集,确定与满足所述SLA要求相关联的可用网络资源;
针对所述提议集的每个提议,确定所述提议集的互连实例之间的距离;
基于与所述提议集相关联的所述可用网络资源,将所述多个计算服务实例部署在所述计算数据中心的节点子集中,其中,每个节点的所述提议包括在所述节点处可用的初始带宽的指示;针对所述提议集,通过从每个节点处的所述初始带宽中扣除所述带宽要求来确定所述可用网络资源;
针对所述提议集,确定在扣除所述带宽要求之后,互连交付单元Pod之间的每条链路的剩余容量;
基于所述距离和每条链路的所述剩余容量,生成所述提议集的有序列表;
针对所述提议集的每个提议或提议子集,基于所述互连Pod之间的所述距离和成本生成评分,其中所述成本表示使用所述提议满足所述网络SLA要求所需的网络容量;
其中,部署所述多个计算服务实例是基于所述有序列表的。
2.根据权利要求1所述的设备,其特征在于:
所述节点子集是第二节点子集;
所述一个或多个处理器执行所述指令,以在确定所述可用网络资源之前,在所述计算数据中心的第一节点子集中执行所述多个计算服务实例的第一部署;
所述一个或多个处理器执行指令,以基于所述第一部署之后的所述可用网络资源,在所述计算数据中心中的所述第二节点子集中部署所述多个计算服务实例,所述第二节点子集包括不同于所述第一节点子集中节点的至少一个节点。
3.根据权利要求2所述的设备,其特征在于,所述一个或多个处理器执行所述指令以:
监控所述第一节点子集中的所述第一部署,以确定是否满足所述网络SLA要求;
其中,基于未满足要求的所述第一部署,在所述第二节点子集中部署所述多个计算服务实例。
4.根据权利要求1至3中任一项所述的设备,其特征在于,所述一个或多个处理器执行所述指令以:
部署第一QoS规则,以便跨一个或多个Pod执行所述指令;
部署第二QoS规则,以便跨一台或多台虚拟机执行所述指令;
部署第三QoS规则,以便跨一台或多台物理机执行所述指令。
5.根据权利要求1至3中任一项所述的设备,其特征在于,所述一个或多个处理器执行所述指令以:
使用每项提议,确定一台物理机中的实例之间的可用虚拟网络资源,以满足所述带宽要求;
使用每项提议,确定不同物理机中的实例之间的可用物理网络资源,以满足所述带宽要求。
6.根据权利要求1所述的设备,其特征在于,所述处理器执行所述指令以:
基于互连实例之间的所述距离,对多个提议进行排序;
通过先评估较短距离提议再评估较长距离提议,评估所述多个提议,以便为具有足够网络资源,从而能满足所述带宽要求的所述提议集选择预先确定数目的提议。
7.根据权利要求6所述的设备,其特征在于:
在云管理***中接收所述网络SLA和所述提议集;
所述一个或多个处理器执行所述指令,以将所述多个提议传输至服务水平协议SLA***;所述一个或多个处理器执行所述指令,以从所述SLA***向所述云管理***提供所述有序列表;
基于所述有序列表,采用所述云管理***部署所述多个计算服务实例。
8.根据权利要求7所述的设备,其特征在于:
所述网络SLA指定时延要求和丢包率要求;
基于所述时延要求和所述丢包率要求生成所述有序列表;
所述一个或多个处理器执行所述指令,以接收与所述部署多个实例相关联的计算SLA;
所述一个或多个处理器执行所述指令,以基于所述计算SLA和所述有序列表部署所述多个计算服务实例。
9.根据权利要求1至3和6至8中任一项所述的设备,其特征在于:
所述网络SLA与部署多个容器相关联,每个容器包括计算服务的一个或多个所述计算服务实例。
10.根据权利要求9所述的设备,其特征在于:
所述网络SLA与部署多个Pod相关,每个Pod包括两个或多个所述容器。
11.一种用于计算机数据中心管理的计算机实现的方法,其特征在于,包括:
接收与在计算数据中心部署多个计算服务实例相关联的带宽要求;
从所述计算数据中心中的多个节点接收所述多个节点处可用的初始带宽的多个指示;
针对所述多个节点,确定所述多个节点的互连实例之间的距离;
针对所述多个节点中的至少一部分节点,基于所述初始带宽指示和所述带宽要求,确定互连实例之间的链路的剩余容量;
基于互连实例之间的所述距离和所述互连实例之间的链路的所述剩余容量,在所述计算数据中心中的节点集的子集中部署所述多个计算服务实例;
基于互连实例之间的所述距离,对所述多个节点进行排序;
基于互连实例之间的所述距离和所述初始带宽指示,从所述多个节点中选择一个节点集,所述节点集中包括的节点少于所述多个节点;
针对所述节点集,确定所述剩余容量;
基于互连实例之间的所述链路的所述剩余容量,生成所述节点集的有序列表;
针对所述多个节点中的至少一部分节点,基于所述互连实例之间的所述距离和成本生成评分,其中所述成本表示使用满足网络SLA要求所需的网络容量;
其中,基于所述有序列表,在所述节点子集中部署所述多个计算服务实例。
12.根据权利要求11所述的计算机实现的方法,其特征在于:
所述多个计算服务实例是多个Pod;
所述多个节点是多台虚拟机,所述多台虚拟机设置在包括物理处理器和物理存储器的一台或多台物理机上;
互连实例之间的所述链路包括第一组链路和第二组链路,所述第一组链路包括一台物理机中的Pod之间的链路;所述第二组链路包括不同物理机中的Pod之间的链路;
确定互连实例之间的链路的剩余容量包括:确定可用虚拟网络资源和确定可用物理网络资源。
13.一种用于计算机数据中心管理的存储计算机指令的非瞬时性计算机可读介质,其特征在于,所述计算机指令在由一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:接收基于服务水平协议SLA在计算数据中心中部署多个交付单元Pod的请求,所述服务水平协议指定两个或多个所述Pod之间的带宽要求;
从所述计算数据中心中的节点集中接收与每个所述节点相关联的初始带宽的指示;
针对所述节点集,基于所述初始带宽指示和所述带宽要求,确定与每个节点相关联的剩余带宽;
基于每个节点的所述剩余带宽,在所述节点集中的节点子集中调度所述多个Pod;
其中,针对包括所述节点集的多个节点,确定所述多个节点的互连Pod之间的距离;
基于所述剩余带宽和互连Pod之间的所述距离,生成所述节点子集的有序列表;
基于所述互连pod之间的所述距离和成本生成评分,其中所述成本表示使用满足所述SLA要求所需的网络容量;
其中,基于所述有序列表,在所述节点子集中部署所述多个Pod。
14.根据权利要求13所述的非瞬时性计算机可读介质,其特征在于:
在网络管理***中接收所述基于所述SLA在所述计算数据中心中部署所述多个Pod的请求;在SLA管理***中,从所述节点集中的每个节点上的代理接收所述初始带宽指示;
采用所述SLA管理***确定与每个节点相关联的所述剩余带宽,其中,所述剩余带宽指示与每个节点相关联的最拥堵链路的剩余容量;
所述指令使所述一个或多个处理器执行以下步骤:基于每个节点的剩余带宽,提供节点的有序列表,其中所述有序列表被从所述SLA管理***提供给云管理***。
15.根据权利要求13所述的非瞬时性计算机可读介质,其特征在于,所述指令使所述一个或多个处理器执行以下步骤:
基于互连Pod之间的所述距离,对所述多个节点进行排序;
通过评估所述多个节点,从所述多个节点中确定所述节点集,以选择具有满足所述带宽要求的初始带宽的预先确定数目的节点;
其中,通过先评估较短距离节点再评估较长距离节点,评估所述多个节点,使得所述剩余带宽是为少于所述多个节点而确定的。
16.根据权利要求13至15中任一项所述的非瞬时性计算机可读介质,其特征在于,所述指令使所述一个或多个处理器执行以下步骤:
基于所述带宽要求,在所述节点子集中部署一个或多个服务质量规则。
CN201880021243.XA 2017-04-14 2018-04-12 计算机数据中心的网络服务水平协议 Active CN110463140B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/488,334 US10735279B2 (en) 2017-04-14 2017-04-14 Networking service level agreements for computer datacenters
US15/488,334 2017-04-14
PCT/CN2018/082753 WO2018188619A1 (en) 2017-04-14 2018-04-12 Networking service level agreements for computer datacenters

Publications (2)

Publication Number Publication Date
CN110463140A CN110463140A (zh) 2019-11-15
CN110463140B true CN110463140B (zh) 2021-04-20

Family

ID=63790474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880021243.XA Active CN110463140B (zh) 2017-04-14 2018-04-12 计算机数据中心的网络服务水平协议

Country Status (4)

Country Link
US (1) US10735279B2 (zh)
EP (1) EP3602965A1 (zh)
CN (1) CN110463140B (zh)
WO (1) WO2018188619A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2531242A (en) * 2014-09-11 2016-04-20 Piksel Inc Decision logic
US11169835B1 (en) * 2017-05-09 2021-11-09 Tintri By Ddn, Inc. VM data migration between storage devices
US10686728B2 (en) * 2017-07-06 2020-06-16 Huawei Technologies Co., Ltd. Systems and methods for allocating computing resources in distributed computing
US11528194B2 (en) * 2019-09-06 2022-12-13 Jpmorgan Chase Bank, N.A. Enterprise control plane for data streaming service
US11924060B2 (en) * 2019-09-13 2024-03-05 Intel Corporation Multi-access edge computing (MEC) service contract formation and workload execution
US20200167258A1 (en) * 2020-01-28 2020-05-28 Intel Corporation Resource allocation based on applicable service level agreement
US20210271506A1 (en) * 2020-02-28 2021-09-02 Cisco Technology, Inc. Centralized management, provisioning and monitoring of cloud infrastructure
US11895201B2 (en) * 2020-03-27 2024-02-06 Intel Corporation Programmable integrated circuit configured as a remote trust anchor to support multitenancy
US11487546B2 (en) * 2021-01-13 2022-11-01 Salesforce, Inc. Change management of services deployed on datacenters configured in cloud platforms
US11888637B2 (en) * 2021-04-20 2024-01-30 Arris Enterprises Llc Secure access for vCores
WO2023212853A1 (en) * 2022-05-05 2023-11-09 Qualcomm Incorporated Policy control and charting for data channels in internet protocol multimedia subsystem networks
US11870705B1 (en) 2022-07-01 2024-01-09 Cisco Technology, Inc. De-scheduler filtering system to minimize service disruptions within a network
CN115134310B (zh) * 2022-08-31 2022-12-06 浙江大华技术股份有限公司 流量的调度方法、装置、存储介质及电子装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218260A (zh) * 2013-03-06 2013-07-24 中国联合网络通信集团有限公司 虚拟机迁移方法和装置
CN106464522A (zh) * 2014-04-11 2017-02-22 瑞典爱立信有限公司 用于网络功能布局的方法和***

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403482B2 (en) 2000-10-30 2008-07-22 Nec Corporation Path provisioning for service level agreements in differentiated service networks
US7275037B2 (en) 2001-01-25 2007-09-25 Ericsson Ab System and method for generating a service level agreement template
CN101141284B (zh) 2007-01-31 2011-01-19 中兴通讯股份有限公司 业务带宽配置方法和网管***
US8310931B2 (en) * 2008-07-18 2012-11-13 International Business Machines Corporation Discovering network topology from routing information
US8424059B2 (en) 2008-09-22 2013-04-16 International Business Machines Corporation Calculating multi-tenancy resource requirements and automated tenant dynamic placement in a multi-tenant shared environment
US20100319004A1 (en) 2009-06-16 2010-12-16 Microsoft Corporation Policy Management for the Cloud
US10191778B1 (en) * 2015-11-16 2019-01-29 Turbonomic, Inc. Systems, apparatus and methods for management of software containers
WO2011064619A1 (en) 2009-11-26 2011-06-03 Freescale Semiconductor, Inc. Receiver and method for equalizing signals
US20110258317A1 (en) 2010-04-19 2011-10-20 Microsoft Corporation Application sla based dynamic, elastic, and adaptive provisioning of network capacity
US9183157B2 (en) 2011-03-15 2015-11-10 Huawei Technologies Co., Ltd. Method for creating virtual machine, a virtual machine monitor, and a virtual machine system
US8631154B2 (en) 2011-06-29 2014-01-14 International Business Machines Corporation Dynamically modifying quality of service levels for resources in a networked computing environment
US8612599B2 (en) 2011-09-07 2013-12-17 Accenture Global Services Limited Cloud service monitoring system
ES2608378T3 (es) 2011-12-29 2017-04-10 Huawei Technologies Co., Ltd. Sistema y procedimiento de computación en la nube para gestionar recursos de almacenamiento asociados
US20130223238A1 (en) 2012-02-28 2013-08-29 Harris Corporation Communications system for determining whether a communications service route is operating pursuant to a service level agreement
US9274750B2 (en) 2012-04-20 2016-03-01 Futurewei Technologies, Inc. System and method for signal processing in digital signal processors
WO2013165365A1 (en) 2012-04-30 2013-11-07 Hewlett-Packard Development Company, L.P. Allocating network bandwidth
US9389920B2 (en) 2012-05-02 2016-07-12 Futurewei Technologies, Inc. Intelligent data center cluster selection
US9276838B2 (en) 2012-10-05 2016-03-01 Futurewei Technologies, Inc. Software defined network virtualization utilizing service specific topology abstraction and interface
US8971451B2 (en) 2012-12-11 2015-03-03 Futurewei Technologies, Inc. Efficient baseband signal processing system and method
US20140189092A1 (en) 2012-12-28 2014-07-03 Futurewei Technologies, Inc. System and Method for Intelligent Data Center Positioning Mechanism in Cloud Computing
US20140201375A1 (en) * 2013-01-11 2014-07-17 Anuta Networks, Inc. Method, apparatus and system pertaining to cloud computing
US9172577B2 (en) 2013-02-19 2015-10-27 Futurewei Technologies, Inc. System and method for orthogonal frequency division multiplexing-offset quadrature amplitude modulation
US9065734B2 (en) 2013-03-08 2015-06-23 Telefonaktiebolaget L M Ericsson (Publ) Network bandwidth allocation in multi-tenancy cloud computing networks
US10033595B2 (en) * 2013-08-27 2018-07-24 Futurewei Technologies, Inc. System and method for mobile network function virtualization
US9923837B2 (en) 2013-08-29 2018-03-20 Ericsson Ab Method and system to allocate bandwidth based on task deadline in cloud computing networks
US9135259B2 (en) * 2013-11-06 2015-09-15 Linkedin Corporation Multi-tenancy storage node
US9401851B2 (en) 2014-03-28 2016-07-26 Verizon Patent And Licensing Inc. Network management system
US9806907B2 (en) * 2014-04-30 2017-10-31 Ixia Methods and apparatuses for implementing network packet brokers and taps
US9575794B2 (en) * 2014-09-30 2017-02-21 Nicira, Inc. Methods and systems for controller-based datacenter network sharing
US9819565B2 (en) * 2015-01-26 2017-11-14 Ciena Corporation Dynamic policy engine for multi-layer network management
US10129101B2 (en) 2015-04-30 2018-11-13 Futurewei Technologies, Inc. Application driven and adaptive unified resource management for data centers with Multi-Resource Schedulable Unit (MRSU)
US10740128B2 (en) * 2015-05-07 2020-08-11 Quest Software Inc. Selecting a cloud from a plurality of clouds for a workload
US9942273B2 (en) * 2015-12-09 2018-04-10 International Business Machines Corporation Dynamic detection and reconfiguration of a multi-tenant service
US20170317901A1 (en) * 2016-04-29 2017-11-02 Cisco Technology, Inc. Integrated approach to monitor gbp health and adjust policy service level
US10455045B2 (en) * 2016-09-06 2019-10-22 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
US10491689B2 (en) * 2016-09-16 2019-11-26 Oracle International Corporation Centralized monitoring of cloud operations
US20190109768A1 (en) * 2017-10-06 2019-04-11 Huawei Technologies Co., Ltd. Management of network slices and associated services

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218260A (zh) * 2013-03-06 2013-07-24 中国联合网络通信集团有限公司 虚拟机迁移方法和装置
CN106464522A (zh) * 2014-04-11 2017-02-22 瑞典爱立信有限公司 用于网络功能布局的方法和***

Also Published As

Publication number Publication date
CN110463140A (zh) 2019-11-15
US10735279B2 (en) 2020-08-04
US20180302299A1 (en) 2018-10-18
WO2018188619A1 (en) 2018-10-18
EP3602965A4 (en) 2020-02-05
EP3602965A1 (en) 2020-02-05

Similar Documents

Publication Publication Date Title
CN110463140B (zh) 计算机数据中心的网络服务水平协议
US11039321B2 (en) Methods and systems for network slicing
CN108293004B (zh) 用于网络切片管理的***和方法
US11051183B2 (en) Service provision steps using slices and associated definitions
EP3295630B1 (en) System and methods for virtual infrastructure management between operator networks
KR102034532B1 (ko) 스펙트럼 리소스들의 제공 및 분배를 위한 시스템 및 방법
US20190109768A1 (en) Management of network slices and associated services
Kim et al. VNF-EQ: dynamic placement of virtual network functions for energy efficiency and QoS guarantee in NFV
EP3590233A1 (en) Architecture for integrating service, network and domain management subsystems
US11184778B2 (en) Mobile service chain placement
WO2018201856A1 (en) System and method for self organizing data center
CN113875192A (zh) 第一实体、第二实体、第三实体及由之执行的用于在通信网络中提供服务的方法
JP2023548628A (ja) ネットワークスライスの割り当ての管理
Adami et al. Effective resource control strategies using openflow in cloud data center
Miyazawa et al. Autonomic resource arbitration and service-continuable network function migration along service function chains
Krishnaswamy et al. Latency and policy aware hierarchical partitioning for NFV systems
WO2018210075A1 (zh) 网络控制方法、装置及网络设备
Casetti et al. Arbitration among vertical services
Buyakar Operational aspects of network slicing in LTE and 5G architectures
Gerasimov et al. Slicenomics: How to Provide Cost-Based Intra and Inter Slice Resource Management?
GB2601848A (en) Network virtualization hypervisor for software-defined networks
Al-Dulaimi et al. 1 Ultra-dense Networks and Sliced Network Services

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
GR01 Patent grant
GR01 Patent grant