异构云操作系统的集成与统一调度框架及调度方法

本发明公开的异构云操作系统的集成与统一调度框架,包括有资源收集模块、用户认证模块、统一调度模块及请求转化模块,资源收集模块、用户认证模块分别通过导线与统一调度模块连接,统一调度模块通过导线与请求转化模块连接,资源收集模块、请求转化模块分别通过导线与Elaster云操作系统、CloudStack操作系统及OpenStack操作系统连接。本发明还公开了上述集成与统一调度框架的调度方法。本发明的异构云操作系统的集成与统一调度框架解决了异构云操作之间资源无法共享,实现了对异构云操作系统的统一调度。

技术领域

[0001] 本发明属于云计算中心操作系统技术领域,涉及一种异构云操作系统的集成与统一调度框架,本发明还涉及上述集成与统一调度框架的调度方法。

背景技术

[0002] 云计算中心操作系统,又称为云计算操作系统或云OS,是云计算后台数据中心的整体协调运营系统,它是指构架于服务器、存储、网络等基础硬件资源和单机操作系统、中间件、数据库等基础软件管理海量的基础硬件、软资源之上的云平台综合管理系统。

[0003]现有的云操作系统主要有 Eucalyptus、OpenStack、CloudStack、Elaster,但是每种云操作系统只能管理各自数据中心的异构资源,若能将这些异构云操作管理的资源进行统一合并从而进行统一的调度,能有效的整合不同云操作系统管理的数据中心的资源,便于资源的统一分配与调度。

发明内容

[0004] 本发明的目的在于提供一种异构云操作系统的集成与统一调度框架,解决了异构云操作之间资源无法共享,实现了对异构云操作系统的统一调度。

[0005] 本发明的另一目的在于提供上述集成与统一调度框架的调度方法。

[0006] 本发明所采用的第一种技术方案是,异构云操作系统的集成与统一调度框架,包括有资源收集模块、用户认证模块、统一调度模块及请求转化模块,资源收集模块、用户认证模块分别通过导线与统一调度模块连接,统一调度模块通过导线与请求转化模块连接,资源收集模块、请求转化模块分别通过导线与Elaster云操作系统、CloudStack操作系统及OpenStack操作系统连接。

[0007] 本发明第一种技术方案的特点还在于,资源收集模块用于定时同步收集异构资源池内资源的容量信息,异构云操作系统到达时间间隔,所述资源收集模块(I)用于查询每个资源池中的CPU、内存、主存储磁盘、IP个数、虚拟局域网个数;每种容量都包含总容量、已使用容量、预占容量三种信息资源容量,并将每种资源信息持久化到异构资源池的数据库中,管理员能设置同步的时间间隔。

[0009] 异构云操作系统到达时间间隔设置为10分钟。

[0010] 用户认证模块根据范围由小到大依次为用户、账户、域、部门,根据用户类型来进行用户权限的控制和资源隔离,用户认证模块通过对不同的云操作系统的用户进行统一认证,对云操作系统资源进行安全访问并隔离。

[0011] 请求转化模块用于将异构云操作系统的请求与响应进行同构。

[0012] 统一调度模块用于将异构云操作系统中的资源进行统一分配与调度,统一调度模块内设置有多种分配策略。

[0013] 统一调度模块内采用的分配策略为disperse策略、concentrated策略、firstfit策略、round-robin策略或random策略中的一种。

[0014] disperse策略为在对用户指定的集群、主机列表进行排序选择集群或主机时,根据现有虚拟机在各个集群和主机上的分布,将本次分配创建的虚拟机分配到各个集群或集群中的各个主机中,使集群或主机上的虚拟机数量平均;

[0015] concentrated分配与调度策略为:在对用户指定的集群、主机列表进行排序选择集群或主机时,根据现有虚拟机在各个集群和主机上的分布,将本次分配创建的虚拟机分配到虚拟机数量最多的集群或主机中;

[0016] firstfit分配与调度策略为:在对用户指定的集群、主机列表进行排序选择集群或主机时,直接用符合要求的集群或主机的第一个作为虚拟机分配或部署的目标;

[0017] random分配与调度策略为:在对用户指定的集群、主机列表进行排序选择集群或主机时,对列表进行乱序化,然后用列表中的第一个集群或主机作为虚拟机分配或部署的目标;

[0018] roundrobin分配与调度策略为:在对用户指定的集群、主机列表进行排序选择集群或主机时,对上次部署使用过的集群或主机进行剔除,对剩下的集群或主机进行firstfit分配或random分配。

[0019] 本发明所采用的第二种技术方案是,异构云操作系统的集成与统一调度框架的调度方法,具体按照以下步骤实施:

[0020] 步骤1、管理员或用户发送请求,由用户认证模块去检查用户的合法性与操作权限;

