本发明涉及云计算资源调度技术领域,特别是指一种容器云资源调度方法。
背景技术:
在物理资源上运用虚拟化技术,不仅可以提高系统的可靠性、有效性以及可扩展性。目前大部分的云商家都采用了hypervisor虚拟化技术来实现物理资源与虚拟资源的映射关系,具体的,通过对物理资源的抽象,完成虚拟资源的创建。在这种模式下,虚拟化的基本单元是虚拟机,每一个虚拟机安装有完整的操作系统,可以通过虚拟化工具把虚拟机中的操作指令转换到物理资源上。以虚拟机为单位的虚拟架构已经被广泛应用于云计算的弹性资源供应中,但基于虚拟机的云资源管理缺乏灵活性和有效性。它会占据大量的cpu和内存资源,带来了不必要的开销,操作系统在启动的同时会等待较长时间,因此基于容器的虚拟化技术(container-basedvirtualizatiion)应用而生,它在底层运行一个主操作系统。
所述容器与虚拟机是有一定差别的,例如,一台虚拟机所占用的资源往往比一个容器多达十倍不止,因为虚拟机需要创建自己的操作系统,而且不同虚拟机无法共享应用程序的依赖资源;而不同的容器可以共享同一个主操作系统,不需要模拟硬件,不需要将容器指令转换到物理资源上面,只需将每个容器的宿主隔离,从而实现了多个容器共享一个主机的资源。一般一台物理资源(也可以称为物理机)上只能创建十几台虚拟机,但却可以创建上百台容器,因此,容器是一种轻量级虚拟化技术,它能够在保持程序独立性的同时兼顾资源的共享,在基于容器的虚拟化技术中,容器既是隔离的命名空间,也是资源容器,它能有效的将单个操作系统管理的资源划分成隔离的组,从而更好的在隔离的组之间平衡有冲突的资源需求。容器在进程级别隔离并使用宿主机的内核,而不需要虚拟化整个操作系统。
容器云是现在云计算中比较流行的一种虚拟化手段,弹性资源调度和分配是容器云最主要的特点。但是,现有的不具有网络认知能力的容器云资源调度策略会导致整个容器云平台性能的下降,这是因为整个容器云平台的资源调度分配没有考虑到网络状态信息。
而当加入具有认知能力的认知网络时,有些创建好的容器可能会在下一次用户申请相同任务的情况下使用,在这种情况下就不必再重新创建新的容器,直接调用已经创建好的容器进行资源调度,从而大大增加了的资源的利用率。
技术实现要素:
本发明要解决的技术问题是提供一种容器云资源调度方法,以解决现有技术所存在的容器云资源调度分配时没有考虑到网络状态信息,导致容器云平台性能的下降的问题。
为解决上述技术问题,本发明实施例提供一种容器云资源调度方法,包括:
获取用户提交的申请资源的服务请求;
对获取的所述服务请求进行分析,得到所述服务请求的任务中各子任务的资源请求;
通过认知环感知云数据中心当前的网络资源状态信息和容器负载状态信息,其中,所述认知环包括:观察、定向、决策和动作环节;
根据各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,生成资源调度方案,所述资源调度方案包括:为每个子任务分配容器;
根据生成的资源调度方案对各子任务进行资源调度。
进一步地,所述获取用户提交的申请资源的服务请求包括:
获取用户提交的申请资源的服务请求;
对获取的用户提交的申请资源的服务请求进行解析,得到用户的身份信息和用户所申请的资源信息。
进一步地,所述对获取的所述服务请求进行分析,得到所述服务请求的任务中各子任务的资源请求包括:
根据得到的用户的身份信息,对用户进行身份验证;
身份验证通过后,对得到的用户所申请的资源信息进行分析,得到所述服务请求的任务中各子任务的资源请求。
进一步地,在身份验证通过后,对得到的用户所申请的资源信息进行分析,得到所述服务请求的任务中各子任务的资源请求之后,所述方法还包括:
分析每个子任务的资源请求的相关参数,并结合云数据中心中可用资源总量判断是否可以完成用户提交的所述服务请求;
若能完成用户提交的所述服务请求,则执行根据各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,生成资源调度方案的步骤。
进一步地,所述根据各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,生成资源调度方案包括:
通过计算状态接口获取认知环感知到的当前的容器负载状态信息;
通过网络状态接口获取认知环感知到的当前的网络资源状态信息;
根据得到的各子任务的资源请求,并结合获取到的认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,生成资源调度方案。
进一步地,所述根据生成的资源调度方案对各子任务进行资源调度包括:
将生成的资源调度方案发送给基础设施管理组件,以便于所述基础设施管理组件根据接收到的资源调度方案,通过基于容器的虚拟化技术进行容器的创建、注销或者迁移;
将各子任务分发到相应容器上进行资源调度。
进一步地,所述通过基于容器的虚拟化技术进行容器的创建包括:
根据网络拓扑信息将需要进行大量数据交流的容器按需创建在多个物理资源上或创建在同一物理资源上,所述大量数据交流是指容器之间的通信量超过预设阈值。
进一步地,所述通过基于容器的虚拟化技术进行容器的创建包括:
将执行同一服务请求的容器创建在网络距离上最近的物理资源上或同一物理资源上。
进一步地,所述将各子任务分发到相应容器上进行资源调度包括:
当某子任务被分发到相应容器上后,判断当前容器所处理的业务量是否超过预设阈值;
若超过预设阈值,则创建一个新的容器或将所述子任务分配到其他待处理业务量较少的容器上进行资源调度。
进一步地,在根据生成的资源调度方案对各子任务进行资源调度之后,所述方法还包括:
当再次获取用户提交的申请资源的服务请求后,基于认知环自身所具有的学习方法判断当前的服务请求中是否有与上次相同的子任务进行资源请求分配资源;
若有,则将与上次相同的子任务分配给上次已创建容器。
本发明的上述技术方案的有益效果如下:
上述方案中,获取用户提交的申请资源的服务请求;对获取的所述服务请求进行分析,得到所述服务请求的任务中各子任务的资源请求;通过认知环感知云数据中心当前的网络资源状态信息和容器负载状态信息,其中,所述认知环包括:观察、定向、决策和动作环节;根据各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,生成资源调度方案,所述资源调度方案包括:为每个子任务分配容器;根据生成的资源调度方案对各子任务进行资源调度;这样,通过各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,为各子任务分配容器,根据为各子任务分配的容器对各子任务进行资源调度,实现容器的调度平衡,保证整个容器云平台上全局的网络流量均衡,不会形成区域性网络资源紧张的问题,从而提高容器云平台性能。
附图说明
图1为本发明实施例提供的容器云资源调度方法的流程示意图;
图2为本发明实施例提供的认知环的原理示意图;
图3为本发明实施例提供的容器云资源调度系统的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的容器云资源调度分配时没有考虑到网络状态信息,导致容器云平台性能的下降的问题,提供一种容器云资源调度方法。
如图1所示,本发明实施例提供的容器云资源调度方法,包括:
s101,获取用户提交的申请资源的服务请求;
s102,对获取的所述服务请求进行分析,得到所述服务请求的任务中各子任务的资源请求;
s103,通过认知环感知云数据中心当前的网络资源状态信息和容器负载状态信息,其中,所述认知环包括:观察、定向、决策和动作环节;
s104,根据各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,生成资源调度方案,所述资源调度方案包括:为每个子任务分配容器;
s105,根据生成的资源调度方案对各子任务进行资源调度。
本发明实施例所述的容器云资源调度方法,获取用户提交的申请资源的服务请求;对获取的所述服务请求进行分析,得到所述服务请求的任务中各子任务的资源请求;通过认知环感知云数据中心当前的网络资源状态信息和容器负载状态信息,其中,所述认知环包括:观察、定向、决策和动作环节;根据各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,生成资源调度方案,所述资源调度方案包括:为每个子任务分配容器;根据生成的资源调度方案对各子任务进行资源调度;这样,通过各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,为各子任务分配容器,根据为各子任务分配的容器对各子任务进行资源调度,实现容器的调度平衡,保证整个容器云平台上全局的网络流量均衡,不会形成区域性网络资源紧张的问题,从而提高容器云平台性能。
本实施例中,在容器云平台中,加入认知网络的认知环结构,将认知环功能整合到云计算资源调度中,辅助容器云资源的智能处理与分配。具体的,能够根据各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,为各子任务分配容器,从而达到资源管理的优化,提高资源的利用性和可行性,实现整个容器云平台的全网性能优化目标。
本实施例中,所述认知环的四大环节分别是观察(observe)、定向(orient)、决策(decide)和动作(act),通过认知环的四大环节能够从过去的决策中学习并将其应用于未来的决策中;所述认知环还可以包括:学习环节,学习的目的是为了防止产生的错误内容对未来的决策造成影响;所述认知环的最大特点就是有认知能力和学习能力,所述认知环将应用于认知网络环境中来应对过去决策和环境(所述环境可以包括但不限于:当前的网络资源状态信息和容器负载状态信息),如图2所示。
为了实现本实施例所述的容器云资源调度方法,还需一套容器云资源调度系统,如图3所示,所述容器云资源调度系统包括:云控制器、用户交互组件、认知环控制中心、决策中心、基础设施管理组件,每个组件都具有各自负责的功能,互相之间又进行通信,以保证资源调度管理过程顺利有序地进行。
本实施例中,认知环是认知环控制中心的核心组件,所述认知环控制中心用于收集、存储整个云数据中心当前的网络资源状态信息和容器负载状态信息。
本实施例中,所述云控制器,用于获取用户提交的申请资源的服务请求,对获取的用户提交的申请资源的服务请求进行解析,得到用户的身份信息和用户所申请的资源信息,将得到的用户的身份信息和用户所申请的资源信息发送给所述用户交互组件。
本实施例中,所述云控制器还可以做出处理服务等级协议和维护调度系统及用户相关的元数据。
在前述容器云资源调度方法的具体实施方式中,进一步地,
所述对获取的所述服务请求进行分析,得到所述服务请求的任务中各子任务的资源请求包括:
根据得到的用户的身份信息,对用户进行身份验证;
身份验证通过后,对得到的用户所申请的资源信息进行分析,得到所述服务请求的任务中各子任务的资源请求。
本实施例中,所述用户交互组件根据接收到的用户的身份信息对用户进行身份验证,身份验证通过后,对接收到的用户所申请的资源信息进行分析,得到所述服务请求的任务中各子任务的资源请求,并将得到的各子任务的资源请求发送至决策中心。
在前述容器云资源调度方法的具体实施方式中,进一步地,在身份验证通过后,对得到的用户所申请的资源信息进行分析,得到所述服务请求的任务中各子任务的资源请求之后,所述方法还包括:
分析每个子任务的资源请求的相关参数,并结合云数据中心中可用资源总量判断是否可以完成用户提交的所述服务请求;
若能完成用户提交的所述服务请求,则执行根据各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,生成资源调度方案的步骤。
本实施例中,所述相关参数包括:各子任务完成所需的时间,任务大小,以此来给每个子任务都设置一个优先级,然后根据所处就绪状态的优先级顺序进行任务执行。
本实施例中,决策中心接收到各子任务的资源请求后,会根据各子任务的资源请求及认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,生成资源调度方案,从而动态调节资源调度中的不均衡问题,具体的:
决策中心通过计算状态接口获取认知环感知到的当前的容器负载状态信息;
决策中心通过网络状态接口获取认知环感知到的当前的网络资源状态信息;
决策中心根据得到的各子任务的资源请求,并结合获取到的认知环感知到的云数据中心当前的网络资源状态信息和容器负载状态信息,生成资源调度方案。
在前述容器云资源调度方法的具体实施方式中,进一步地,所述根据生成的资源调度方案对各子任务进行资源调度包括:
将生成的资源调度方案发送给基础设施管理组件,以便于所述基础设施管理组件根据接收到的资源调度方案,通过基于容器的虚拟化技术进行容器的创建、注销或者迁移;
将各子任务分发到相应容器上进行资源调度。
本实施例中,所述基础设施管理组件负责对云数据中心的集群、物理资源(例如,物理机)、虚拟资源(例如:容器)以及虚拟镜像进行管理,包括物理资源的启动关闭、虚拟资源的创建删除、配置信息的修改等等。将决策中心生成的资源调度方案发送给基础设施管理组件,当所述基础设施管理组件接收到决策中心发出的资源调度方案时,通过基于容器的虚拟化技术进行容器的创建、注销或者迁移,最后将各子任务分发到相应容器上,由相应容器对相应的子任务进行资源调度。
在前述容器云资源调度方法的具体实施方式中,进一步地,所述通过基于容器的虚拟化技术进行容器的创建包括:
根据网络拓扑信息将需要进行大量数据交流的容器按需创建在多个物理资源上或创建在同一物理资源上,所述大量数据交流是指容器之间的通信量超过预设阈值。
本实施例中,根据网络拓扑信息把需要进行大量数据交流的容器按需创建在多个物理资源上或创建在同一物理资源上,从而大大减少了数据传输所需要经过的网络区域,降低了网络流量,缓解了网络拥堵的状况。
在前述容器云资源调度方法的具体实施方式中,进一步地,所述通过基于容器的虚拟化技术进行容器的创建包括:
将执行同一服务请求的容器创建在网络距离上最近的物理资源上或同一物理资源上。
本实施例中,将执行同一服务请求的容器创建在网络距离上最近的物理资源上或同一物理资源上,从而加快了容器之间的通讯和数据交流的速度,达到提高应用速度的目的。
在前述容器云资源调度方法的具体实施方式中,进一步地,所述将各子任务分发到相应容器上进行资源调度包括:
当某子任务被分发到相应容器上后,判断当前容器所处理的业务量是否超过预设阈值;
若超过预设阈值,则创建一个新的容器或将所述子任务分配到其他待处理业务量较少的容器上进行资源调度。
本实施例中,在各个物理资源中,容器的数量和容器的负载会随时间不断变化,当某子任务提交到某个容器上后,若当前容器所处理的业务量超过预设阈值,则创建一个新的容器或将所述子任务分配到其他待处理业务量较少的容器上进行资源调度。
在前述容器云资源调度方法的具体实施方式中,进一步地,所述认知环还包括:学习环节;
在根据生成的资源调度方案对各子任务进行资源调度之后,所述方法还包括:
当再次获取用户提交的申请资源的服务请求后,基于认知环自身所具有的学习方法判断当前的服务请求中是否有与上次相同的子任务进行资源请求分配资源;
若有,则将与上次相同的子任务分配给上次已创建容器。
本实施例中,当云控制器再次获取到申请资源的服务请求后,通过认知环自身所具有的学习方法判断当前的服务请求中是否有与上次相同的子任务进行资源请求分配资源,若有,则认知环控制中心通过网络状态接口告知决策中心,由决策中心直接将与上次相同的子任务分配给上次已经创建好容器,而不需要再通过基础设施管理组件创建新的容器,节省了容器资源,达到资源的优化管理。
本实施例提供的容器云资源调度方法,不仅适用于普通用户发起的申请资源的服务请求,同样适用于系统管理员发起的管理请求。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。