CN104683408A - OpenStack云计算管理平台建立虚拟机实例的方法和系统 - Google Patents
OpenStack云计算管理平台建立虚拟机实例的方法和系统 Download PDFInfo
- Publication number
- CN104683408A CN104683408A CN201310632684.2A CN201310632684A CN104683408A CN 104683408 A CN104683408 A CN 104683408A CN 201310632684 A CN201310632684 A CN 201310632684A CN 104683408 A CN104683408 A CN 104683408A
- Authority
- CN
- China
- Prior art keywords
- host
- virtual machine
- rem
- establishing
- machine instance
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000001914 filtration Methods 0.000 claims abstract description 31
- 238000004364 calculation method Methods 0.000 claims abstract description 24
- 238000005303 weighing Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明适用于云计算领域,提供了OpenStack云计算管理平台建立虚拟机实例的方法和系统,所述方法包括:接收客户端发送的建立虚拟机实例的请求信息;从数据库选择启动了建立虚拟机实例所述服务的主机,并将所述主机列为第一主机列表;根据所述用于建立虚拟机实例的主机的过滤条件对所述第一主机列表中的主机进行过滤,获取第二主机列表;根据所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表中的主机进行权重计算,获取第三主机列表;从所述第三主机列表中选择权重最高的主机。通过本发明,使得OpenStack云计算管理平台可以根据客户端的请求动态选择最优的计算节点来创建虚拟机实例。
Description
技术领域
本发明属于云计算领域,尤其涉及OpenStack云计算管理平台建立虚拟机实例的方法和系统。
背景技术
随着云计算技术的日益发展,多种云计算平台应运而生,而OpenStack作为一种云计算平台,为云计算基础设施服务提供解决方案,OpenStack以其全开源、易扩展的特点,赢得业界越来越多的关注。
现有技术OpenStack云计算管理平台为客户端选取目标主机的公式比较单一:只是比较主机剩余内存空间的大小,选取剩余内存空间最大的主机作为目标主机,这种单一的公式无法满足现在客户端越来越复杂的使用需求。
发明内容
本发明实施例的目的在于提供一种OpenStack云计算管理平台建立虚拟机实例的方法和系统,以解决现有技术目标主机选择公式单一、固定的问题。
第一方面,本发明实施例提供了一种OpenStack云计算管理平台建立虚拟机实例的方法,所述方法包括:
a、接收客户端发送的建立虚拟机实例的请求信息,所述请求信息包括:用于建立虚拟机实例的主机的过滤条件、用于计算适合建立虚拟机实例的主机权重的公式和建立虚拟机实例的数量;
b、从数据库选择启动了建立虚拟机所述服务的主机,并将所述主机列为第一主机列表;
c、根据所述用于建立虚拟机实例的主机的过滤条件对所述第一主机列表中的主机进行过滤,获取第二主机列表;
d、根据所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表中的主机进行权重计算,并根据计算得到的权重对所述主机进行排序,获取第三主机列表;
e、从所述第三主机列表中选择权重最高的主机,将所述权重最高的主机确定为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例。
第二方面,本发明实施例提供了一种OpenStack云计算管理平台建立虚拟机实例的系统,所述系统包括:
接收单元,用于接收客户端发送的建立虚拟机实例的请求信息,所述请求信息包括:用于建立虚拟机实例的主机的过滤条件、用于计算适合建立虚拟机实例的主机权重的公式和建立虚拟机实例的数量;
第一主机列表获取单元,用于在所述接收单元接收请求信息之后,从数据库选择启动了建立虚拟机所述服务的主机,并将所述主机列为第一主机列表;
第二主机列表获取单元,用于根据所述用于建立虚拟机实例的主机的过滤条件对所述第一主机列表获取单元获取的第一主机列表中的主机进行过滤,获取第二主机列表;
第三主机列表获取单元,用于根据所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表获取单元获取的第二主机列表中的主机进行权重计算,并根据计算得到的权重对所述主机进行排序,获取第三主机列表;
建立单元,用于从所述第三主机列表获取单元获取的第三主机列表中选择权重最高的主机,将所述权重最高的主机确定为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例。
本发明实施例,OpenStack云计算管理平台首先接收客户端发送的请求信息,根据请求信息中的过滤条件过滤主机,并根据请求信息中的权重公式为过滤后的主机进行称重,从称重后的主机中选择权重最高的主机为客户端建立虚拟机实例,本发明实施例实现了一种根据客户端的请求动态建立虚拟机实例的方法,使得OpenStack云计算管理平台可以根据客户端的请求动态选择最优的计算节点(即所述主机)来创建虚拟机实例,有效的提升OpenStack云计算管理平台的扩展性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的OpenStack云计算管理平台建立虚拟机实例方法的流程图;
图2为本发明提供的实施例一的步骤S103的具体流程图;
图3为本发明实施例提供的OpenStack云计算管理平台建立虚拟机实例系统的结构图;
图4为本发明提供的实施例三的第三主机列表生成单元304的具体结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例,OpenStack云计算管理平台首先接收客户端发送的请求信息,根据请求信息中的过滤条件过滤主机,并根据请求信息中的权重公式为过滤后的主机进行称重,并从称重后的主机中选择权重最高的主机为客户端建立虚拟机实例,实现了一种根据客户端的请求动态建立虚拟机实例的方法,使得OpenStack云计算管理平台可以根据客户端的请求动态选择最优的计算节点(即所述主机)来创建虚拟机实例,有效的提升OpenStack云计算管理平台的扩展性。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
如图1所示为本发明实施例提供的OpenStack云计算管理平台建立虚拟机实例方法的流程图,所述方法包括以下步骤:
在步骤S101中,接收客户端发送的建立虚拟机实例的请求信息,所述请求信息包括:用于建立虚拟机实例的主机的过滤条件、用于计算适合建立虚拟机实例的主机权重的公式和建立虚拟机实例的数量。
在本发明实施例中,OpenStack云计算管理平台中的控制都是通过Nova模块来实现的。OpenStack云计算管理平台首先接收与其连接的客户端发送的请求信息,在该请求信息中包括后续步骤中建立虚拟机实例需要使用的信息,包括但不限于:
1、用于建立虚拟机实例的主机的过滤条件。在OpenStack云计算管理平台连接有多个主机,由于客户端对建立虚拟机实例的需求不同,所以需要对OpenStack云计算平台所管理的主机进行过滤操作,不同的过滤条件在OpenStack云计算管理平台中已经保存,客户端请求信息中会指定所应用的具体过滤条件,以使OpenStack云计算管理平台根据指定的过滤条件为客户端选择合适的主机。具体过滤条件可以根据用户的具体需要来实现,在此不做限定。
2、用于计算适合建立虚拟机实例的主机的权重的公式。在请求信息中还包括计算权重的公式,客户端根据虚拟机实例的使用需要,可以设置不同的权重公式,如:需要计算速度快的虚拟机实例,则权重公式可以为“主机的可用CPU数量多的权重大”。
3、建立虚拟机实例的数量。
在步骤S102中,从数据库选择启动了建立虚拟机实例所述服务的主机,并将所述主机列为第一主机列表。
在本发明实施例中,OpenStack云计算平台从数据库中选择启动了建立虚拟机实例所需服务的主机,并将开启了虚拟机实例功能的主机列为第一主机列表,如:开启了“建立虚拟机实例功能的主机为1、2、3、4、5,则第一主机列表为:host_list_tmp1=[1,2,3,4,5]。
在步骤S103中,根据所述用于建立虚拟机实例的主机的过滤条件对所述第一主机列表中的主机进行过滤,获取第二主机列表。
在本发明实施例中,OpenStack云计算管理平台在接收到客户端发送的请求消息之后,首先根据请求消息中的“用于建立虚拟机实例的主机的过滤条件”对所有的主机进行过滤处理,经过过滤的主机将记录为第二主机列表,如:过滤后的主机编号为1、3、5,则第二主机列表为:host_list_tmp2=[1,3,5]。
在步骤S104中,根据所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表中的主机进行权重计算,并根据计算得到的权重对所述主机进行排序,获取第三主机列表。
在本发明实施例中,OpenStack云计算管理平台在获取了第二主机列表之后,按照接收的权重公式对第二主机列表中的主机进行权重计算,权重计算后的主机再次进行排序,经过权重计算和排序后的主机会记录为第三主机列表,如:经过权重计算和排序后的主机编号的顺序为3、1、5,则第三主机列表为:host_list_tmp3=[3,1,5]。所述根据所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表中的主机进行权重计算的步骤,详见实施例二的描述,在此不作赘述。
在步骤S105中,从所述第三主机列表中选择权重最高的主机,将所述权重最高的主机确定为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例。
在本发明实施例中,OpenStack云计算管理平台在获取了第三主机列表之后,从第三主机列表中选择排名最靠前的主机(即权重最高)的主机,使用该主机作为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例,如上例所述:第三主机列表为host_list_tmp3=[3,1,5],则权重最高的为3号主机,则OpenStack云计算管理平台选择3号主机作为为客户端建立虚拟机实例的目标主机。
作为本发明的一个可选实施例,如果所述建立虚拟机实例的数量大于一个,在所述从所述第三主机列表中选择权重最高的主机,将所述权重最高的主机确定为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例的步骤之后,所述方法还包括:
重复步骤S104~S105,为所述客户端建立符合所述建立虚拟机实例数量的虚拟机实例。
在本发明实施例中,用户可以根据自己客户端的使用的需要,设置建立虚拟机实例的数量,因为OpenStack云计算管理平台一次只会建立一个虚拟机实例,所以OpenStack云计算管理平台会重复步骤S104~S105,直到选择出符合客户端请求数量的主机为客户端建立虚拟机实例。
作为本发明的另一个可选实施例,在所述从所述第三主机列表中选择权重最高的主机,将所述权重最高的主机确定为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例的步骤之后,所述方法还包括:
如果所述权重最高的主机包括多个,则随机从所述权重最高的主机中选择一个主机作为目标主机。
实施例二
如图2所示为本发明提供的实施例一的步骤S104的具体流程图,所述方法包括:
在步骤S201中,获取所述第二主机列表中的主机的信息,所述信息包括:可用中央处理器数量rem_cpu、可用内存大小rem_ram、可用磁盘空间rem_disk和可用IP段内IP地址数目rem_ip。
在本发明实施例中,OpenStack云计算管理平台首先获得第二主机列表中的主机的信息,该信息包括但不限于:可用CPU数量(记为:rem_cpu)、可用内存大小(记为:rem_ram)、可用磁盘空间(记为:rem_disk)和可用IP段内IP地址数目(记为:rem_ip)。
在步骤S202中,根据所述主机的信息和所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表中的主机进行权重计算,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,sin_cpu为建立一个虚拟机实例需要的CPU数量,sin_ram为建立一个虚拟机实例需要的内存大小,sin_disk为建立一个虚拟机实例需要的磁盘大小,a、b、c、d为预先设置的权重系数。
在本发明实施例中,OpenStack云计算管理平台在获取了主机的信息之后,结合获取的用于计算适合建立虚拟机实例的主机权重的公式对第二主机列表中的主机进行称重,所述用于计算适合建立虚拟机实例的主机权重的公式,包括:
1、当客户端全面考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(1×rem_cpu/sin_cpu+1×rem_ram/sin_ram+1×rem_disk/sin_disk+1×rem_ip)。
在本发明实施例中,由于客户端需要全面考虑主机的信息在建立虚拟机实例时起的作用,因此主机的4个信息在权重公式中的比例是相同的,因此上试中的a、b、c、d都为1。
2、当客户端有侧重点的考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,a、b、c、d根据用户设置的侧重点进行取值。
在本发明实施例中,由于客户端需要有侧重点的考虑主机的信息在建立虚拟机实例时起的作用,因此主机的4个信息在称重时的比例也不同,举例:假设用户侧重考虑主机的可用CPU在建立虚拟机实例中其的作用,则称重公式可以为weight=min(70%×rem_cpu/sin_cpu+10%×rem_ram/sin_ram+10%×rem_disk/sin_disk+10%×rem_ip)。
3、当客户端部分考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,a、b、c、d中包含1至3个0。
在本发明实施例中,由于客户端只需要考虑主机的部分信息在建立虚拟机实例时起的作用,因此主机的4个信息不用全部考虑,举例:假设客户端只考虑可用CPU的数量和可用磁盘空间的数量,则称重公式可以为weight=min(a×rem_cpu/sin_cpu+0×rem_ram/sin_ram+c×rem_disk/sin_disk+0×rem_ip)。
本发明实施例实现了一种根据客户端的请求动态建立虚拟机实例的方法,可以根据创建虚拟机实例请求类型的不同,动态的采用不同的权重系数,并应用不同的称重算法,选择最优的计算节点(即所述主机)来创建虚拟机实例,有效的提升OpenStack云计算管理平台的扩展性,具有较强的易用性和实用性。
实施例三
如图3所示为本发明实施例提供的OpenStack云计算管理平台建立虚拟机实例系统的结构图,所述系统包括:
接收单元301,用于接收客户端发送的建立虚拟机实例的请求信息,所述请求信息包括:用于建立虚拟机实例的主机的过滤条件、用于计算适合建立虚拟机实例的主机权重的公式和建立虚拟机实例的数量。
在本发明实施例中,OpenStack云计算管理平台中的控制都是通过Nova模块来实现的。OpenStack云计算管理平台首先接收与其连接的客户端发送的请求信息,在该请求信息中包括后续步骤中建立虚拟机实例需要使用的信息,包括但不限于:
1、用于建立虚拟机实例的主机的过滤条件。在OpenStack云计算管理平台连接有多个主机,由于客户端对建立虚拟机实例的需求不同,所以需要对OpenStack云计算平台所管理的主机进行过滤操作,不同的过滤条件在OpenStack云计算管理平台中已经保存,客户端请求信息中会指定所应用的具体过滤条件,以使OpenStack云计算管理平台根据指定的过滤条件为客户端选择合适的主机。具体过滤条件可以根据用户的具体需要来实现,在此不做限定。
2、用于计算适合建立虚拟机实例的主机的权重的公式。在请求信息中还包括根据具体情况指定所要应用的计算权重的公式,客户端根据虚拟机实例的使用需要,可以设置不同的权重公式,如:需要计算速度快的虚拟机实例,则权重公式可以为“主机的可用CPU数量多的权重大”。
3、建立虚拟机实例的数量。
第一主机列表获取单元302,用于在所述接收单元301接收请求信息之后,从数据库选择启动了建立虚拟机所述服务的主机,并将所述主机列为第一主机列表。
在本发明实施例中,第一主机列表获取单元302从数据库中选择启动了建立虚拟机实例所需服务的主机,并将开启了虚拟机实例功能的主机列为第一主机列表,如:开启了“建立虚拟机实例功能的主机为1、2、3、4、5,则第一主机列表为:host_list_tmp1=[1,2,3,4,5]。
第二主机列表获取单元303,用于根据所述用于建立虚拟机实例的主机的过滤条件对所述第一主机列表获取单元302获取的第一主机列表中的主机进行过滤,获取第二主机列表。
在本发明实施例中,OpenStack云计算管理平台在接收到客户端发送的请求消息之后,第二主机列表获取单元303首先根据请求消息中的“用于建立虚拟机实例的主机的过滤条件”对所有的主机进行过滤处理,经过过滤的主机将记录为第二主机列表,如:过滤后的主机编号为1、3、5,则第二主机列表为:host_list_tmp2=[1,3,5]。
第三主机列表获取单元304,用于根据所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表获取单元303获取的第二主机列表中的主机进行权重计算,并根据计算得到的权重对所述主机进行排序,获取第三主机列表。
在本发明实施例中,OpenStack云计算管理平台在获取了第二主机列表之后,第三主机列表获取单元303按照接收的权重公式对第二主机列表中的主机进行权重计算,权重计算后的主机再次进行排序,经过权重计算和排序后的主机会记录为第三主机列表,如:经过权重计算和排序后的主机编号的顺序为3、1、5,则第三主机列表为:host_list_tmp3=[3,1,5]。所述第三主机列表生成单元304的结构,详见实施例四的描述,在此不作赘述。
建立单元305,用于从所述第三主机列表获取单元304获取的第三主机列表中选择权重最高的主机,将所述权重最高的主机确定为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例。
在本发明实施例中,OpenStack云计算管理平台在获取了第三主机列表之后,建立单元305从第三主机列表中选择排名最靠前的主机(即权重最高)的主机,使用该主机作为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例,如上例所述:第三主机列表为host_list_tmp3=[3,1,5],则权重最高的为3号主机,则OpenStack云计算管理平台选择3号主机作为为客户端建立虚拟机实例的目标主机。
作为本发明的一个可选实施例,如果所述接收单元301接收的建立虚拟机实例的数量大于一个,则在所述建立单元305建立虚拟机实例之后,所述系统,还包括:
重复单元306,用于控制第三主机列表获取单元304和建立单元305进行重复运行,为所述客户端建立符合所述建立虚拟机实例数量的虚拟机实例。
在本发明实施例中,用户可以根据自己客户端的使用的需要,设置建立虚拟机实例的数量,因为OpenStack云计算管理平台一次只会建立一个虚拟机实例,所以重复单元306会控制第二主机列表获取单元304和建立单元305进行重复运行,直到选择出符合客户端请求的数量的主机为客户端建立虚拟机实例。
作为本发明的另一个可选实施例,在所述建立单元305为客户端建立虚拟机实例之后,所述系统还包括:
随机选择单元307,用于如果所述权重最高的主机包括多个,则随机从所述权重最高的主机中选择一个主机作为目标主机。
实施例四
如图4所示为本发明提供的实施例三的第三主机列表生成单元304的具体结构图,包括:
获取子单元401,用于获取所述第二主机列表中的主机的信息,所述信息包括:可用中央处理器数量rem_cpu、可用内存大小rem_ram、可用磁盘空间rem_disk和可用IP段内IP地址数目rem_ip。
在本发明实施例中,OpenStack云计算管理平台首先获得第二主机列表中的主机的信息,该信息包括但不限于:可用CPU数量(记为:rem_cpu)、可用内存大小(记为:rem_ram)、可用磁盘空间(记为:rem_disk)和可用IP段内IP地址数目(记为:rem_ip)。
称重子单元402,用于根据所述获取子单元401获取的主机的信息和所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表中的主机进行权重计算,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,sin_cpu为建立一个虚拟机实例需要的CPU数量,sin_ram为建立一个虚拟机实例需要的内存大小,sin_disk为建立一个虚拟机实例需要的磁盘大小,a、b、c、d为预先设置的权重系数。
在本发明实施例中,OpenStack云计算管理平台在获取了主机的信息之后,结合获取的用于计算适合建立虚拟机实例的主机权重的公式对第二主机列表中的主机进行称重。所述称重子单元402,包括:
全面计算子单元4021,用于当客户端全面考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(1×rem_cpu/sin_cpu+1×rem_ram/sin_ram+1×rem_disk/sin_disk+1×rem_ip)。
在本发明实施例中,由于客户端需要全面考虑主机的信息在建立虚拟机实例时起的作用,因此主机的4个信息在权重公式中的比例是相同的,因此上试中的a、b、c、d都为1。
侧重计算子单元4022,用于当客户端有侧重点的考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,a、b、c、d根据用户设置的侧重点进行取值。
在本发明实施例中,由于客户端需要有侧重点的考虑主机的信息在建立虚拟机实例时起的作用,因此主机的4个信息在称重时的比例也不同,举例:假设用户侧重考虑主机的可用CPU在建立虚拟机实例中其的作用,则称重公式可以为weight=min(70%×rem_cpu/sin_cpu+10%×rem_ram/sin_ram+10%×rem_disk/sin_disk+10%×rem_ip)。
部分计算子单元4023,用于当客户端部分考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,a、b、c、d中包含1至3个0。
在本发明实施例中,由于客户端只需要考虑主机的部分信息在建立虚拟机实例时起的作用,因此主机的4个信息不用全部考虑,举例:假设客户端只考虑可用CPU的数量和可用磁盘空间的数量,则称重公式可以为weight=min(a×rem_cpu/sin_cpu+0×rem_ram/sin_ram+c×rem_disk/sin_disk+0×rem_ip)。
本领域普通技术人员可以理解为上述实施例所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
本发明实施例实现了一种根据客户端的请求动态建立虚拟机实例的方法,可以根据创建虚拟机实例请求类型的不同,动态的采用不同的权重系数,并应用不同的称重算法,选择最优的计算节点(即所述主机)来创建虚拟机实例,有效的提升OpenStack云计算管理平台的扩展性,具有较强的易用性和实用性。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种OpenStack云计算管理平台建立虚拟机实例的方法,其特征在于,所述方法包括:
a、接收客户端发送的建立虚拟机实例的请求信息,所述请求信息包括:用于建立虚拟机实例的主机的过滤条件、用于计算适合建立虚拟机实例的主机权重的公式和建立虚拟机实例的数量;
b、从数据库选择启动了建立虚拟机实例所述服务的主机,并将所述主机列为第一主机列表;
c、根据所述用于建立虚拟机实例的主机的过滤条件对所述第一主机列表中的主机进行过滤,获取第二主机列表;
d、根据所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表中的主机进行权重计算,并根据计算得到的权重对所述主机进行排序,获取第三主机列表;
e、从所述第三主机列表中选择权重最高的主机,将所述权重最高的主机确定为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例。
2.如权利要求1所述的方法,其特征在于,如果所述建立虚拟机实例的数量大于一个,在所述从所述第三主机列表中选择权重最高的主机,将所述权重最高的主机确定为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例的步骤之后,所述方法还包括:
重复步骤d~e,为所述客户端建立符合所述建立虚拟机实例数量的虚拟机实例。
3.如权利要求1所述的方法,其特征在于,在所述从所述第三主机列表中选择权重最高的主机,将所述权重最高的主机确定为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例的步骤之后,所述方法还包括:
如果所述权重最高的主机包括多个,则随机从所述权重最高的主机中选择一个主机作为目标主机。
4.如权利要求1所述的方法,其特征在于,所述根据所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表中的主机进行权重计算,包括:
获取所述第二主机列表中的主机的信息,所述信息包括:可用中央处理器数量rem_cpu、可用内存大小rem_ram、可用磁盘空间rem_disk和可用IP段内IP地址数目rem_ip;
根据所述主机的信息和所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表中的主机进行权重计算,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,sin_cpu为建立一个虚拟机实例需要的CPU数量,sin_ram为建立一个虚拟机实例需要的内存大小,sin_disk为建立一个虚拟机实例需要的磁盘大小,a、b、c、d为预先设置的权重系数。
5.如权利要求4所述的方法,其特征在于,所述用于计算适合建立虚拟机实例的主机权重的公式,包括:
当客户端全面考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(1×rem_cpu/sin_cpu×+1×rem_ram/sin_ram+1×rem_disk/sin_disk+1×rem_ip);或者,
当客户端有侧重点的考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,a、b、c、d根据用户设置的侧重点进行取值;或者,
当客户端部分考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,a、b、c、d中包含1至3个0。
6.一种OpenStack云计算管理平台建立虚拟机实例的系统,其特征在于,所述系统包括:
接收单元,用于接收客户端发送的建立虚拟机实例的请求信息,所述请求信息包括:用于建立虚拟机实例的主机的过滤条件、用于计算适合建立虚拟机实例的主机权重的公式和建立虚拟机实例的数量;
第一主机列表获取单元,用于在所述接收单元接收请求信息之后,从数据库选择启动了建立虚拟机所述服务的主机,并将所述主机列为第一主机列表;
第二主机列表获取单元,用于根据所述用于建立虚拟机实例的主机的过滤条件对所述第一主机列表获取单元获取的第一主机列表中的主机进行过滤,获取第二主机列表;
第三主机列表获取单元,用于根据所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表获取单元获取的第二主机列表中的主机进行权重计算,并根据计算得到的权重对所述主机进行排序,获取第三主机列表;
建立单元,用于从所述第三主机列表获取单元获取的第三主机列表中选择权重最高的主机,将所述权重最高的主机确定为建立虚拟机实例的目标主机,并通过所述目标主机为客户端建立虚拟机实例。
7.如权利要求6所述的系统,其特征在于,如果所述接收单元接收的建立虚拟机实例的数量大于一个,则在所述建立单元建立虚拟机实例之后,所述系统,还包括:
重复单元,用于控制第三主机列表获取单元和建立单元进行重复运行,为所述客户端建立符合所述建立虚拟机实例数量的虚拟机实例。
8.如权利要求6所述的系统,其特征在于,在所述建立单元为客户端建立虚拟机实例之后,所述系统还包括:
随机选择单元,用于如果所述权重最高的主机包括多个,则随机从所述权重最高的主机中选择一个主机作为目标主机。
9.如权利要求6所述的系统,其特征在于,所述第三主机列表生成单元包括:
获取子单元,用于获取所述第二主机列表中的主机的信息,所述信息包括:可用中央处理器数量rem_cpu、可用内存大小rem_ram、可用磁盘空间rem_disk和可用IP段内IP地址数目rem_ip;
称重子单元,用于根据所述获取子单元获取的主机的信息和所述用于计算适合建立虚拟机实例的主机权重的公式对所述第二主机列表中的主机进行权重计算,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,sin_cpu为建立一个虚拟机实例需要的CPU数量,sin_ram为建立一个虚拟机实例需要的内存大小,sin_disk为建立一个虚拟机实例需要的磁盘大小,a、b、c、d为预先设置的权重系数。
10.如权利要求9所述的系统,其特征在于,所述称重子单元,包括:
全面计算子单元,用于当客户端全面考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(1×rem_cpu/sin_cpu+1×rem_ram/sin_ram+1×rem_disk/sin_disk+1×rem_ip);或者,
侧重计算子单元,用于当客户端有侧重点的考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,a、b、c、d根据用户设置的侧重点进行取值;或者,
部分计算子单元,用于当客户端部分考虑主机的信息在建立虚拟机实例时的作用时,所述公式为:weight=min(a×rem_cpu/sin_cpu+b×rem_ram/sin_ram+c×rem_disk/sin_disk+d×rem_ip),其中,a、b、c、d中包含1至3个0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310632684.2A CN104683408A (zh) | 2013-11-29 | 2013-11-29 | OpenStack云计算管理平台建立虚拟机实例的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310632684.2A CN104683408A (zh) | 2013-11-29 | 2013-11-29 | OpenStack云计算管理平台建立虚拟机实例的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104683408A true CN104683408A (zh) | 2015-06-03 |
Family
ID=53317994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310632684.2A Pending CN104683408A (zh) | 2013-11-29 | 2013-11-29 | OpenStack云计算管理平台建立虚拟机实例的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104683408A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105553741A (zh) * | 2015-12-28 | 2016-05-04 | 江苏省电力公司信息通信分公司 | 一种基于云计算的应用系统自动化部署方法 |
CN105867946A (zh) * | 2016-04-21 | 2016-08-17 | 深圳先进技术研究院 | 一种快速布置OpenStack虚拟桌面的方法及装置 |
CN106021370A (zh) * | 2016-05-11 | 2016-10-12 | 智者四海(北京)技术有限公司 | 内存数据库实例的管理方法及装置 |
CN107547595A (zh) * | 2016-06-27 | 2018-01-05 | 腾讯科技(深圳)有限公司 | 云资源调度系统、方法及装置 |
CN107861794A (zh) * | 2017-11-13 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种在云计算系统中建立虚拟机的方法和装置 |
CN108228348A (zh) * | 2017-12-25 | 2018-06-29 | 顺丰科技有限公司 | 虚拟机资源分配调度方法、装置、存储介质及设备 |
CN108614727A (zh) * | 2018-03-23 | 2018-10-02 | 华为技术有限公司 | 一种虚拟机创建方法及装置 |
CN109002342A (zh) * | 2017-06-07 | 2018-12-14 | 中国科学院信息工程研究所 | 一种基于OpenStack的计算资源定向调度方法及系统 |
CN109144663A (zh) * | 2018-07-13 | 2019-01-04 | 新华三云计算技术有限公司 | 主机优选方法及装置 |
CN109597673A (zh) * | 2017-09-30 | 2019-04-09 | 华为技术有限公司 | 创建虚拟机的方法及调度设备 |
CN111143025A (zh) * | 2019-11-22 | 2020-05-12 | 中国船舶工业系统工程研究院 | 一种针对实时虚拟机实例管理的方法 |
CN116405391A (zh) * | 2023-04-10 | 2023-07-07 | 长扬科技(北京)股份有限公司 | 基于OpenStack的虚拟机节点筛选方法、系统和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070271560A1 (en) * | 2006-05-18 | 2007-11-22 | Microsoft Corporation | Deploying virtual machine to host based on workload characterizations |
CN102446115A (zh) * | 2012-01-09 | 2012-05-09 | 浙江大学 | 一种虚拟机的动态部署方法 |
CN102929701A (zh) * | 2012-10-17 | 2013-02-13 | 北京搜狐新媒体信息技术有限公司 | 一种批量虚拟机的调度方法及装置 |
CN103248659A (zh) * | 2012-02-13 | 2013-08-14 | 北京华胜天成科技股份有限公司 | 一种云计算资源调度方法和系统 |
-
2013
- 2013-11-29 CN CN201310632684.2A patent/CN104683408A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070271560A1 (en) * | 2006-05-18 | 2007-11-22 | Microsoft Corporation | Deploying virtual machine to host based on workload characterizations |
CN102446115A (zh) * | 2012-01-09 | 2012-05-09 | 浙江大学 | 一种虚拟机的动态部署方法 |
CN103248659A (zh) * | 2012-02-13 | 2013-08-14 | 北京华胜天成科技股份有限公司 | 一种云计算资源调度方法和系统 |
CN102929701A (zh) * | 2012-10-17 | 2013-02-13 | 北京搜狐新媒体信息技术有限公司 | 一种批量虚拟机的调度方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105553741A (zh) * | 2015-12-28 | 2016-05-04 | 江苏省电力公司信息通信分公司 | 一种基于云计算的应用系统自动化部署方法 |
CN105867946A (zh) * | 2016-04-21 | 2016-08-17 | 深圳先进技术研究院 | 一种快速布置OpenStack虚拟桌面的方法及装置 |
CN106021370A (zh) * | 2016-05-11 | 2016-10-12 | 智者四海(北京)技术有限公司 | 内存数据库实例的管理方法及装置 |
CN107547595A (zh) * | 2016-06-27 | 2018-01-05 | 腾讯科技(深圳)有限公司 | 云资源调度系统、方法及装置 |
CN109002342A (zh) * | 2017-06-07 | 2018-12-14 | 中国科学院信息工程研究所 | 一种基于OpenStack的计算资源定向调度方法及系统 |
CN109597673A (zh) * | 2017-09-30 | 2019-04-09 | 华为技术有限公司 | 创建虚拟机的方法及调度设备 |
CN107861794A (zh) * | 2017-11-13 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种在云计算系统中建立虚拟机的方法和装置 |
CN108228348A (zh) * | 2017-12-25 | 2018-06-29 | 顺丰科技有限公司 | 虚拟机资源分配调度方法、装置、存储介质及设备 |
CN108614727A (zh) * | 2018-03-23 | 2018-10-02 | 华为技术有限公司 | 一种虚拟机创建方法及装置 |
CN108614727B (zh) * | 2018-03-23 | 2021-04-20 | 华为技术有限公司 | 一种虚拟机创建方法及装置 |
CN109144663A (zh) * | 2018-07-13 | 2019-01-04 | 新华三云计算技术有限公司 | 主机优选方法及装置 |
CN111143025A (zh) * | 2019-11-22 | 2020-05-12 | 中国船舶工业系统工程研究院 | 一种针对实时虚拟机实例管理的方法 |
CN111143025B (zh) * | 2019-11-22 | 2023-03-24 | 中国船舶工业系统工程研究院 | 一种针对实时虚拟机实例管理的方法 |
CN116405391A (zh) * | 2023-04-10 | 2023-07-07 | 长扬科技(北京)股份有限公司 | 基于OpenStack的虚拟机节点筛选方法、系统和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104683408A (zh) | OpenStack云计算管理平台建立虚拟机实例的方法和系统 | |
US10079879B2 (en) | Weighted rendezvous hashing | |
CN111522641B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
RU2607621C2 (ru) | Способ, система и машиночитаемый носитель данных для группирования в социальных сетях | |
CN110417879A (zh) | 一种消息处理方法、装置、设备及存储介质 | |
US20090187588A1 (en) | Distributed indexing of file content | |
US20140055347A1 (en) | Imaging task pipeline acceleration | |
US9852050B2 (en) | Selecting computing resources | |
CN107800814B (zh) | 虚拟机部署方法及装置 | |
CN115766876B (zh) | 资源调度方法、装置、设备及存储介质 | |
JP2019121334A (ja) | データストレージとダイナミックマイグレーション方法及びデータストレージとダイナミックマイグレーション装置 | |
CN106657399B (zh) | 基于中间件实现的后台服务器选择方法及装置 | |
CN113037791A (zh) | 运维方法和系统、计算机可读存储介质 | |
CN110866052A (zh) | 一种数据分析方法、装置及设备 | |
CN110505276B (zh) | 对象匹配方法、装置及系统、电子设备及存储介质 | |
CN108989474B (zh) | 分布式节点的服务角色分配方法及分布式数据传输系统 | |
CN114615276B (zh) | 一种内容分发网络域名调度方法及装置 | |
CN115633041A (zh) | 多集群的管理方法、装置、电子设备和可读存储介质 | |
CN115952003A (zh) | 一种集群服务器负载均衡的方法、装置、设备及存储介质 | |
WO2010027664A2 (en) | Shared hosting using host name affinity | |
US20170270165A1 (en) | Data streaming broadcasts in massively parallel processing databases | |
CN112019630A (zh) | 一种负载均衡方法以及装置 | |
WO2013138982A1 (zh) | 一种并行处理方法和装置 | |
Chhadva et al. | Architecture for mobile cloud computing using five level offloading (armflora) | |
CN107707383B (zh) | 放通处理方法、装置、第一网元及第二网元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150603 |
|
RJ01 | Rejection of invention patent application after publication |