[0021] 步骤2、经步骤完成认证后,由资源收集模块定时去获取区域、机架、集群、主机的资源使用情况,再由统一调度模块判断步骤I中用户输入是否指定区域、机架、集群或主机信息,具体判定方法如下:

[0022] 若用户指定虚拟机的资源级别位置和部署算法,则在指定的位置创建;

[0023] 若用户没有指定具体位置,使用默认部署算法找出符合条件的主机;

[0024] 若指定了部署算法,按照用户的算法查找到符合条件的主机,否则返回创建失败的消息;

[0025] 步骤3、由统一调度模块判断主机的资源是否充足:

[0026] 若主机列表中第一个主机资源不充足,依次选择列表中的主机;

[0027] 若没有主机符合条件,返回创建失败的消息。

[0028] 步骤4、在步骤3中选择的主机上创建虚拟机。

[0029] 本发明的有益效果在于:

[0030] 1.本发明的异构云操作系统的集成与统一调度框架通过异构云操作系统的集成,实现了异构云操作系统下异构资源共享。

[0031] 2.本发明的异构云操作系统的集成与统一调度框架针对不同的云操作系统,通过异构云(MultiCloud)可以申请使用虚拟机创建策略,灵活的在异构操作系统中使用资源,满足了不同用户的多样化需求。

具体实施方式

[0036] 下面结合附图和具体实施方式对本发明进行详细说明。

[0037] 本发明的异构云操作系统的集成与统一调度框架,其结构如图1所示,包括有资源收集模块1、用户认证模块2、统一调度模块3及请求转化模块4,资源收集模块1、用户认证模块2分别通过导线与统一调度模块3连接,统一调度模块3通过导线与请求转化模块4连接,资源收集模块1、请求转化模块4分别通过导线与Elaster云操作系统5、CloudStack操作系统6及OpenStack操作系统7连接。

[0038] 不同的云操作系统中资源的层次划分是不同的,但大体分成数据中心、集群和主机。

[0039] 对不同的云操作系统中资源的位置进行统一划分,即对Elaster云操作系统5、CloudStack操作系统6及OpenStack操作系统7中资源的位置进行统一划分,如图2所示,划分为:区域、机架、集群、主机四个级别。

[0040] 区域是异构云系统内的最大的组织单位,机架是异构云操作系统内的第二大组织单位;一个区域对应于一个数据中心,允许数据中心内有多个区域;一个区域内包括有一个或多个机架;一个机架内包括有一个或多个集群以及一个或多个存储服务器,同一个机架上的主机处于同一子网内;一种机架由一个或多个集群和一个或多个存储服务器组成;集群用来存放主机,精确的说,集群是一个XenServer服务器池、一组KVM的服务器、一组OVM的主机、或者是在vCenter预先设置的VMware集群,在同一集群中的主机具有相同的硬件主机,运行相同的程序,处于同一个子网内,访问同一个共享主存储器;主机是一台计算机,主机提供运行来自虚拟机的计算资源,每个主机上都安装有虚拟机管理器,虚拟机管理器用于管理虚拟机。

[0041] 在云计算中,资源与存储资源是分开的,本发明的集成框架中,存储资源的装置分为:主存储器与二级辅助存储器;其中,主存储器与集群相关,它存储在集群中的主机上运行的所有虚拟机的磁盘卷信息;二级辅助存储器与区域相关,它用于存储模板、ISO镜像、磁盘卷、快照。

[0042] 在本发明的异构云操作系统的集成与统一调度框架中,由于要对异构云操作系统下的资源进行统一的整合,因此要收集每种云操作系统下不同类型、不同级别的资源总量及剩余量,资源收集模块I主要用于定时同步收集异构资源池的资源的容量信息,当系统到达时间间隔时(时间间隔用户可以设置,默认为10分钟),资源收集模块会查询每个资源池中的CPU、内存、主存储磁盘、IP个数、虚拟局域网(VLAN)个数,每种容量都包含总容量、已使用容量、预占容量三种信息资源容量,并将每种资源信息持久化到异构资源池的数据库中,管理员能设置同步的时间间隔,时间间隔设置为10分钟。

[0043] 容量数据收集功能周期性地通过调用底层云操作系统的应用程序编程接口(API),将资源池的容量信息收集、转换、存储到本地数据库中,尽量保证容量数据的准确性。支持的容量类型有CPU、内存、主存储磁盘、IP个数、虚拟局域网(Vlan)。每种容量都包含总容量、已使用容量、预占容量三种信息。注意,IP指虚拟机使用的私有IP,Vlan指创建区域时指定的Vlan范围。

[0044] 对不同的资源级别,有不同的资源容量收集和转换配置,参照下表:

