CN109478973B - 用于任务调度、资源发放和服务提供的sdn控制器、系统和方法 - Google Patents
用于任务调度、资源发放和服务提供的sdn控制器、系统和方法 Download PDFInfo
- Publication number
- CN109478973B CN109478973B CN201780043772.5A CN201780043772A CN109478973B CN 109478973 B CN109478973 B CN 109478973B CN 201780043772 A CN201780043772 A CN 201780043772A CN 109478973 B CN109478973 B CN 109478973B
- Authority
- CN
- China
- Prior art keywords
- information
- task
- service
- resource
- sdn controller
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5054—Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0032—Distributed allocation, i.e. involving a plurality of allocating devices, each making partial allocation
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种用于进行任务调度和/或资源发放和/或服务提供的软件定义网络(software defined network,SDN)控制器200。所述SDN控制器200包括接收单元201,用于接收调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的请求。所述SDN控制器200还包括处理单元202,用于基于所述接收单元201接收的所述请求以及所接收的请求中定义的显式约束和/或所接收的请求施加的隐式约束,来调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务。
Description
技术领域
本发明涉及任务调度、资源发放和服务提供领域,尤其涉及一种SDN控制器及其方法。
具体而言,本发明提供了一种用于任务调度、资源发放和服务提供的计算系统和方法,其中,计算系统包括SDN控制器以及至少一个代理。
背景技术
SDN是一种通过将数据面从控制面解耦来改进通信网络的方法。因此,控制面功能通常由传统SDN控制器提供,而数据面功能通常由交换机等网元提供。通过从网元收集信息,传统SDN控制器能够详细了解数据中心的网络拓扑、网络流量和服务,并且能够提供并控制数据中心的重要网络功能和服务。具体而言,SDN控制器能够提供并配置服务,例如网络服务(例如发放和/或配置网络设备、交换机、路由器、网络服务器或邮件服务器、负载均衡、防火墙服务、包检测、网络监控、空闲资源管理或带宽配置)。
对于操作数据中心等而言必不可少的其它技术是任务调度和资源发放。任务调度指定了一种将计算任务分配给处理计算任务的资源的方法。计算任务可以是例如待由处理器计算的基本计算元素,如线程、过程或数据流。关于资源发放,调度计算任务会涉及准备本地或分布式资源,以便为用户提供服务,例如,在分布至数据中心中的计算节点集群的虚拟环境中设置虚拟机(virtual machine,VM),或对分布式计算集群进行计算。容器也可使用本文结合VM描述的所有功能。容器提供了一种处理单个计算节点上的独立计算的方式。
资源可以是硬件资源,例如中央处理器(central processing unit,CPU)、系统内存(RAM、ROM)、系统存储器(硬盘驱动器、闪存、数据库、物理或虚拟存储介质)、图形处理器(graphics processing unit,GPU)、输入输出(input and output,IO)设备、网络设备(用于接入和使用物理或虚拟网络的设备,例如LAN或WAN)、加密模块(例如可信平台模块(Trusted Platform Module,TPM))、数字信号处理器(digital signal processor,DSP)、现场可编程门阵列(field programmable gate array,FPGA)、协同处理器、网络包处理加速器(例如采用算法的处理单元,在数据或信息在网络组件间移动时,数据或信息包使用这些算法)或扩展卡。当然,这些资源也可以虚拟化,并且例如也可以为一个或多个VM的一部分。
此外,资源可以由单个计算单元提供,以及由位于同一数据中心或者分布于通过计算机网络连接的两个或更多数据中心的多个计算单元提供。数据中心能够提供CPU系统架构的处理单元,例如X86、ARM、PowerPC或SPARC。还可以提供虚拟化方法以支持将计算操作从物理硬件资源解耦。
在现有技术中,调度任务、发放资源或提供服务具体而言可以包括:管理计算节点上或数据中心中的系统或软件更新;拍摄或恢复VM的快照,以便处理VM的迁移;管理计算节点、VM或数据中心的操作状态(例如开启、关闭、暂停、恢复);管理空闲资源;以及将上文所定义的服务部署到一组节点。
在处理调度和/或资源发放请求时,为了确定如何调度任务或发放资源,传统任务调度和资源发放系统从数据中心收集任务信息(例如任务的运行时信息)和资源信息(例如与资源的当前工作负载相关的信息),并评估所收集的信息。然而,现有任务调度器仅能考虑任务和资源的显式要求,例如,当应处理调度和/或资源发放请求时,所需的CPU能力或内存量。不可能检测到调度和/或资源发放请求的隐式要求。
虽然传统SDN控制器在数据中心中有很大相关性,并且提供了对数据中心的操作来说必不可少的功能,但是其并未提供基于所收集的任务信息和资源信息进行任务调度和资源发放的功能。由于传统SDN控制器并未提供收集和评估任务信息和资源信息的方法,所以传统SDN控制器无法基于所收集并评估的任务信息和资源信息来提供和配置服务。此外,传统SDN控制器不支持检测网络服务提供请求的隐式要求。
图1示出了用于在基于SDN的传统数据中心106中进行任务调度和资源发放的传统系统100的图解。在传统系统100中,传统任务调度器和/或资源发放器102接收调度任务和/或发放资源的请求101。传统任务调度器和/或资源发放器102从基于SDN的传统数据中心106中的计算节点107收集任务信息和资源信息,并将所收集的信息存储在数据库104中。为了处理请求101,传统任务调度器和/或资源发放器102可以评估数据库104中存储的任务信息和资源信息。在传统系统100中,传统SDN控制器103从基于SDN的传统数据中心106中的网元108收集与服务(例如网络服务)有关的信息,并将所收集的信息存储在独立数据库105中。为了处理服务提供请求,传统SDN控制器103可以评估独立数据库105中存储的信息。虽然传统SDN控制器103能够与传统任务调度器和/或资源发放器102通信,但是传统SDN控制器103无法基于数据库104中存储的任务信息和资源信息来调度任务和/或提供资源。
因此,为了支持基于SDN的传统数据中心106中的任务调度和资源发放,需要独立的组件(即,传统任务调度器和/或资源发放器102和传统SDN控制器103,以及两个数据库104、105)。这导致在基于SDN的传统数据中心106中使用大量组件,并且导致所涉及组件之间的通信开销增加,从而使操作成本和请求处理时间增加。
以下论文中探讨了其它现有技术方法:
Mani Prashanth Varma Manthena等人在“网络即服务的基于SDN的架构(An SDN-based Architecture for Network-as-a-Service)”(2015年第一届IEEE网络软件化会议(IEEE NetSoft 2015)论文集,英国伦敦,1-5页)中描述了一种基于SDN的方法来支持抽象网络即服务(Network-as-a-Service,NaaS)模型。NaaS是一种基于云的服务模型,提供按需网络连接以及网络设备发放和管理。
M.Schwarzkopf等人在“Omega:用于大型计算集群的灵活可扩展调度器(Omega:Flexible,Scalable Schedulers for large Compute Clusters)”(2013年第八届ACM欧洲计算机系统会议(EuroSys′13)论文集,ACM,美国纽约,351-364页)中描述了一种新型调度器架构,其使用共享状态和无锁乐观并发控制,以改进调度器对计算集群的访问。
然而,这些其它现有方法仍未解决上述问题。
发明内容
鉴于上文提到的传统方法的问题,本发明旨在改进现有技术。具体地,本发明的目的是改进基于SDN的环境中的任务调度、资源发放和服务提供。为此,应提供一种SDN控制器,其支持基于收集的任务和/或资源信息来调度任务和/或发放资源。具体而言,所述SDN控制器应基于所述收集的任务信息和/或资源信息来提供并配置服务(例如网络服务)。更具体地,所述SDN控制器应能够检测任务调度和/或资源发放和/或网络服务提供请求的隐式要求。
本发明的上述目的通过所附独立权利要求中提供的方案实现。本发明的有利实施方式在各个从属权利要求中进一步定义。具体而言,提供了根据独立权利要求的一种用于进行任务调度、资源发放和服务提供的SDN控制器、计算系统和方法。
根据第一方面,本发明提供了一种用于进行任务调度和/或资源发放和/或服务提供的软件定义网络(software defined network,SDN)控制器,包括:接收单元,用于接收调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的请求;以及处理单元,用于基于所述接收单元接收的所述请求以及所接收的请求中定义的显式约束和/或所接收的请求施加的隐式约束,调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务。
这确保能够减少基于SDN的数据中心中使用的组件的数量,能够优化SDN控制器处理任务调度、资源发放或服务提供请求的处理时间,并且能够减少通信开销。这有助于遵守与使用所提供的任务、资源或服务的客户的服务水平协议(service level agreement,SLA)。由于所述SDN控制器详细了解所述数据中心的网络拓扑概况,所以其能够有效且高效地处理任务调度和/或资源发放和/或服务提供请求。此外,改进了对所述SDN控制器接收的请求的处理,这是因为,在处理所述请求时,除了所述请求中包括的显式要求外,还能够考虑所述请求施加的隐式要求。
根据所述第一方面的第一实施方式,所述SDN控制器还可以包括:数据库,用于存储任务信息和/或资源信息和/或服务信息;查询创建单元,用于提取所接收的请求中定义的所述显式约束,和/或推导所接收的请求施加的所述隐式约束,其中所述查询创建单元还可以用于基于所述显式约束和/或所述隐式约束来生成查询;以及约束求解单元,用于基于所述数据库中的所述任务信息和/或所述资源信息和/或所述服务信息求解所述生成的查询中的约束,其中所述约束求解单元还可以用于基于所述生成的查询和/或所述任务信息和/或所述资源信息和/或所述服务信息来确定可用于执行所接收的请求的任务调度和/或一组资源和/或服务配置;其中,所述处理单元还可以用于基于所述确定的任务调度和/或所述确定的一组资源和/或所述确定的服务配置以及所述接收单元接收的所述请求,来调度所述至少一个任务和/或发放所述至少一个资源和/或提供所述至少一个服务。
采用存储了任务信息和/或资源信息和/或服务信息的数据库能改进任务调度、资源发放和服务提供,因为结果是基于所述数据库中存储的细粒度信息。查询创建单元提取所接收的请求中定义的所述显式约束,和/或推导所接收的请求施加的所述隐式约束,并基于所述显式约束和/或所述隐式约束来生成查询,使得在处理所述请求时,能够考虑发送所述请求的用户未明确提及的隐式约束。这提高了所接收的请求的整体处理效率,因为在处理所述请求时能够考虑更多信息。采用约束求解单元还确保所述处理单元调度的任务、发放的资源和提供的服务符合所述查询创建单元基于所述显式和隐式约束生成的所述查询的要求。
根据所述第一方面的第二实施方式,所述数据库还可以用于存储至少一个预建查询,其中所述查询创建单元还可以用于基于所接收的请求从所述数据库中提取至少一个预建查询以生成所述查询。
这样可以更有效且高效地处理调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的其它请求。
根据所述第一方面的第三实施方式,所述查询创建单元还可以用于,在没有预建查询与所接收的请求对应时,将至少一个与所接收的请求对应的查询存储在所述数据库中。
这样可以更有效且高效地处理调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的其它请求。
根据所述第一方面的第四实施方式,所述数据库还可以用于存储至少一个预建任务调度,和/或至少一组预建资源,和/或至少一个预建服务配置,其中所述约束求解单元还可以用于基于所接收的请求从所述数据库中提取至少一个预建任务调度和/或至少一组预建资源和/或至少一个预建服务配置,以调度所述至少一个任务和/或发放所述至少一个资源和/或提供所述至少一个服务。
这样可以更有效且高效地处理调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的其它请求。
根据所述第一方面的第五实施方式,所述约束求解单元还可以用于,在没有预建任务调度和/或一组预建资源和/或预建服务配置与所接收的请求对应时,将与所接收的请求对应的至少一个预建任务调度和/或至少一组资源和/或至少一个预建服务配置存储在所述数据库中。
这样可以更有效且高效地处理调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的其它请求。
根据所述第一方面的第六实施方式,所述查询创建单元还可以用于通过分析所接收的请求的语义来推导所述隐式约束。
这确保能够提供较大基础来确定所述约束(即,分析所接收的请求的所述语义),从而改进所述隐式约束的推导。
根据所述第一方面的第七实施方式,所述查询创建单元还可以用于确定所接收的请求的类型,以及基于所接收的请求的所述类型来推导所述隐式约束。
这确保能够提供较大基础来确定所述约束(即,分析所接收的请求的所述类型),从而改进所述隐式约束的推导。
根据所述第一方面的第八实施方式,所述约束求解单元还可以用于将所接收的请求的类型以及对应的任务信息和/或资源信息和/或服务信息存储在所述数据库中。
这样可以更有效且高效地处理调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的其它请求。
根据所述第一方面的第九实施方式,所述SDN控制器还可以包括优化单元,用于通过以下方式优化所述至少一个调度的任务和/或所述至少一个发放的资源和/或所述至少一个提供的服务:根据所述生成的查询,周期性地查询所述数据库中的所述任务信息和/或所述资源信息和/或所述服务信息。
这样可以连续、周期性地优化调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的结果,使所述SDN控制器能够迅速对所述数据库中的所述任务信息和/或所述资源信息和/或所述服务信息的变更作出反应。
根据第二方面,本发明提供了一种由软件定义网络(software defined network,SDN)控制器执行的用于进行任务调度和/或资源发放和/或服务提供的方法,所述方法包括以下步骤:接收单元接收调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的请求;以及处理单元基于所述接收单元接收的所述请求以及所接收的请求中定义的显式约束和/或所接收的请求施加的隐式约束,来调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务。
根据所述第二方面的第一实施方式,所述方法还可以包括以下步骤:在数据库中存储任务信息和/或资源信息和/或服务信息;查询创建单元提取所接收的请求中定义的所述显式约束,和/或所述查询创建单元推导所接收的请求施加的所述隐式约束;所述查询创建单元基于所述显式约束和/或所述隐式约束生成查询;约束求解单元基于所述数据库中的所述任务信息和/或所述资源信息和/或所述服务信息求解所述生成的查询中的约束;所述约束求解单元还基于所述生成的查询和/或所述任务信息和/或所述资源信息和/或所述服务信息来确定可用于执行所接收的请求的任务调度和/或一组资源和/或服务配置;所述处理单元还基于所述确定的任务调度和/或所述确定的一组资源和/或所述确定的服务配置以及所述接收单元接收的所述请求,来调度所述至少一个任务和/或发放所述至少一个资源和/或提供所述至少一个服务。
根据所述第二方面的第二实施方式,所述方法还可以包括:所述查询创建单元基于所接收的请求从所述数据库中提取至少一个预建查询以生成所述查询。
根据所述第二方面的第三实施方式,所述方法还可以包括:在没有预建查询与所接收的请求对应时,所述查询创建单元将至少一个与所接收的请求对应的查询存储在所述数据库中。
根据所述第二方面的第四实施方式,所述方法还可以包括:所述约束求解单元基于所接收的请求从所述数据库中提取至少一个预建任务调度和/或至少一组预建资源和/或至少一个预建服务配置,以调度所述至少一个任务和/或发放所述至少一个资源和/或提供所述至少一个服务。
根据所述第二方面的第五实施方式,所述方法还可以包括:在没有预建任务调度和/或一组预建资源和/或预建服务配置与所接收的请求对应时,所述约束求解单元将与所接收的请求对应的至少一个预建任务调度和/或至少一组资源和/或至少一个预建服务配置存储在所述数据库中。
根据所述第二方面的第六实施方式,所述方法还可以包括:所述查询创建单元通过分析所接收的请求的语义来推导所述隐式约束。
根据所述第二方面的第七实施方式,所述方法还可以包括:所述查询创建单元确定所接收的请求的类型;以及所述查询创建单元基于所接收的请求的所述类型来推导所述隐式约束。
根据所述第二方面的第八实施方式,所述方法还可以包括:所述约束求解单元将所接收的请求的类型以及对应的任务信息和/或资源信息和/或服务信息存储在所述数据库中。
根据所述第二方面的第九实施方式,所述方法还可以包括:优化单元通过以下方式优化所述至少一个调度的任务和/或所述至少一个发放的资源和/或所述至少一个提供的服务:所述优化单元根据所述生成的查询周期性地查询所述数据库中的所述任务信息和/或所述资源信息和/或所述服务信息。
所述第二方面的所述方法实现了所述第一方面的所述SDN控制器的所有优势。
根据第三方面,本发明提供了一种用于进行任务调度和/或资源发放和/或服务提供的计算系统,包括:根据所述第一方面或所述第一方面的任一实施形式的SDN控制器;以及至少一个代理,用于监控在所述计算系统中执行的任务和/或使用的资源和/或提供的服务,以及将来源于所述被监控的任务和/或资源和/或服务的任务信息和/或资源信息和/或服务信息存储在所述SDN控制器中。
这确保所述SDN控制器能够基于来源于所述被监控资源和/或任务和/或服务的任务信息和/或资源信息和/或服务信息来调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务。
根据所述第三方面的第一实施方式,所述SDN控制器还可以用于向所述至少一个代理提交配置指令,其中所述至少一个代理还可以用于根据所述配置指令监控在所述计算系统中执行的任务和/或使用的资源和/或提供的服务。
当所述至少一个代理需要进行配置变更时,这使所述SDN控制器可以控制所述至少一个代理的所述配置。在对有关待监控资源、任务或服务的变更需求作出反应时,这会尤其有益。这还支持调整所述任务、资源和服务的所述监控的粒度和详细程度。因此,可以调整所述监控以便,一方面,提供足够的信息来改进资源发放、任务调度和服务提供;另一方面,避免收集过多信息,以便提高所述计算系统的整体性能。
根据所述第三方面的第二实施方式,所述至少一个代理还可以用于周期性地更新所述SDN控制器中存储的所述任务信息和/或所述资源信息和/或所述服务信息。
这确保在所述计算系统中使用的资源和/或执行的任务和/或提供的服务的信息不断更新并可作为将来进行处理的基础。
根据第四方面,本发明提供了一种由计算系统执行的方法,包括以下步骤:至少一个代理监控在所述计算系统中执行的任务和/或使用的资源和/或提供的服务;以及所述至少一个代理将来源于所述被监控的任务和/或资源和/或服务的任务信息和/或资源信息和/或服务信息存储在SDN控制器中。
根据所述第四方面的第一实施方式,所述方法还可以包括:所述SDN控制器向所述至少一个代理提交配置指令;以及所述至少一个代理根据所述配置指令监控在所述计算系统中执行的任务和/或使用的资源和/或提供的服务。
根据所述第四方面的第二实施方式,所述方法还可以包括:所述至少一个代理周期性地更新所述SDN控制器中存储的所述任务信息和/或所述资源信息和/或所述服务信息。
所述第四方面的所述方法实现了所述第三方面的所述计算系统的所有优势。
附图说明
现在还将结合附图论述本发明的上述方面和实施例:
图1示出了传统任务调度和/或资源发放系统以及传统SDN控制器的示意概图。
图2示出了根据本发明一实施例的SDN控制器的示意概图。
图3示出了根据本发明一实施例的SDN控制器的示意概图。
图4示出了根据本发明的查询创建单元的示意概图。
图5示出了根据本发明一实施例的方法的流程图。
图6示出了根据本发明一实施例的计算系统的示意概图。
图7示出了根据本发明一实施例的计算系统的示意概图。
图8示出了根据本发明一实施例的方法的流程图。
图9示出了根据本发明的代理的详细示意概图。
具体实施方式
通常需要注意的是本申请中描述的所有设置、设备、模块、组件、模型、元件、单元以及方法等都可以由软件或硬件元件或其任意组合实现。本申请中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明各个实体适于或用于执行各自的步骤和功能。虽然在以下具体实施例的描述中,由通用实体执行的特定功能或步骤没有在执行特定步骤或功能的实体的具体元件的描述中反映,但是技术人员应该清楚的是这些方法和功能可以在各自的硬件或软件元件或其任意组合中实现。此外,本发明的方法及其各个步骤在各个描述的装置元件的功能中体现。
图2示出了根据本发明一实施例的用于进行任务调度和/或资源发放和/或服务提供的SDN控制器200的示意概图。
SDN控制器200包括接收单元201和处理单元202。接收单元201可以接收调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的请求。该请求可以例如由连接到SDN控制器200的客户端通过通信网络发送。具体而言,该客户端可以是与SDN控制器200位于同一通信网络中的计算节点。接收单元201接收请求后,该请求可以在处理单元202中进一步处理。也就是说,处理单元202可以基于接收单元201接收的请求来调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务。更具体地,处理单元202还可以基于所接收的请求中定义的显示约束和/或所接收的请求施加的隐式约束来调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务。
显示约束可以是硬件资源要求等,例如CPU能力、系统内存、系统存储器,或关于该请求所需的网络设备等输入输出设备的要求。
隐式约束可以由所接收的请求通过所接收的请求的语义、特性或类型等来施加。
所接收的请求的语义和/或特性和/或类型可以包括有关以下内容的信息:调度该请求的用户或客户端、该请求的来源,或者该请求是否与音频处理、视频处理、图像处理、文本处理、内容流式处理、提供预定义类型的任务、资源或服务等有关,或者该请求是否与安全意识、能源察觉或硬件加速等有关。
接收单元201接收的请求的一个示例可以具有以下结构:
request(user_id,service_type,request,exp_constraints)。
在给出的示例中,参数“user_id”定义了提交请求的用户的身份。参数“user_id”可以是用户先前用来访问SDN控制器200的基本功能的标识。参数“service_type”特别定义了请求是否与资源发放或任务调度或服务提供有关。参数“request”包含与待发放的资源或待调度的任务或待提供的服务有关的信息。参数“exp_constraints”定义了请求中包含的显式约束。特别地,隐式约束由请求的所有参数施加,即,由参数“user_id”、“service_type”、“request”和“exp_constraints”施加。
图3示出了根据本发明一实施例的SDN控制器200的更详细的示意概图。
SDN控制器200及其单元包括图1所示的SDN控制器200的功能以及上文描述的对应单元。因此,类似的组件使用相同的参考标号来标识。
SDN控制器200还可以包括数据库303。数据库303可以是根据SQL数据库、键值存储、NoSQL数据库的工作原理的数据库,或仅仅是一个或多个文本文件(例如JSON格式的文件),等等。该数据库可以存储任务信息和/或资源信息和/或服务信息。
具体地,处理单元202还可以基于数据库303中存储的任务信息和/或资源信息和/或服务信息来调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务。
至少一个代理可以收集任务信息和/或资源信息和/或服务信息,并将这些信息提供给SDN控制器200。为此,该至少一个代理可以在计算节点上或计算系统(例如数据中心)中监控资源和/或任务和/或服务,如下文将结合图6和图7所述。
为了优化SDN控制器200中的处理结果,可以调整所收集的任务信息和/或资源信息和/或服务信息的粒度和详细程度。
任务信息和/或资源信息和/或服务信息可以包括已经在和/或正在也使用SDN控制器200的计算系统中运行的任务的信息,例如在计算系统的计算节点上运行的任务的信息,以及运行时信息和工作负载信息。这些信息可以根据评估(例如先前和当前运行时信息的经验评估)来帮助改进将来的任务调度、将来的资源发放或将来的服务提供,重新调度当前运行的任务或服务(以对修改后的系统负载或配置作出反应,等等),和/或改进当前在计算系统中运行的任务或服务的总计算时间。任务信息和/或资源信息和/或服务信息还可以包括关于被监控计算节点之间的地理距离或网络距离的信息。这类信息在以下情况中是有益的:例如必须在特定地点的数据中心中调度一个关键任务(例如,以遵守法律或合规政策),以及例如计算节点之间的网络流量较高且不应通过太多网络节点转发。例如,可以设置一个数字来规定一个调度任务可通过多少链路(连接计算节点和/或数据中心的网络连接)和/或网络节点来分发。
为了确定计算节点的地理位置,计算节点还可以包括位置确定模块,例如全球定位系统(global positioning system,GPS)或构件,以通过射频单元(例如通过三角测量技术)检测计算节点的位置。任务信息和/或资源信息和/或服务信息还可以包括能耗和功耗信息。在处理接收的请求以例如优化数据中心的整体能耗时,评估这类信息是有益的。为了确定计算节点的能态和功耗,计算节点还可以包括能态和功耗确定模块。
任务信息和/或资源信息和/或服务信息还可以包括节点和/或计算系统架构信息、硬件配置信息、处理能力信息、内存容量信息、存储容量信息和可用设备信息。具体而言,任务信息和/或资源信息和/或服务信息可以包括有关以下内容的信息:网络设备(例如网络接口、路由器、交换机或SDN网元)的状态或负载、负载均衡器的状态或负载、防火墙的状态或负载、计算节点或数据中心的网络距离、对计算节点或数据中心执行更新操作的必要性、计算节点中是否存在PCI或网络设备、包检查器提供的信息、与计算节点的系统缓存有关的信息,以及非一致性内存访问(non-uniform memory access,NUMA)节点信息。在调度任务、发放资源和提供服务时,考虑这类信息是有用的,以提高整体系统性能。
任务信息和/或资源信息和/或服务信息还可以包括温度信息。结合温度信息来调度任务、发放资源或提供服务具有以下优势:通过使用系统温度低的计算节点来执行任务、提供资源或发放服务,能够避免中断或损坏计算节点或计算系统。
任务信息和/或资源信息和/或服务信息还可以包括虚拟机监视器信息。在调度任务、提供资源或发放服务时评估虚拟机监视器信息是有益的,这是因为,当例如任务或服务需要设置新VM或变更计算系统中运行的VM的配置时,可以考虑在被监控的计算系统中运行的VM和虚拟机监视器的配置和系统状态。
任务信息和/或资源信息和/或服务信息还可以包括当前或先前执行的任务、发放的资源或提供的服务的经验运行时信息或资源消耗信息。使用这类信息支持考虑先前任务、资源和服务的经验信息,例如通过评估先前处理的相同任务、资源或服务的资源消耗来避免整体系统性能较低。
下文描述SDN控制器200可以如何评估存储在数据库303中的任务信息和/或资源信息和/或服务信息。
在SDN控制器200中通过接收单元201接收调度任务和/或发放资源和/或提供服务的请求后,该请求被转发给包括在SDN控制器200中的查询创建单元304。查询创建单元304可以提取所接收的请求中定义的显式约束,和/或推导所接收的请求施加的隐式约束。
所接收的请求可以例如包括关于所需内存量、CPU能力、GPU能力、系统内存、系统存储器、系统架构的信息,以及关于任务的压缩、加密和协同调度的信息。查询创建单元304可以从这些信息中提取所接收的请求中定义的显式约束,并且推导所接收的请求施加的隐式约束。
查询创建单元304可以通过分析所接收的请求304的语义和/或特性来推导隐式约束。查询创建单元304可以确定所接收的请求的类型,并基于所接收的请求的类型来推导隐式约束。
在与置于通信网络中的计算节点有关的一个示例中,用户可以打开网站使用网上银行或电子商务应用。查询创建单元304可以从用户打开的网站的信息中推导出该操作需要高安全性。因此,SDN控制器200可以相应地设置计算节点和通信网络的安全性和网络配置。根据上述示例推导隐式约束时所需的信息可以例如通过分析所打开的网站的URL或通过分析所打开的网站加载的内容来收集。
在关于数据中心中的任务调度、资源发放和服务提供的另一示例中,查询创建单元304可以从所接收的请求中推导出任务或服务是否来自预定义的应用领域(例如Hadoop或大数据、MPI调度器、Spark调度器或CUDA调度器中的任务调度),检测所需的CPU能力、内存量和系统存储量,并相应地提供资源。
现结合图4更详细地描述查询创建单元304。图4示出了根据本发明的查询创建单元的详细示意概图。
查询创建单元304可以包括提示收集器401、查询创建器402和提示信息数据库403。查询创建单元304通过提示收集器401接收SDN控制器200处理的任务调度和/或资源发放和/或服务提供请求。提示收集器401可以从任务调度和/或资源发放和/或服务提供请求中提取显式调度约束并推导隐式调度约束。
具体而言,这通过分析所接收的请求的语义、特性或类型来实现。查询创建单元304基于显式约束和/或隐式约束,通过查询创建器402生成查询。查询创建器402继而将所生成的查询转发给约束求解单元305。为了改进查询生成性能,提示收集器401和查询创建器402可以将先前创建的查询的信息存储在提示信息数据库403中。提示信息数据库403通过与数据库303相同的技术方式来提供。具体而言,提示信息数据库403可以包括在数据库303中。先前创建的查询的信息可以包括有关以下内容的信息:任务调度、资源发放或服务提供的相关请求、从所述请求推导出的显式和隐式调度约束,以及根据请求生成的查询。
下面给出了查询创建单元304评估的显式约束的一个示例表示。当根据显式约束生成查询时,约束可以例如如下:
C1指定CPU数量要求,C2指定内存大小要求,C3指定网络带宽要求,C4指定存储空间要求,C5指定GPU存在要求。当然,还可以指定其它或替代性要求。
查询创建单元304创建的、考虑了上述约束的查询的一个示例表示可为:
“get_schedule(Cl,C2,C3,C4,C5)”或
“get_schedule(4,500MB,1Gb/s,1GB,yes)”。
可以看出,查询需要超过4个CPU、超过500MB系统内存、速度超过1Gb/s的网络接口、大于1GB的系统存储器以及要提供给任务或服务的GPU。
查询创建单元304在创建查询时评估的其它显式调度约束可以是有关以下内容的显式引用:能耗和/或功耗知晓情况、对安全策略的遵从性和/或预定义安全设置的存在情况、预定义硬件设备的存在情况、对协同调度的支持情况,以及关于将任务在VM中调度还是调度为VM的要求。
下面给出了查询创建单元304评估的隐式调度约束的一个示例:
如果调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的请求需要至少两个计算节点进行通信——例如,由于多个计算节点的资源必须分配给单个任务——则查询创建单元304可以将所涉及的计算节点的地理距离和/或网络距离作为隐式调度约束来考虑,以将所涉及的计算节点之间的通信开销(例如网络流量)减至最少。具体而言,SDN控制器200可以确定地理距离和/或网络距离。
返回图3,现描述约束求解单元305如何进一步处理查询创建单元304创建的查询。
约束求解单元305收到查询创建单元304创建的查询后,基于数据库303中存储的任务信息和/或资源信息和/或服务信息对所生成查询中的约束求解。具体地,约束求解单元305通过评估数据库303中的任务信息和/或资源信息和/或服务信息,对查询中提供的隐式和显式约束求解。为此,具体而言,约束求解单元305可以基于布尔可满足性问题求解器(SAT求解器)的工作原理。约束求解单元305可以使用深度优先查询(depth-first search,DFS),一种遍历或搜索树形或图形数据结构的算法,来评估调度信息。
这使约束求解单元305能够基于所生成的查询,和/或任务信息和/或资源信息和/或服务信息,来确定可用于执行所接收的请求的任务调度和/或一组资源和/或服务配置。
具体而言,约束求解单元305为了处理查询而评估的任务信息和/或资源信息和/或服务信息可以包括SDN控制器200先前收到的请求的信息,例如先前请求的类型、语义或特性,以及相应信息,例如显式和隐式约束、由于先前请求而分配给某个任务或服务的硬件资源,以及该任务或服务的运行时行为。约束求解单元305可以存储、更新并读取数据库303中的上述信息。这样,可以评估运行时信息,例如当前调度的任务或当前提供的服务的性能和位置(例如,任务或服务在数据中心中的哪个节点上执行),并且可以改进将来的任务调度、将来的资源发放和将来的服务提供。
约束求解单元305处理查询后,处理单元202基于确定的任务调度和/或确定的一组资源和/或确定的服务配置,以及接收单元201接收的请求,来调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务。
处理单元202调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务会直接影响数据中心中计算节点的处理,该数据中心具体而言是采用了SDN控制器200的数据中心。具体地,计算节点或数据中心的处理可以根据确定的任务调度和/或确定的一组资源和/或确定的服务配置,以及接收单元201接收的请求,例如通过将一个计算任务或一个服务分配给一个或多个计算节点来进行变更。在另一示例中,所确定的一组资源可以包括关于任务或服务将在数据中心的哪个部分(例如,通过哪个计算节点,或通过数据中心中计算节点的哪个CPU内核或GPU内核)执行的信息。
为了改进SDN控制器200接收的请求的处理,数据库303可以存储来源于例如先前的任务调度和/或资源发放和/或服务提供请求的预建查询。为了提高整体系统性能,查询创建单元304可以基于所接收的请求从数据库303中提取至少一个预建查询以调度任务和/或发放资源和/或提供服务。如果在数据库303中未找到针对当前接收的请求的合适查询,则查询创建单元304可以将与所接收的请求对应的至少一个新查询存储在数据库303中。这样可以更有效地处理将来的请求。查询创建单元304还可以更新数据库303中存储的预建查询,以使预建查询适应数据库303中的任务信息和/或资源信息和/或服务信息的变更,等等。
数据库303还可以存储来源于例如先前的任务调度和/或资源发放和/或服务提供请求的预建任务调度和/或一组预建资源和/或预建服务配置。为了提高整体系统性能,约束求解单元305可以基于所接收的请求从数据库303中提取至少一个预建任务调度和/或至少一组预建资源和/或至少一个预建服务配置,以调度任务和/或发放资源和/或提供服务。如果在数据库303中未找到针对所接收的请求的合适任务调度和/或一组资源和/或服务配置,则约束求解单元305可以将至少一个新任务调度和/或至少一组新资源和/或至少一个新服务配置存储在数据库303中。这样可以更有效地处理将来的请求。约束求解单元305还可以更新数据库303中存储的预建任务调度和/或一组预建资源和/或预建服务配置,以使所述预建任务调度和/或一组预建资源和/或预建服务配置适应数据库303中的任务信息和/或资源信息和/或服务信息的变更,等等。
SDN控制器200还可以包括可选的优化单元306。优化单元306可以通过以下方式优化至少一个调度任务和/或至少一个发放的资源和/或至少一个提供的服务:根据所生成的查询,周期性地查询数据库303中的任务信息和/或资源信息和/或服务信息。这一优化尤其会影响任务、资源和服务的处理效果和效率。为此,动态优化器306采用接口连接数据库303、结束求解单元305和处理单元202,并与它们交换信息。动态优化器306可以将至少一个调度任务和/或至少一个发放的资源和/或至少一个提供的服务的优化结果存储在数据库303中,以便为将来的优化提供基础。
图5示出了根据本发明一实施例的方法500的流程图。优选地,本方法由如上所述的SDN控制器200执行。
方法500包括第一步骤:接收单元201接收501调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的请求。
此外,方法500包括第二步骤:处理单元202基于接收单元201接收的请求以及所接收的请求中定义的显式约束和/或所接收的请求施加的隐式约束,来调度502至少一个任务和/或发放至少一个资源和/或提供至少一个服务。
图6示出了根据本发明一实施例的计算系统600的示意概图。
计算系统600包括SDN控制器200和至少一个代理601。计算系统600通常允许至少一个代理601监控在计算系统600中执行的任务和/或使用的资源和/或提供的服务。至少一个代理601可以将来源于被监控的任务和/或资源和/或服务的任务信息和/或资源信息和/或服务信息存储在SDN控制器200中。在图6中,示例性地示出了三个代理601,而本发明当然不限于三个代理601。
当监控在计算系统600中执行的任务和/或使用的资源和/或提供的服务时,具体而言,至少一个代理601可以收集所有种类的任务信息和/或资源信息和/或服务信息,如上文结合图3所述。
图7示出了根据本发明一实施例的计算系统600的详细示意概图,其基于图6所示的计算系统600。
计算系统600包括SDN控制器200和至少一个代理601。计算系统600及其组件包括SDN控制器200和图6所示计算系统600的功能及其上述对应组件。因此,类似的组件使用相同的参考标号来标识。在图7中,示例性地示出了三个代理601,而本发明当然不限于三个代理601。
在计算系统600中,SDN控制器200还可以用于向至少一个代理601提交配置指令。然后,至少一个代理601可以根据配置指令监控在计算系统600中执行的任务和/或使用的资源和/或提供的服务。
SDN控制器200可以通过提供给SDN控制器200的配置信息来进行配置。SDN控制器200评估所提供的配置信息,并根据配置信息评估来确定是否需要变更至少一个代理601的配置。如果需要变更至少一个代理601的配置,则SDN控制器200向至少一个代理601发送各配置指令。然后,至少一个代理601基于配置指令更新其配置。
然后,至少一个代理601根据其初始配置和/或从SDN控制器200接收的配置指令,监控在计算系统600中执行的任务和/或使用的资源和/或提供的服务。至少一个代理601收集关于被监控的所执行任务和/或所用资源和/或所提供服务的任务信息和/或资源信息和/或服务信息,并将这些信息存储在SDN控制器200的数据库303中。例如,至少一个代理601可以向数据库303发送查询以存储任务信息和/或资源信息和/或服务信息。
至少一个代理601还可以用于根据要求或周期性地,即,以预定时间间隔,将任务信息和/或资源信息和/或服务信息存储在数据库303中。因此,关于在计算系统600中使用的资源和/或执行的任务和/或提供的服务的信息不断更新,并可作为将来进行处理的基础。
为了支持数据库303中的信息的有效更新,仅可以从至少一个代理601向数据库303传输增量信息。数据库303可以基于从至少一个代理601接收的任务信息和/或资源信息和/或服务信息来存储并更新任务信息和/或资源信息和/或服务信息的离散值。数据库303还可以存储并更新任务信息和/或资源信息和/或服务信息的值随着时间的发展,具体地,以便能够比较并评估先前存储的信息,从而改进将来由处理单元202或约束求解单元305等进行的处理。
如上所述,SDN控制器200基于配置信息向至少一个代理601提交配置指令。配置信息可由数据库提供(例如SQL数据库、键值存储、NoSQL数据库,等等),该数据库也可以是数据库303,或仅为一个或多个文本文件(例如JSON格式的文本文件)。根据配置信息,可以调整任务、资源和服务的监控的粒度和详细程度。因此,可以调整监控以便,一方面,提供足够的信息来改进资源发放、任务调度和服务提供;另一方面,避免收集过多信息,以便提高计算系统600的整体性能。
配置信息可以由用户输入生成,也可以从SDN控制器200中的预定义配置信息中选择。SDN控制器200可以根据应监控的硬件资源、任务或服务自动选择配置信息。
此外,SDN控制器200可根据可用资源(即,待监控的硬件或软件资源)、数据中心设置或所采用的架构来选择合适的配置信息。SDN控制器200还可以周期性地检查配置信息以检测配置信息变更,并且可以相应地更新至少一个代理601的配置。具体而言,SDN控制器200可能检测到计算系统600中的配置变更,这些配置变更由至少一个代理601传送给SDN控制器200。因此,SDN控制器200可以通过以下方式对计算系统600的变更后配置作出反应:向至少一个代理601发送适合计算系统600的变更后配置的配置指令。
计算系统600还可以包括至少一个计算节点,但是通常包括很多计算节点。为了便于说明,图7中未示出计算节点。每个计算节点可以执行至少一个代理601。计算节点可以是异构的,即,它们可以具有不同的配置。例如,每个计算节点可以具有不同的硬件资源(例如,不同CPU和/或GPU架构、内存、存储器,等等)。每个计算节点可以是例如单核以及多核节点。计算节点的一般系统架构也可以不同。还可能将物理和虚拟化计算节点(例如VM)混合在同一计算系统600中。但是,计算节点在架构和/或配置方面也可以是同构的。
至少一个代理601可以监控在至少一个计算节点上执行的任务和/或使用的资源和/或提供的服务。至少一个代理601可以在上述计算节点(例如,具有不同硬件配置、硬件架构的计算节点,或者物理计算节点以及虚拟计算节点)中的每个计算节点上执行,并且代理601可以在数据库303中存储并更新与各计算节点有关的任务信息和/或资源信息和/或服务信息。因此,SDN控制器303,具体是约束求解单元305或处理单元202,可以使用从计算节点收集的任务信息和/或资源信息和/或服务信息来处理在异构数据中心中调度任务和/或发放资源和/或提供服务的请求。能够在计算节点上执行不止一个代理601可以具有各独立代理601收集的独立信息,例如为了安全或性能目的。例如,有可能在计算节点上执行一个代理601以通过监控在计算节点上使用的资源来仅收集资源信息,同时在同一计算节点上执行第二个代理601以通过监控在计算节点上执行的任务来仅收集任务信息。在另一示例中,有可能通过在同一计算节点上执行的两个或更多代理601来分别监控在该同一计算节点上运行的两个或更多VM。计算系统600还可以包括不执行代理601的计算节点。
具体而言,计算节点可以是基于SDN的网元,例如交换机。因此,至少一个代理601有可能监控在至少一个网元上执行的任务和/或使用的资源和/或提供的服务,收集关于被监控的所执行任务和/或所用资源和/或所提供服务的任务信息和/或资源信息和/或服务信息,并将这些信息存储在SDN控制器200的数据库303中。
在计算系统600中,处理单元202调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务会直接影响计算节点根据上文结合图3和图5描述的工作原理进行的处理。
图8示出了根据本发明一实施例的方法800的流程图。优选地,本方法由上述计算系统600执行。
方法800包括第一步骤:至少一个代理601监控801在计算系统600中执行的任务和/或使用的资源和/或提供的服务。
此外,方法800包括第二步骤:至少一个代理601将来源于被监控的任务和/或资源和/或服务的任务信息和/或资源信息和/或服务信息存储802在SDN控制器200中。
用于执行上述每种方法,具体是结合图6和图8所述的方法,的指令可以分别存储在一种存储介质中。存储介质可以是计算机可读存储介质,例如但不限于任意类型的磁盘,包括软盘、光盘、CD-ROM、DVD、磁光盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、EPROM、EEPROM、磁卡或光卡、专用集成电路(applicationspecific integrated circuit,ASIC)或任意类型的适于存储电子指令的介质,每种介质耦合到一个计算机系统总线。
图9示出了根据本发明的代理900的示意概图。
代理900包括监控单元901、本地处理单元902、本地数据库903、本地查询创建单元904、本地约束求解单元905和本地优化单元906。代理900可包括上文结合图6和图7描述的代理601的特征和功能。
监控单元901监控在计算节点907上执行的任务和/或使用的资源和/或提供的服务,并将来源于被监控的任务和/或资源和/或服务的任务信息和/或资源信息和/或服务信息存储在本地数据库903中。
本地数据库903可以存储并更新任务信息和/或资源信息和/或服务信息的离散值。本地数据库903还可以存储并更新任务信息和/或资源信息和/或服务信息的值随着时间的发展,具体地,以便能够比较并评估先前存储的信息,从而改进将来由处理单元202或约束求解单元305或本地处理单元902或本地约束求解单元905等进行的处理。
为了实现任务信息和/或资源信息和/或服务信息在SDN控制器200中的进一步处理,可以通过通信网络等将存储在本地数据库903中的任务信息和/或资源信息和/或服务信息与SDN控制器200的数据库303交换。
监控单元901将非常细粒度的任务信息和/或资源信息和/或服务信息存储在本地数据库903中,这些信息来源于在计算节点907上监控的资源和/或任务和/或服务。具体地,代理900支持调整在本地数据库903与数据库303之间交换的任务信息和/或资源信息和/或服务信息的粒度。更具体地,监控单元901可以收集细粒度(即,非常详细的)信息并存储在本地数据库903中,而仅粗粒度信息(即,包括较少细节的信息)被传输到SDN控制器200的数据库303。
因此,可以调整监控和信息交换以便,一方面,提供足够的信息来改进SDN控制器200中的资源发放、任务调度和服务提供;另一方面,避免收集过多信息,以便提高SDN控制器200的整体性能。
另外,本地处理单元902、本地数据库903、本地查询创建单元904、本地约束求解单元905和本地优化单元906包括如结合图3所述的处理单元202、数据库303、查询创建单元304、约束求解单元305和优化单元306的功能。这可以将处理从SDN控制器200的单元外包给代理900的相应本地单元。例如,本地数据库903可以支持数据库303,本地查询创建单元904可以支持查询创建单元304,本地约束求解单元905可以支持约束求解单元305,本地优化单元906可以支持优化单元306,本地处理单元902可以支持处理单元202。因此,代理900有助于SDN控制器200的处理,并且能够实现使用SDN控制器200和代理900的计算系统的可扩展性。
在一个特定实施方式示例中,代理900还包括本地接收单元,并包括如结合图2、图3和图4描述的SDN控制器200的所有功能。这使代理900能够自主调度任务和/或发放资源和/或提供服务。
在此结合各种实施例描述了本发明。但本领域技术人员通过实践本发明,研究附图、本发明以及所附的权利要求,能够理解并获得公开实施例的其它变体。在权利要求书中,词语“包括”不排除其它元素或步骤,不定冠词“一”不排除多个。单个处理器或其它单元可满足权利要求中描述的几项的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能被有效地使用。计算机程序可以存储/分布到合适的介质上,例如与其它硬件一起或者作为其它硬件的部分提供的光存储介质或者固态介质,还可以以其它形式例如通过因特网或者其它有线或无线电信系统分布。
Claims (13)
1.一种用于进行任务调度和/或资源发放和/或服务提供的软件定义网络(softwaredefined network,SDN)控制器(200),其特征在于,包括:
-接收单元(201),用于接收调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的请求;以及
-处理单元(202),用于基于所述接收单元(201)接收的所述请求以及所接收的请求中定义的显式约束和/或所接收的请求施加的隐式约束,来调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务,
其中,所述SDN控制器(200)还包括:
-数据库(303),用于存储任务信息和/或资源信息和/或服务信息;
-查询创建单元(304),用于提取所接收的请求中定义的所述显式约束,和/或推导所接收的请求施加的所述隐式约束,
所述查询创建单元(304)还用于基于所述显式约束和/或所述隐式约束来生成查询;以及
-约束求解单元(305),用于基于所述数据库(303)中的所述任务信息和/或所述资源信息和/或所述服务信息求解所述生成的查询中的约束,
所述约束求解单元(305)还用于基于所述生成的查询和/或所述任务信息和/或所述资源信息和/或所述服务信息来确定可用于执行所接收的请求的任务调度和/或一组资源和/或服务配置;其中,所述处理单元(202)还可以用于基于所述确定的任务调度和/或所述确定的一组资源和/或所述确定的服务配置,以及所述接收单元(201)接收的所述请求,来调度所述至少一个任务,和/或发放所述至少一个资源,和/或提供所述至少一个服务。
2.根据权利要求1所述的SDN控制器(200),其特征在于,所述数据库(303)还用于存储至少一个预建查询,所述查询创建单元(304)还用于基于所接收的请求从所述数据库(303)中提取至少一个预建查询以生成所述查询。
3.根据权利要求1或2所述的SDN控制器(200),其特征在于,所述查询创建单元(304)还用于,在没有预建查询与所接收的请求对应时,将至少一个与所接收的请求对应的查询存储在所述数据库(303)中。
4.根据权利要求1或2所述的SDN控制器(200),其特征在于,所述数据库(303)还用于存储至少一个预建任务调度和/或至少一组预建资源和/或至少一个预建服务配置,所述约束求解单元(305)还用于基于所接收的请求从所述数据库(303)中提取至少一个预建任务调度和/或至少一组预建资源和/或至少一个预建服务配置,以调度所述至少一个任务和/或发放所述至少一个资源和/或提供所述至少一个服务。
5.根据权利要求1或2所述的SDN控制器(200),其特征在于,所述约束求解单元(305)还用于,在没有预建任务调度和/或一组预建资源和/或预建服务配置与所接收的请求对应时,将与所接收的请求对应的至少一个预建任务调度和/或至少一组资源和/或至少一个预建服务配置存储在所述数据库(303)中。
6.根据权利要求1或2所述的SDN控制器(200),其特征在于,所述查询创建单元(304)还用于通过分析所接收的请求的语义来推导所述隐式约束。
7.根据权利要求1或2所述的SDN控制器(200),其特征在于,所述查询创建单元(304)还用于确定所接收的请求的类型,以及基于所接收的请求的所述类型来推导所述隐式约束。
8.根据权利要求1或2所述的SDN控制器(200),其特征在于,所述约束求解单元(305)还用于将所接收的请求的类型以及对应的任务信息和/或资源信息和/或服务信息存储在所述数据库(303)中。
9.根据权利要求1或2所述的SDN控制器(200),其特征在于,所述SDN控制器(200)还包括优化单元(306),用于通过以下方式优化所述至少一个调度的任务和/或所述至少一个发放的资源和/或所述至少一个提供的服务:根据所述生成的查询,周期性地查询所述数据库(303)中的所述任务信息和/或所述资源信息和/或所述服务信息。
10.一种由软件定义网络(software defined network,SDN)控制器(200)执行的用于进行任务调度和/或资源发放和/或服务提供的方法(500),其特征在于,包括以下步骤:
-接收单元(201)接收(501)调度至少一个任务和/或发放至少一个资源和/或提供至少一个服务的请求;以及
处理单元(202)基于所述接收单元(201)接收的所述请求以及所接收的请求中定义的显式约束和/或所接收的请求施加的隐式约束,来调度(502)至少一个任务和/或发放至少一个资源和/或提供至少一个服务,其中,所述SDN控制器(200)还包括:
-数据库(303)存储任务信息和/或资源信息和/或服务信息;
-查询创建单元(304)提取所接收的请求中定义的所述显式约束,和/或推导所接收的请求施加的所述隐式约束,
所述查询创建单元(304)基于所述显式约束和/或所述隐式约束来生成查询;以及
-约束求解单元(305)基于所述数据库(303)中的所述任务信息和/或所述资源信息和/或所述服务信息求解所述生成的查询中的约束,
所述约束求解单元(305)基于所述生成的查询和/或所述任务信息和/或所述资源信息和/或所述服务信息来确定可用于执行所接收的请求的任务调度和/或一组资源和/或服务配置;其中,所述处理单元(202)基于所述确定的任务调度和/或所述确定的一组资源和/或所述确定的服务配置,以及所述接收单元(201)接收的所述请求,来调度所述至少一个任务,和/或发放所述至少一个资源,和/或提供所述至少一个服务。
11.一种用于进行任务调度和/或资源发放和/或服务提供的计算系统(600),其特征在于,包括:
-根据权利要求1至9中的任一项所述的SDN控制器(200);以及
-至少一个代理(601),用于监控在所述计算系统中执行的任务和/或使用的资源和/或提供的服务,以及将来源于被监控的所述任务和/或所述资源和/或所述服务的任务信息和/或资源信息和/或服务信息存储在所述SDN控制器(200)中。
12.根据权利要求11所述的计算系统(600),其特征在于,所述SDN控制器(200)还用于向所述至少一个代理(601)提交配置指令,所述至少一个代理(601)还用于根据所述配置指令监控在所述计算系统(600)中执行的任务和/或使用的资源和/或提供的服务。
13.根据权利要求11所述的计算系统(600),其特征在于,所述至少一个代理(601)还用于周期性地更新所述SDN控制器(200)中存储的所述任务信息和/或所述资源信息和/或所述服务信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16179575.2A EP3270536B1 (en) | 2016-07-14 | 2016-07-14 | Sdn controller and method for task scheduling, resource provisioning and service providing |
EP16179575.2 | 2016-07-14 | ||
PCT/EP2017/067895 WO2018011408A1 (en) | 2016-07-14 | 2017-07-14 | Sdn controller, system and method for task scheduling, resource provisioning and service providing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109478973A CN109478973A (zh) | 2019-03-15 |
CN109478973B true CN109478973B (zh) | 2020-09-11 |
Family
ID=56615827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780043772.5A Active CN109478973B (zh) | 2016-07-14 | 2017-07-14 | 用于任务调度、资源发放和服务提供的sdn控制器、系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11088927B2 (zh) |
EP (1) | EP3270536B1 (zh) |
CN (1) | CN109478973B (zh) |
WO (1) | WO2018011408A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190342380A1 (en) | 2018-05-07 | 2019-11-07 | Microsoft Technology Licensing, Llc | Adaptive resource-governed services for performance-compliant distributed workloads |
CN112532665A (zh) * | 2019-09-18 | 2021-03-19 | 中兴通讯股份有限公司 | 一种服务器负载均衡的方法、装置及cdn节点 |
CA3101713A1 (en) * | 2019-12-06 | 2021-06-06 | Evertz Microsystems Ltd. | Systems and methods for processing data streams |
CN113220443A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 资源分配方法及装置 |
US20230079993A1 (en) * | 2020-02-11 | 2023-03-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Creating services in a virtualised network environment |
US11321250B2 (en) * | 2020-07-28 | 2022-05-03 | Dell Products L.P. | Input/output device selection system |
CN112416534A (zh) * | 2020-11-23 | 2021-02-26 | 北京中电普华信息技术有限公司 | 一种基于Agent的任务管理方法及装置 |
US20220197701A1 (en) * | 2020-12-22 | 2022-06-23 | Red Hat, Inc. | Managing resource allocation in a software-defined system |
CN112817763B (zh) * | 2021-02-04 | 2023-08-11 | 深圳市永达电子信息股份有限公司 | 基于表函数的类脑超算任务队列调度方法、系统以及计算机存储介质 |
US20230342222A1 (en) * | 2022-04-22 | 2023-10-26 | Dell Products L.P. | Intelligent load balancing in a distributed system |
CN115102898B (zh) * | 2022-06-01 | 2023-07-07 | 中国联合网络通信集团有限公司 | 通信方法、设备及存储介质 |
CN116339955B (zh) * | 2023-05-25 | 2023-08-11 | 中国人民解放军国防科技大学 | 计算换通信框架的局部优化方法、装置和计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957780A (zh) * | 2010-08-17 | 2011-01-26 | 中国电子科技集团公司第二十八研究所 | 一种基于资源状态信息的网格任务调度处理器及方法 |
EP2961100A1 (en) * | 2014-06-27 | 2015-12-30 | Juniper Networks, Inc. | Graph database for services planning and configuration in network services domain |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9253026B2 (en) * | 2013-12-18 | 2016-02-02 | International Business Machines Corporation | Software-defined networking disaster recovery |
WO2016007897A1 (en) * | 2014-07-10 | 2016-01-14 | Huawei Technologies Co., Ltd. | System and method for information centric network resource allocation |
US9246690B1 (en) * | 2014-09-03 | 2016-01-26 | Amazon Technologies, Inc. | Secure execution environment services |
US9843534B2 (en) * | 2014-12-18 | 2017-12-12 | Here Global B.V. | Method and apparatus for managing provisioning and utilization of resources |
US10097627B1 (en) * | 2015-06-16 | 2018-10-09 | Amazon Technologies, Inc. | Computer resource allocation |
-
2016
- 2016-07-14 EP EP16179575.2A patent/EP3270536B1/en active Active
-
2017
- 2017-07-14 CN CN201780043772.5A patent/CN109478973B/zh active Active
- 2017-07-14 WO PCT/EP2017/067895 patent/WO2018011408A1/en active Application Filing
-
2019
- 2019-01-11 US US16/245,872 patent/US11088927B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957780A (zh) * | 2010-08-17 | 2011-01-26 | 中国电子科技集团公司第二十八研究所 | 一种基于资源状态信息的网格任务调度处理器及方法 |
EP2961100A1 (en) * | 2014-06-27 | 2015-12-30 | Juniper Networks, Inc. | Graph database for services planning and configuration in network services domain |
Also Published As
Publication number | Publication date |
---|---|
US11088927B2 (en) | 2021-08-10 |
EP3270536B1 (en) | 2019-03-06 |
US20190166019A1 (en) | 2019-05-30 |
WO2018011408A1 (en) | 2018-01-18 |
EP3270536A1 (en) | 2018-01-17 |
CN109478973A (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109478973B (zh) | 用于任务调度、资源发放和服务提供的sdn控制器、系统和方法 | |
Gill et al. | Resource provisioning based scheduling framework for execution of heterogeneous and clustered workloads in clouds: from fundamental to autonomic offering | |
CN109075988B (zh) | 任务调度和资源发放系统和方法 | |
Coutinho et al. | Elasticity in cloud computing: a survey | |
US10069690B2 (en) | Methods and systems of tracking and verifying records of system change events in a distributed network system | |
US20180062942A1 (en) | Methods and Systems for Exception Detection and Reporting in a Distributed Network System | |
Lakshmanan et al. | Placement strategies for internet-scale data stream systems | |
Battula et al. | An efficient resource monitoring service for fog computing environments | |
Nithya et al. | SDCF: A software-defined cyber foraging framework for cloudlet environment | |
Belgaum et al. | Cloud service ranking using checkpoint-based load balancing in real-time scheduling of cloud computing | |
De Souza et al. | Boosting big data streaming applications in clouds with BurstFlow | |
Mershad et al. | A study of the performance of a cloud datacenter server | |
Orzechowski et al. | Categorization of cloud workload types with clustering | |
Saravanakumar et al. | An Efficient Technique for Virtual Machine Clustering and Communications Using Task‐Based Scheduling in Cloud Computing | |
Abase et al. | Locality sim: cloud simulator with data locality | |
Jayapandian et al. | The online control framework on computational optimization of resource provisioning in cloud environment | |
Okafor et al. | Evaluation of virtualized osmotic cloud network using discrete event Branch-and-Bound heuristics | |
Peer Mohamed et al. | An efficient framework to handle integrated VM workloads in heterogeneous cloud infrastructure | |
Tzenetopoulos et al. | Interference-aware workload placement for improving latency distribution of converged HPC/Big Data cloud infrastructures | |
Zhang | MLIM-Cloud: a flexible information monitoring middleware in large-scale cloud environments | |
Prathiba et al. | Architecture to minimize energy consumption in cloud datacenter | |
Wu et al. | Elastic resource provisioning for batched stream processing system in container cloud | |
Thu | Dynamic replication management scheme for effective cloud storage | |
Shaikh et al. | A semantic-based centralized resource discovery model for grid computing | |
Souza Junior et al. | Boosting big data streaming applications in clouds with burstFlow |
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 |