本发明公开的异构云操作系统的集成与统一调度框架,包括有资源收集模块、用户认证模块、统一调度模块及请求转化模块,资源收集模块、用户认证模块分别通过导线与统一调度模块连接,统一调度模块通过导线与请求转化模块连接,资源收集模块、请求转化模块分别通过导线与 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 中选择的主机上创建虚拟机。