[0045] 表1-1资源级别与容量类型对照表

[0047] 注:" V "表示收集资源;" X "表示不收集资源

[0048] 同时,容量收集功能对外提供数据查询接口,供容量查询、虚拟机调度等其他功能使用,提高容量查询效率。

[0049] 用户认证模块2,根据范围由小到大依次为用户、账户、域、部门,根据用户类型来进行用户权限的控制和资源隔离,用户认证模块2通过对不同的云操作系统的用户进行统一认证,对云操作系统资源进行安全访问并有效的隔离;

[0050] 其中,用户(user):在同一个帐户的用户并不是彼此隔离的,但他们是从其他帐户的用户隔离,他们只是每一个帐户的用户,同一个用户不能属于多个帐户;

[0051] 账户(account):—个帐户通常是服务提供者或在一个大的组织中的一个部门,一个帐户可以存在多个用户。

[0052] 域(domain):账号按域分组,域通常包含多个帐户,有逻辑之间的相互关系和一组授权管理员一些授权域。

[0053] 部门(project):若要各帐户之间共享资源的,可以使用部门,一个部门中的资源可以被部门中的帐户共享。

[0054] 异构云操作系统的资源管理方式、请求方式、响应方式各不相同,请求转化模块3用于将异构云操作系统的请求与响应进行同构;不同的异构资源池与相同资源池的不同版本之间的资源收集方式、存储方式、资源API调用方式等都可能是不同的,本发明针对异构资源池与相同资源池的不同版本采用的是不同的驱动,驱动用来屏蔽异构资源池与相同资源池的不同版本之间的差异

[0055] 统一调度模块4:将异构云操作系统中的资源进行统一分配与调度,统一调度模块4内集成有调度模块虚拟机分配策略,调度模块虚拟机分配策略能够指定调用者在部署虚拟机时选择集群、主机时所使用的策略,它能在配置文件中指定,在为虚拟机自动指定位置或在不指定策略的情况下,调用虚拟机分配建议API时生效;在调用虚拟机分配建议API时,通过参数临时指定本次调用时使用的分配策略;

[0056] 其中,使用的分配策略为disperse分配策略、concentrated分配策略、firstfit分配策略、round-robin分配策略、random分配策略中的一种,具体解释如下:

[0057] disperse分配策略:在对用户指定的集群、主机列表进行排序选择集群或主机时,根据现有虚拟机在各个集群和主机上的分布,将本次分配创建的虚拟机分配到各个集群或集群中的各个主机上,使集群或主机上的虚拟机数量平均。

[0058] concentrated分配策略:在对用户指定的集群、主机列表进行排序选择集群或主机时,根据现有虚拟机在各个集群和主机上的分布,将本次分配创建的虚拟机分配到虚拟机数量最多的集群或主机中;

[0059] firstfit分配策略:在对用户指定的集群、主机列表进行排序选择集群或主机时,直接用用户指定的集群或主机的第一个作为虚拟机分配或部署的目标;

[0060] random分配策略:在对用户指定的集群、主机列表进行排序选择集群或主机时,对列表进行乱序化,然后用列表中的第一个集群或主机作为虚拟机分配或部署的目标;

[0061] roundrobin分配策略:在对用户指定的集群、主机列表进行排序选择集群或主机时,对上次部署使用过的集群或主机进行剔除(在保证有部署位置前提下),对剩下的集群或主机进行firstfit分配或random分配。

[0062] 本发明的异构云操作系统的集成与统一调度框架的使用方法如下,如图3所示,具体按照以下步骤实施:

[0063] 步骤1、管理员或用户发送请求,由用户认证模块2去检查用户的合法性与操作权限;

[0064] 步骤2、经步骤I完成认证后,由资源收集模块I定时去获取区域、机架、集群、主机的资源使用情况,再由统一调度模块3判断步骤I中用户输入是否指定区域、机架、集群或主机信息,具体判定方法如下:

[0065] 若用户指定虚拟机的资源级别位置和部署算法,则在指定的位置创建;

[0066] 若用户没有指定具体位置,使用默认部署算法找出符合条件的主机;

[0067] 若指定了部署算法,按照用户的算法查找到符合条件的主机,否则返回创建失败的消息;

[0068] 步骤3、由统一调度模块4判断主机的资源是否充足:

[0069] 若主机列表中第一个主机资源不充足,依次选择列表中的主机;

[0070] 若没有主机符合条件,返回创建失败的消息。

[0071] 步骤4、在步骤3中选择的主机上创建虚拟机。

SRC=https://www.google.com.hk/patents/CN103593229A

异构云操作系统的集成与统一调度框架及调度方法

时间: 2024-08-05 18:22:08

异构云操作系统的集成与统一调度框架及调度方法的相关文章

山寨版Quartz.Net任务统一调度框架

TaskScheduler 在日常工作中,大家都会经常遇到Win服务,在我工作的这些年中一直在使用Quartz.Net这个任务统一调度框架,也非常好用,配置简单,但是如果多个项目组的多个服务部署到一台服务器时还是不尽如人意. 这段时间很忙,也一直未更新博客了,赶上今天下班早,就研究了一下,弄了个简单版基于Timer的山寨Quartz,当然了只是实现任务调度,闲话少说直接入主题吧 一.技术准备 其实都是普通的微软技术,一想到这方我们第一想到的可能就是反射,本文用了MEF 二.框架搭建 第一我们建立

Quartz.Net任务统一调度框架

山寨版Quartz.Net任务统一调度框架 TaskScheduler 在日常工作中,大家都会经常遇到Win服务,在我工作的这些年中一直在使用Quartz.Net这个任务统一调度框架,也非常好用,配置简单,但是如果多个项目组的多个服务部署到一台服务器时还是不尽如人意. 这段时间很忙,也一直未更新博客了,赶上今天下班早,就研究了一下,弄了个简单版基于Timer的山寨Quartz,当然了只是实现任务调度,闲话少说直接入主题吧 一.技术准备 其实都是普通的微软技术,一想到这方我们第一想到的可能就是反射

Spring2.0集成Quartz1.5.2调度框架

Quartz是个开放源码项目,提供了丰富的作业调度集.希望您在阅读完本文并看过代码演示后,可以把Quartz的基本特性应用到任何Java™应用程序中.现代的Web应用程序框架在范围和复杂性方面都有所发展,应用程序的每个底层组件也必须相应地发展.作业调度是现代系统中对Java应用程序的一般要求,而且也是对Java开发人员一贯的要求.虽然目前的调度技术比起原始的数据库触发器标志和独立的调度器线程来说,已经发展了许多,但是作业调度仍然不是个小问题.对这个问题最合适的解决方案就是来自OpenSympho

中国企业云操作系统的出路会是OpenStack吗?

(上图为EasyStack创始人陈喜伦) 在过去十年里,IT行业一直在酝酿一场大变革,这就是云计算.在过去五年里,企业级IT在酝酿一场大变革,这就是以OpenStack为代表的开源IT.在过去的两年中,一批OpenStack创业公司在中国市场酝酿着企业IT生态的大变革,这就是以OpenStack为核心的企业云操作系统. 进入2016年以来,包括联想.神州数码.思科.新华三等老牌IT厂商以及IT生态链领导企业纷纷喊出新IT新生态的方向,要打造以企业云为基础的新企业级IT生态链.基于开源OpenSt

分布式开源调度框架TBSchedule原理与应用

主要内容: 第一部分 TBSchedule基本概念及原理 1. 概念介绍 2. 工作原理 3. 源代码分析 4. 与其它开源调度框架对照 第二部分 TBSchedule分布式调度演示样例 1. TBSchedule源代码下载 2. 引入源代码Demo开发演示样例 3. 控制台配置任务调度 4. selectTasks方法參数说明 5. 创建调度策略參数说明 6. 创建任务參数说明 第一部分 TBSchedule基本概念及原理 1. 概念介绍 TBSchedule是一个支持分布式的调度框架.能让一

详解应对平台高并发的分布式调度框架TBSchedule

tbschedule是一款非常优秀的高性能分布式调度框架,非常高兴能分享给大家.这篇文章是我结合多年tbschedule使用经验和研读三遍源码的基础上完成的,期间和阿里空玄有过不少技术交流,非常感谢空玄给予的大力支持.我写这篇文章的目的一是出于对tbschedule的一种热爱,二是现在是一个资源共享.技术共享的时代,希望把它展现给大家(送人玫瑰,手留余香),能给大家的工作带来帮助. 一.tbschedule初识 时下互联网和电商领域,各个平台都存在大数据.高并发的特点,对数据处理的要求越来越高,

java并行调度框架封装及示例

参考资料:  阿里巴巴开源项目 CobarClient  源码实现. 分享作者:闫建忠 分享时间:2014年5月7日 --------------------------------------------------------------------------------------- 并行调度封装类设计: BXexample.java package org.hdht.business.ordermanager.quartzjob; import java.util.ArrayList;

业调度框架_Quartz

什么是Quartz Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制.Quartz允许开发人员根据时间间隔来调度作业.它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联.简单地创建一个org.quarz.Job接口的Java类,Job接口包含唯一的方法:     public void execute(JobExecutionContext context) throws JobExecutionException

Quartz.net 开源job调度框架

Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联. 整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业. 官方学习文档:http://www.quartz-scheduler.net/documentation/index.html 使用实例介绍:ht