CN108574719B - 一种云主机创建方法及装置 - Google Patents

一种云主机创建方法及装置 Download PDF

Info

Publication number
CN108574719B
CN108574719B CN201710256808.XA CN201710256808A CN108574719B CN 108574719 B CN108574719 B CN 108574719B CN 201710256808 A CN201710256808 A CN 201710256808A CN 108574719 B CN108574719 B CN 108574719B
Authority
CN
China
Prior art keywords
physical machine
tag
target
user
cloud host
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
Application number
CN201710256808.XA
Other languages
English (en)
Other versions
CN108574719A (zh
Inventor
申航
孙晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201710256808.XA priority Critical patent/CN108574719B/zh
Publication of CN108574719A publication Critical patent/CN108574719A/zh
Application granted granted Critical
Publication of CN108574719B publication Critical patent/CN108574719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供了一种云主机创建方法及装置,该方法包括:接收针对目标云主机的创建请求;判断创建请求中是否携带第一用户标签,第一用户标签用于标识用户为有独占物理机需求的用户,且该用户独占的物理机用该第一用户标签标识;若创建请求中携带第一用户标签,则判断是否存在用第一用户标签标识的至少一台第一物理机;若存在,将第一物理机确定为目标物理机,若不存在,则选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机;根据目标云主机的创建请求,在目标物理机上创建目标云主机。应用本发明实施例可以实现在用户的专属物理机中自动创建云主机,减少出错。

Description

一种云主机创建方法及装置
技术领域
本发明涉及云计算技术领域,特别涉及一种云主机创建方法及装置。
背景技术
在云计算技术中,云主机是通过虚拟化技术在一台物理机器上模拟出的多个类似独立主机的部分,它们共享一个物理机器的硬件资源,其中,物理机器也可称为宿主机。随着虚拟化技术的普及和商业化,越来越多的用户需要在宿主机上创建云主机来提高宿主机的利用率。
实际应用中,不少用户有独占物理机作为自己的专属物理机的需求,即,用户希望在自己的专属物理机中只创建自己的云主机、而不要创建其它用户的云主机,非用户的专属物理机可以理解为公共调度区的普通物理机。对于这种需求,目前的做法是将专属物理机与公共调度区的物理机隔离。后台收到用户创建云主机的请求后,如果该用户有独占物理机的需求,则人工调度该用户所独占的物理机来创建云主机;如果该用户没有独占物理机的需求,则该请求发送至调度器进行调度。
也就是说,现有技术中调度器只能调度公共调度区的物理机、不能调度专属物理机,因此在拥有专属物理机的用户有创建云主机的需求时,只由人工指定在特定的专属物理机中创建,然而这种方式过于繁琐且易出错。
发明内容
本发明实施例的目的在于提供一种云主机创建方法及装置,以实现在用户的专属物理机中自动创建云主机,减少出错。具体技术方案如下:
为达到上述目的,本发明实施例公开了一种云主机创建方法,所述方法包括:
接收针对目标云主机的创建请求;
判断所述创建请求中是否携带第一用户标签,所述第一用户标签用于标识所述用户为有独占物理机需求的用户,且该用户独占的物理机用该第一用户标签标识;
若所述创建请求中携带所述第一用户标签,则判断是否存在用所述第一用户标签标识的至少一台第一物理机;
若存在用所述第一用户标签标识的至少一台第一物理机,则将所述至少一台第一物理机确定为目标物理机;
若不存在用所述第一用户标签标识的至少一台第一物理机,则选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用所述第一用户标签标识该目标物理机;
根据所述目标云主机的创建请求,在所述目标物理机上创建所述目标云主机。
为达到上述目的,本发明实施例还公开了一种云主机创建装置,所述装置包括:
接收模块,用于接收针对目标云主机的创建请求;
第一判断模块,用于判断所述创建请求中是否携带第一用户标签,所述第一用户标签用于标识所述用户为有独占物理机需求的用户,且该用户独占的物理机用该第一用户标签标识;若携带,则触发第二判断模块;
所述第二判断模块,用于判断是否存在用所述第一用户标签标识的至少一台第一物理机;若存在,则触发第一确定模块;若不存在,则触发第二确定模块;
所述第一确定模块,用于将所述至少一台第一物理机确定为目标物理机;触发创建模块;
所述第二确定模块,用于选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用所述第一用户标签标识该目标物理机;触发所述创建模块;
所述创建模块,用于根据所述目标云主机的创建请求,在所述目标物理机上创建所述目标云主机。
本发明实施例提供的云主机创建方法及装置,在针对目标云主机的创建请求中携带第一用户标签时,表示该用户为有独占物理机需求的用户,如果存在用第一用户标签标识的第一物理机,则将该第一物理机确定为目标物理机,并在该目标物理机上创建目标云主机,如果不存在用第一用户标签标识的第一物理机,则选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机后,再在该目标物理机上创建目标云主机。可见,本发明实施例提供的方案对于有独占物理机需求的用户的创建请求,不需要人工调度即可实现在用户的专属物理机中自动创建云主机,减少了出错。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种云主机创建方法的流程示意图;
图2为本发明实施例提供的另一种云主机创建方法的流程示意图;
图3为本发明实施例提供的再一种云主机创建方法的流程示意图;
图4为本发明实施例提供的物理机使用标签进行分组的示意图;
图5为本发明实施例提供的一个具体实施例中物理机的用户标签动态附注的流程示意图;
图6为图5所示具体实施例中物理机的用户标签动态解附注的流程示意图;
图7为图5所示具体实施例中物理机的用户标签分离逻辑的流程示意图;
图8为本发明实施例提供的另一个具体实施例中物理机的标签动态附注的流程示意图;
图9为图8所示具体实施例中物理机的标签动态解附注的流程示意图;
图10为本发明实施例提供的一种云主机创建装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决现有技术问题,本发明实施例提供了一种云主机创建方法及装置。下面首先对本发明实施例所提供的一种云主机创建方法进行详细说明。
需要说明的是,本发明实施例提供的方案的执行主体可以为调度器,调度器用于将云主机创建任务调度至物理机,以使物理机完成云主机的创建。
图1为本发明实施例提供的一种云主机创建方法的流程示意图,该方法包括:
S101,接收针对目标云主机的创建请求。
创建请求中可以携带所要创建的目标云主机的数量、目标云主机的类型、创建目标云主机的用户信息等,当然,创建请求中还可以携带其它信息,本实施例对此不做限定。
S102,判断创建请求中是否携带第一用户标签。
若创建请求中携带第一用户标签,则执行S103。
第一用户标签用于标识用户为有独占物理机需求的用户,且该用户独占的物理机用该第一用户标签标识。
例如,用户名为woniu的用户是有独占物理机需求的用户,该用户对应的用户标签可以为:user_woniu,被用户标签user_woniu所标识的物理机可以理解为被用户woniu独占的物理机。则当接收到的云主机创建请求中携带有用户标签user_woniu时,表示该创建请求所要创建的云主机必须在创建在标识有用户标签user_woniu的物理机中。
标签可以理解为用关键词的形式对物理机进行标记,以实现对物理机的分类。实际应用中,物理机被标签标识的情况可以用数据表进行管理。例如,当一物理机未被某一用户独占时,数据表未记录该物理机对应的用户标签,当该物理机被某一用户独占时,则根据该用户的信息,在数据表中记录该物理机对应的用户标签。如表1所示的数据表,物理机PM_1所在行对应的“用户标签”列标记有用户标签user_1,表示该物理机被用户1所独占,而物理机PM_3所在行对应的“用户标签”列未标记用户标签,表示该物理机不被任一用户独占。当判断是否存在用用户标签user_1标识的物理机时,通过查询数据表可知,物理机标识为PM_1的物理机满足要求。数据表可以存储在调度器中,调度器在选择出未创建云主机且未被用户标签标识的空物理机作为目标物理机之后,将目标物理机对应的用户标签user_1和存储到数据表中,也就是用用户标签user_1来标识目标物理机。
表1
物理机标识 用户标签
PM_1 user_1
PM_2 user_2
PM_3
需要说明的是,当物理机被一个用户标签标识后,在该用户标签被删除之前,该物理机不能再被其他的用户标签所标识,但是如果该用户标签被删除后,该物理机就可以被其它的用户标签所标识,也就是说,一个物理机不能同时被多个用户标签所标识。
被用户标签标识的物理机可以理解为专属物理机,没有被用户标签标识的物理机可以理解为普通物理机。可以理解的,专属物理机属于专属区,而普通物理机属于公共调度区,专属物理机与普通物理机的隔离,不需要通过人为划分区域等物理隔离手段,而是通过标识用户标签达到自动隔离,这种隔离方式极大的减少了人为介入,不需要人工进行调度,从而减轻了技术人员的工作量。
可以理解的,并不是所有的用户都有独占物理机的需求,对于那些没有独占物理机需求的普通用户,他们所要创建的云主机必须创建在没有用户标签标识的物理机中,即创建在公共调度区的普通物理机中。
具体的,对于普通用户创建云主机的创建请求,调度器可以针对创建请求中的每个云主机,创建对应的云主机创建任务,再根据每个云主机所需的资源和每个普通物理机的资源情况,将云主机创建任务调度至一台或多台普通物理机完成云主机的创建。
进一步的,如果普通用户创建云主机的创建请求中还携带有创建云主机的物理机的CPU类型时,则还需要从普通物理机中选择满足CPU类型要求的物理机来创建云主机。例如,如果创建请求中携带创建云主机的物理机的CPU类型为2680v4,那么调度器将调度云主机创建任务至一台或多台CPU类型为2680v4的普通物理机上。
S103,判断是否存在用第一用户标签标识的至少一台第一物理机。
若存在用第一用户标签标识的至少一台第一物理机,则执行S104,若不存在用第一用户标签标识的至少一台第一物理机,则执行S105。
S104,将该至少一台第一物理机确定为目标物理机;再执行S106。
S105,选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机;再执行S106。
S106,根据目标云主机的创建请求,在目标物理机上创建目标云主机。
可以理解的,如果当前存在用第一用户标签标识的至少一台第一物理机,则可以直接将该第一物理机作为目标物理机,并在该目标物理机上创建目标云主机,如果当前不存在用第一用户标签标识的第一物理机,则可以先从普通物理机中选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机,再在所确定的目标物理机上创建目标云主机。
需要说明的是,上述未创建云主机的空物理机仅表示当前该物理机中没有云主机,并不限定该物理机是否曾经创建过云主机,该物理机可以为从未创建过云主机的物理机,也可以为曾创建过普通用户的云主机的物理机,还可以为曾被用户标签标识过、且当前未被用户标签标识的物理机。
具体的,上述根据目标云主机的创建请求,在目标物理机上创建目标云主机的步骤,可以包括:
针对创建请求中的每个目标云主机,创建对应的云主机创建任务;
根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
可以理解的,一个创建请求可能需要创建多个目标云主机,每一个目标云主机对应一个云主机创建任务。这种情况下,由于物理机的资源限制,如磁盘剩余容量、内存等资源,可能一个目标物理机的资源不能满足多个目标云主机的需求,因此这多个目标云主机需要创建在一台或多台目标物理机中,根据每个目标云主机所需的资源和每个目标物理机的资源情况,将云主机创建任务调度至一台或多台目标物理机以完成所有目标云主机的创建。
进一步的,如果创建请求中还携带有创建目标云主机的物理机的CPU类型时,则还需要从目标物理机中选择满足CPU类型要求的物理机来创建目标云主机。例如,如果创建请求中携带创建目标云主机的物理机的CPU类型为2680v4,那么调度器将调度云主机创建任务至一台或多台选择CPU类型为2680v4的目标物理机上。
具体的,上述根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤,可以包括:
根据各个目标物理机的资源情况判断是否能够完成各个云主机创建任务;
如果是,则执行将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤;
如果否,则选择第二预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机,再执行将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤。
例如,当前存在5台目标物理机,一个创建请求需要创建10个目标云主机,如果这5台目标物理机的资源可以完成这10个目标云主机的创建任务,则直接将这10个云主机创建任务调度至这5台目标物理机中的一台或多台以完成目标云主机的创建。
另一种情况,如果这5台目标物理机的资源不足以完成这10个目标云主机的创建任务,则需要先从普通物理机中选择1台未创建云主机的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机,再将这10个云主机创建任务调度至这6台目标物理机中的一台或多台以完成目标云主机的创建。
进一步的,如果这6台目标物理机的资源仍不足以完成这10个目标云主机的创建任务,则需要再次从普通物理机中选择1台未创建云主机的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机,直到所得到的目标物理机的资源可以完成这10个目标云主机的创建任务,进而将各个云主机创建任务调度至所得到的的目标物理机中。
实际应用中,上述第二预设数量与上述第一预设数量的值,可以相同也可以不同,本实施例对此不做限定。
在一种实现方式中,在判断出不存在未创建云主机且未被用户标签标识的空物理机的情况下,还可以输出不存在未创建云主机且未被用户标签标识的空物理机的提示消息。
可以理解的,不存在未创建云主机且未被用户标签标识的空物理机,也就是公共调度区中普通物理机的数量不足,因此输出提示消息可以提醒技术人员公共调度区的资源不足,以便于技术人员进行资源调整或者补充。
在一种实现方式中,为便于对专属物理机和普通物理机的状态管理,还可以从物理机是否被用户标签标识、物理机是否存在云主机两个方面对物理机的状态进行区分。
具体的,该云主机创建方法还可以包括:
根据当前时刻物理机是否被用户标签标识以及是否存在云主机确定各个物理机的状态:
若物理机存在云主机且被用户标签标识,则该物理机为第一状态;
若物理机不存在云主机且用户标签未被删除的时间未达到预设时间,则该物理机为第二状态;
若物理机未创建过云主机且未被用户标签标识,则该物理机为第三状态;
若物理机不存在云主机且用户标签未被删除的时间达到预设时间,则删除用户标签,并将该物理机确定为第三状态。
需要说明的是,为便于记录各个物理机的状态,可以将上述三种状态分别对应一个状态值alloc_stat,例如,第一状态对应的状态值alloc_stat为1,表示物理机处于使用状态,第二状态对应的状态值alloc_stat为2,表示物理机处于锁定状态,第三状态对应的状态值alloc_stat为0,表示物理机处于初始化状态。实际应用中,调度器可以记录并更新各个物理机的状态,当物理机的状态发生变化时,将该物理机的状态值更新为变化后的状态对应的状态值。
举例而言,一开始,当物理机A中没有云主机且未被用户标签标识时,该物理机A处于第三状态;之后,如果该物理机A被选择作为专属物理机并被用户标签标识,则该物理机A处于第一状态,此时,调度器将该物理机A的状态值由0置为1,并且在调度器检测到该物理机A中不存在云主机之前,该物理机A的状态值一直为1;然后,如果检测到该物理机A中不存在云主机了,调度器会将该物理机A的状态值由1置为2,该物理机A处于第二状态,此时物理机A中不存在云主机且用户标签还未被删除,并且调度器在将物理机A的状态值由1置为2的时刻开始计时,达到预设时间后,调度器再次检测该物理机A中是否存在云主机,如果存在云主机,则将该物理机A的状态值由2置为1,表示该物理机A可以继续作为专属物理机,如果不存在云主机,则删除该物理机A的用户标签并将该物理机的状态值由2置为0,表示该物理机A由专属物理机转变为普通物理机,从专属区回到公共调度区。
可见,当专属区的专属物理机不足时,通过用户标签标识的方式,将公共调度区的普通物理机转变为专属物理机,当专属物理机中没有云主机时,将专属物理机上的用户标签删除,使其作为普通物理机再次回到公共调度区。这种基于标签的物理机资源动态管理方式,不仅满足了用户独占物理机的需求,同时也实现了专属区与公共调度区的物理机的资源共享。
需要说明的是,在专属物理机中所有云主机都被删除后,物理机从第一状态到第二状态,第二状态是一个中间过渡阶段,也叫做标签预分离状态,这时物理机处于锁定状态,调度器不能调度这台专属物理机,即在第二状态时调度器不会将云主机创建任务调度到这台专属物理机上。
本领域技术人员可以理解的是,如果调度器检测到一台专属物理机中没有云主机时就立刻将该专属物理机的用户标签删除,这样的话很可能导致出错,这是由于云主机创建请求的高并发性,短时间内可能会发生调度器调度了其它云主机创建任务到这台专属物理机上的情况,因此设置这个第二状态可以避免这种问题。
在调度器记录和更新物理机的状态的情况下,上述判断是否存在用第一用户标签标识的至少一台第一物理机的步骤,可以包括:
获得用第一用户标签标识的物理机,确定为候选第一物理机;
将候选第一物理机中处于第一状态的物理机,确定为第一物理机;
判断是否存在至少一台第一物理机;
上述选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机的步骤,可以包括:
选择第一预设数量台处于第三状态的物理机确定为目标物理机。
可以理解的,由于第一状态和第二状态的物理机都处于被用户标签标识的状态,因此需要先判断各个候选第一物理机的状态,如果是第一状态,则该候选第一物理机可以确定为第一物理机,如果是第二状态,由于第二状态的物理机处于锁定状态,不能被调度器所调度,因此第二状态的候选第一物理机不能被确定为第一物理机。
由以上可见,本实施例提供的云主机创建方法,在针对目标云主机的创建请求中携带第一用户标签时,表示该用户为有独占物理机需求的用户,如果存在用第一用户标签标识的第一物理机,则将该第一物理机确定为目标物理机,并在该目标物理机上创建目标云主机,如果不存在用第一用户标签标识的第一物理机,则选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机后,再在该目标物理机上创建目标云主机。可见,本实施例提供的方案对于有独占物理机需求的用户的创建请求,不需要人工调度即可实现在用户的专属物理机中自动创建云主机,减少了出错。
图2为本发明实施例提供的另一种云主机创建方法的流程示意图,在图1所示实施例的基础上,该创建请求中还可以携带第一虚拟比标签,其中,第一虚拟比标签用于确定创建目标云主机的物理机的目标虚拟比,且具有该目标虚拟比的物理机用该第一虚拟比标签标识;
相应的,上述S102判断创建请求中是否携带第一用户标签的步骤,可以为:
S102a,判断创建请求中是否携带第一用户标签和第一虚拟比标签;
上述S103判断是否存在用第一用户标签标识的至少一台第一物理机的步骤,可以为:
S103a,判断是否存在同时用第一用户标签和第一虚拟比标签标识的至少一台第一物理机,其中,第一物理机中云主机的数量小于目标虚拟比;
上述S105选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机的步骤,可以为:
S105a,选择第一预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用第一用户标签和第一虚拟比标签标识该目标物理机。
实际应用中,有独占物理机需求的用户在创建云主机时还有指定物理机的虚拟比的要求,即希望云主机创建在虚拟比小于等于某个指定值的物理机上,虚拟比可以理解为预先设定的某一物理机中最多可创建云主机的数量。如果一用户请求创建一台云主机,并且希望把这台云主机创建在特定的物理机上,特定的物理机是指这台物理机中最多可创建的云主机的数量不超过某一特定值,这一特定值可以称之为虚拟比。被指定了虚拟比的物理机中最多能创建该虚拟比所对应的数量个云主机。如果一物理机被指定了虚拟比,可以用虚拟比标签来标识该物理机,例如,一物理机被指定的虚拟比为3,则该物理机的虚拟比标签可以为:ratio_3。被虚拟比标签ratio_3所标识的物理机可以理解为该物理机中最多能创建3个云主机。
实际应用中,物理机被虚拟比标签标识的情况可以用数据表进行管理。当一物理机未被指定虚拟比时,数据表未记录该物理机对应的虚拟比标签,当该物理机被指定某一虚拟比时,则根据所指定的虚拟比更新数据表中该物理机对应的虚拟比标签。如表2所示的数据表,物理机PM_1所在行对应的“虚拟比标签”列标记有虚拟比标签ratio_3,表示该物理机被虚拟比标签ratio_3标识,而物理机PM_2所在行对应的“虚拟比标签”列未标记虚拟比标签,表示该物理机未被虚拟比标签标识。物理机PM_1所在行对应的“用户标签”列和“虚拟比标签”列均标记有标签,表示该物理机同时被用户标签user_1和虚拟比标签ratio_3标识。
当判断是否存在同时用户标签user_1和虚拟比标签ratio_3标识的物理机时,通过查询数据表可知,物理机标识为PM_1的物理机满足条件。数据表可以存储在调度器中,调度器在选择出未创建云主机且未被用户标签和虚拟比标签标识的空物理机作为目标物理机之后,将该目标物理机对应的第一用户标签和第一虚拟比标签存储到数据表中,也就是用第一用户标签和第一虚拟比标签来标识该目标物理机。
表2
物理机标识 用户标签 虚拟比标签
PM_1 user_1 ratio_3
PM_2 user_2
PM_3 ratio_4
需要说明的是,当物理机被一个虚拟比标签标识后,在该虚拟比标签被删除之前,该物理机不能再被其他的虚拟比标签所标识,但是如果该虚拟比标签被删除后,该物理机就可以被其它的虚拟比标签所标识,也就是说,一个物理机不能同时被多个虚拟比标签所标识。
同时被用户标签和虚拟比标签标识的物理机可以理解为用户专属区内的指定虚拟比的物理机,没有被用户标签和虚拟比标签标识的物理机可以理解为普通物理机。可以理解的,被用户独占的且指定虚拟比的物理机属于该用户的专属区内,而普通物理机属于公共调度区,可见,专属区内指定虚拟比的物理机与普通物理机的隔离,不需要通过人为划分区域等物理隔离手段,而是通过标识虚拟比标签达到自然隔离,这种隔离方式极大的减少了人为介入,不需要人工进行调度,从而减轻了技术人员的工作量。
可以理解的,如果用第一虚拟比标签标识的物理机中当前已经创建了该第一虚拟比所对应的数量个云主机,则该物理机不能再创建其它云主机。因此,如果当前存在同时用第一用户标签和第一虚拟比标签标识、且云主机的数量小于目标虚拟比的第一物理机,则可以直接将该第一物理机作为目标物理机,并在该目标物理机上创建目标云主机;如果当前不存在同时用第一用户标签和第一虚拟比标签标识的第一物理机,或者存在同时被第一用户标签和第一虚拟比标签标识的物理机但是该物理机中云主机的数量等于目标虚拟比,则可以先从普通物理机中选择第一预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用第一用户标签和第一虚拟比标签标识该目标物理机,再在所确定的目标物理机上创建目标云主机。
需要说明的是,上述未创建云主机的空物理机仅表示当前该物理机中没有云主机,并不限定该物理机是否曾经创建过云主机,该物理机可以为从未创建过云主机的物理机,也可以为曾创建过普通用户的云主机的物理机,还可以为曾被用户标签或虚拟比标签标识过、但当前未被用户标签或虚拟比标签标识的物理机。
具体的,S106根据目标云主机的创建请求,在目标物理机上创建目标云主机的步骤,可以包括:
针对创建请求中的每个目标云主机,创建对应的云主机创建任务;
根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
可以理解的,一个创建请求可能需要创建多个目标云主机,每一个目标云主机对应一个云主机创建任务。这种情况下,由于物理机的资源限制,如磁盘剩余容量、内存等资源,可能一个目标物理机的资源不能满足多个目标云主机的需求,因此这多个目标云主机需要创建在一台或多台目标物理机中,根据每个目标云主机所需的资源和每个目标物理机的资源情况,将云主机创建任务调度至一台或多台目标物理机以完成所有目标云主机的创建。
具体的,上述根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤,可以包括:
根据各个目标物理机的资源情况判断是否能够完成各个云主机创建任务;
如果是,则执行将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤;
如果否,则选择第二预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用第一用户标签和第一虚拟比标签标识该目标物理机,再执行将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤。
例如,当前存在5台目标物理机,一个创建请求需要创建10个目标云主机,如果这5台目标物理机的资源可以完成这10个目标云主机的创建任务,则直接将这10个云主机创建任务调度至这5台目标物理机中的一台或多台以完成目标云主机的创建。
另一种情况,如果这5台目标物理机的资源不足以完成这10个目标云主机的创建任务,则需要先从普通物理机中选择1台未创建云主机的空物理机确定为目标物理机,并用第一用户标签和第一虚拟比标签标识该目标物理机,再将这10个云主机创建任务调度至这6台目标物理机中的一台或多台以完成目标云主机的创建。
进一步的,如果这6台目标物理机的资源仍不足以完成这10个目标云主机的创建任务,则需要再次从普通物理机中选择1台未创建云主机的空物理机确定为目标物理机,并用第一用户标签和第一虚拟比标签标识该目标物理机,直到所得到的目标物理机的资源可以完成这10个目标云主机的创建任务,进而将各个云主机创建任务调度至所得到的的目标物理机中。
实际应用中,上述第二预设数量与上述第一预设数量的值,可以相同也可以不同,本实施例对此不做限定。
在一种实现方式中,在判断出不存在未创建云主机且未被用户标签和虚拟比标签标识标识的空物理机的情况下,还可以输出不存在未创建云主机且未被用户标签和虚拟比标签标识的空物理机的提示消息。可以理解的,不存在未创建云主机且未被用户标签和虚拟比标签标识的空物理机,也就是公共调度区中普通物理机的数量不足,因此输出提示消息可以提醒技术人员公共调度区的资源不足,以便于技术人员进行资源调整或者补充。
在一种实现方式中,为便于对专属区内指定虚拟比的物理机和普通物理机的状态管理,还可以从物理机是否被用户标签和虚拟比标签标识、物理机是否存在云主机两个方面对物理机的状态进行区分。
具体的,该云主机创建方法还可以包括:
根据当前时刻物理机是否被用户标签和虚拟比标签标识以及是否存在云主机确定各个物理机的状态:
若该物理机存在云主机且被用户标签和虚拟比标签标识,则该物理机为第一状态;
若该物理机不存在云主机且用户标签和虚拟比标签未被删除的时间未达到预设时间,则该物理机为第二状态;
若该物理机未创建过云主机且未被用户标签和虚拟比标签标识,则该物理机为第三状态;
若该物理机不存在云主机且用户标签和虚拟比标签未被删除的时间达到预设时间,则删除用户标签和虚拟比标签,并将该物理机确定为第三状态。
需要说明的是,为便于记录各个物理机的状态,可以将上述三种状态分别对应一个状态值alloc_stat,例如,第一状态对应的状态值alloc_stat为1,表示物理机处于使用状态,第二状态对应的状态值alloc_stat为2,表示物理机处于锁定状态,第三状态对应的状态值alloc_stat为0,表示物理机处于初始化状态。实际应用中,调度器可以记录并更新各个物理机的状态,当物理机的状态发生变化时,将该物理机的状态值更新为变化后的状态对应的状态值。
举例而言,一开始,当物理机A中没有云主机且未被用户标签和虚拟比标签标识时,该物理机A处于第三状态;之后,如果该物理机A被选择作为目标物理机并被用户标签和虚拟比标签标识,则该物理机A处于第一状态,此时,调度器将该物理机A的状态值由0置为1,并且在调度器检测到该物理机A中不存在云主机之前,该物理机A的状态值一直为1;然后,如果检测到该物理机A中不存在云主机了,调度器会将该物理机A的状态值由1置为2,该物理机A处于第二状态,此时物理机A中不存在云主机且用户标签和虚拟比标签还未被删除,并且调度器在将物理机A的状态值由1置为2的时刻开始计时,达到预设时间后,调度器再次检测该物理机A中是否存在云主机,如果存在云主机,则将该物理机A的状态值由2置为1,表示该物理机A可以继续作为专属区内指定虚拟比的物理机,如果不存在云主机,则删除该物理机A的用户标签和虚拟比标签并将该物理机的状态值由2置为0,表示该物理机A由专属区内指定虚拟比的物理机转变为普通物理机,从专属区回到公共调度区。
可见,当专属区中某一类型的专属物理机不足时,通过用户标签和虚拟比标签标识的方式,将公共调度区的普通物理机转变为专属区内指定虚拟比的物理机;当专属内指定虚拟比的物理机中没有云主机时,将该物理机上的用户标签和虚拟比标签删除,使其作为普通物理机再次回到公共调度区。这种基于标签的物理机资源动态管理方式,不仅满足了用户独占物理机的需求,同时也实现了专属区与公共调度区之间的物理机的资源共享。
需要说明的是,如果专属区内某一指定虚拟比的物理机中最后一个云主机被删除,则该物理机从第一状态转变为第二状态,第二状态是一个中间过渡阶段,也叫做标签预分离状态,这时该物理机处于锁定状态,调度器不能调度该物理机,即在第二状态时调度器不会将云主机创建任务调度到该物理机上。
本领域技术人员可以理解的是,如果调度器检测到专属区内一台指定虚拟比的物理机中没有云主机时就立刻将该物理机的用户标签和虚拟比标签删除,这样的话很可能导致出错,这是由于云主机创建请求的高并发性,短时间内可能会发生调度器调度了其它云主机创建任务到该物理机上的情况,因此设置这个第二状态可以避免这种问题。
在调度器记录和更新物理机的状态的情况下,上述判断是否存在同时用第一用户标签和第一虚拟比标签标识的第一物理机,其中,第一物理机中云主机的数量小于所述标虚拟比的步骤,可以包括:
获得同时用第一用户标签和第一虚拟比标签标识的物理机,确定为候选第一物理机;
将候选第一物理机中处于第一状态的物理机,确定为第一物理机,其中,第一物理机中云主机的数量小于目标虚拟比;
判断是否存在至少一台第一物理机;
上述选择第一预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机的步骤,可以包括:
选择第一预设数量台处于第三状态的物理机确定为目标物理机。
可以理解的,由于第一状态和第二状态的物理机都处于被用户标签和虚拟比标签标识的状态,因此需要先判断各个候选第一物理机的状态,如果是第一状态,则该候选第一物理机可以确定为第一物理机,如果是第二状态,由于第二状态的物理机处于锁定状态,不能被调度器所调度,因此第二状态的候选第一物理机不能被确定为第一物理机。
由以上可见,本发明实施例提供的方案中,在针对目标云主机的创建请求中携带第一用户标签和第一虚拟比标签时,表示该用户为有独占物理机需求的用户,且该用户希望将目标云主机创建指定虚拟比的物理机上,如果存在同时用第一用户标签和第一虚拟比标签标识的第一物理机,则将该第一物理机确定为目标物理机,并在该目标物理机上创建目标云主机,如果不存在,则选择第一预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用第一用户标签和第一虚拟比标签标识该目标物理机后,再在该目标物理机上创建目标云主机。可见,本发明实施例提供的方案对于同时有独占物理机和指定虚拟比需求的用户的创建请求,不需要人工调度即可实现在用户专属区内指定虚拟比的物理机上自动创建云主机,减少了出错。
图3为本发明实施例提供的再一种云主机创建方法的流程示意图,在图1所示实施例的基础上,该创建请求中还可以携带第一需求标签,第一需求标签用于标识该用户对创建目标云主机的物理机的要求;
相应的,上述S102判断创建请求中是否携带第一用户标签的步骤,可以为:
S102b,判断创建请求中是否携带第一用户标签和第一需求标签;
上述S103判断是否存在用第一用户标签标识的至少一台第一物理机的步骤,可以为:
S103b,判断是否存在同时用第一用户标签和第一需求标签标识的至少一台第一物理机;
上述S105选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机的步骤,可以为:
S105b,选择第一预设数量台未创建云主机且未被用户标签和需求标签标识的空物理机确定为目标物理机,并用第一用户标签和第一需求标签标识该目标物理机。
实际应用中,有独占物理机需求的用户还希望将云主机创建在专属物理机中满足特定要求的物理机上,其中,满足特定需求的物理机还可以用需求标签标识。实际应用中,被用户标签标识的专属物理机还可以被多种不同类型的需求标签标识。
例如,专属用户woniu希望在特定CPU类型的专属物理机中创建云主机,此时,创建请求中还可以携带用于标识创建云主机的物理机的CPU类型的需求标签,当携带第一需求标签为CPU类型标签phy_cpu_2680v4时,表明该创建请求所要创建的云主机必须在创建在CPU类型为2680v4的专属物理机中,因此CPU类型为2680v4的专属物理机可以同时用用户标签user_woniu和CPU类型标签phy_cpu_2680v4进行标识。
或者,当专属用户woniu的业务类型较多时,专属用户woniu还希望相同业务类型的云主机创建在相同的专属物理机中,则可以将专属用户woniu的专属物理机按照业务类型进行划分。例如,创建请求中还可以携带用于标识创建云主机的物理机的业务类型的需求标签,当携带第一需求标签为业务类型标签sub_user_A1时,表明该创建请求所要创建的云主机必须在创建在业务类型为A1的专属物理机中。业务类型为A1的专属物理机可以同时用用户标签user_woniu和业务类型标签sub_user_A1进行标识。
需要说明的是,被用户标签标识的专属物理机可以被多种不同类型的需求标签标识,但是不能被多个同一类型的需求标签标识。例如,一CPU类型为2680v4的物理机可以同时被用户标签user_woniu、需求标签phy_cpu_2680v4、需求标签sub_user_A1标识,但是不能同时被用户标签user_woniu、需求标签phy_cpu_2680v4、需求标签phy_cpu_2680v3、需求标签sub_user_A1标识,也不能同时被用户标签user_woniu、需求标签phy_cpu_2680v3、需求标签sub_user_A1、需求标签sub_user_A2标识。可以理解的,phy_cpu_2680v3和phy_cpu_2680v4是属于同一类型的需求标签,sub_user_A1、sub_user_A2也是属于同一类型的需求标签。
实际应用中,除了上述举例的CPU类型标签和业务类型标签,还可以根据用户的需求设置其它类型的需求标签,本实施例并不限定创建请求所携带的需求标签的数量,如创建请求中可以同时携带多种需求标签,也可以只携带一种需求标签,都是合理的。
实际应用中,物理机被需求标签标识的情况可以用数据表进行管理。例如,当一物理机未被某一需求标签标识时,数据表未记录该物理机对应的需求标签,当该物理机被某一需求标签标识时,在数据表中记录该物理机对应的需求标签。如表1所示的数据表,物理机PM_1所在行对应的“业务类型标签”列标记有业务类型标签sub_user_A1,表示该物理机被业务类型标签sub_user_A1所标识,而物理机PM_3所在行对应的“业务类型标签”列未标记有标签,表示该物理机未被业务类型标签所标识。当判断是否存在同时用用户标签user_1和CPU类型标签phy_cpu_2680v4标识的物理机时,通过查询数据表可知,物理机标识为PM_1的物理机满足要求。数据表可以存储在调度器中,调度器在选择出未创建云主机且未被用户标签和业务类型标签标识的空物理机作为目标物理机之后,将目标物理机对应的用户标签user_1和业务类型标签sub_user_A1存储到数据表中,也就是用用户标签user_1和业务类型标签sub_user_A1来标识目标物理机。
表3
物理机标识 用户标签 业务类型标签 CPU类型标签
PM_1 user_1 sub_user_A1 phy_cpu_2680v4
PM_2 user_2 phy_cpu_2680v4
PM_3
可以理解的,用户标签标识了用户具有独占物理机的需求,需求标签进一步标识了用户对其专属物理机的其它需求,这里可以将用户标签可以理解为一级标签、需求标签为二级标签,这种分级标签的方式满足了用户对物理机的多种需求,也便于快速确定满足用户需求的物理机。
可以理解的,物理机被某一需求标签标识,也可以达到该类型的物理机与其他物理机的隔离,当创建请求中携带某一需求标签时,也不需要人工进行调度,调度器可以将云主机创建任务调度到被该需求标签标识的物理机,这种基于标签的隔离方式同样减少了人为介入,减轻了技术人员的工作量。
可以理解的,如果当前存在用第一用户标签和第一需求标签标识的第一物理机,则可以直接将该第一物理机作为目标物理机,并在该目标物理机上创建目标云主机,如果当前不存在用第一用户标签和第一需求标签标识的第一物理机,则可以先从普通物理机中选择第一预设数量台未创建云主机且未被用户标签和需求标签标识的空物理机确定为目标物理机,并用第一用户标签和第一需求标签标识该目标物理机,再在所确定的目标物理机上创建目标云主机。
需要说明的是,上述未创建云主机的空物理机仅表示当前该物理机中没有云主机,并不限定该物理机是否曾经创建过云主机,该物理机可以为从未创建过云主机的物理机,也可以为曾创建过普通用户的云主机的物理机,还可以为曾被用户标签或需求标签标识过、但当前未被用户标签或需求标签标识的物理机。
具体的,S106根据目标云主机的创建请求,在目标物理机上创建目标云主机的步骤,可以包括:
针对创建请求中的每个目标云主机,创建对应的云主机创建任务;
根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
可以理解的,一个创建请求可能需要创建多个目标云主机,每一个目标云主机对应一个云主机创建任务。这种情况下,由于物理机的资源限制,如磁盘剩余容量、内存等资源,可能一个目标物理机的资源不能满足多个目标云主机的需求,因此这多个目标云主机需要创建在一台或多台目标物理机中,根据每个目标云主机所需的资源和每个目标物理机的资源情况,将云主机创建任务调度至一台或多台目标物理机以完成所有目标云主机的创建。
具体的,上述根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤,可以包括:
根据各个目标物理机的资源情况判断是否能够完成各个云主机创建任务;
如果是,则执行将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤;
如果否,则选择第二预设数量台未创建云主机且未被用户标签和需求标签标识的空物理机确定为目标物理机,并用第一用户标签和第一需求标签标识该目标物理机,再执行将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤。
例如,当前存在5台目标物理机,一个创建请求需要创建10个目标云主机,如果这5台目标物理机的资源可以完成这10个目标云主机的创建任务,则直接将这10个云主机创建任务调度至这5台目标物理机中的一台或多台以完成目标云主机的创建。
另一种情况,如果这5台目标物理机的资源不足以完成这10个目标云主机的创建任务,则需要先从普通物理机中选择1台未创建云主机的空物理机确定为目标物理机,并用第一用户标签和第一需求标签标识该目标物理机,再将这10个云主机创建任务调度至这6台目标物理机中的一台或多台以完成目标云主机的创建。
进一步的,如果这6台目标物理机的资源仍不足以完成这10个目标云主机的创建任务,则需要再次从普通物理机中选择1台未创建云主机的空物理机确定为目标物理机,并用第一用户标签和第一需求标签标识该目标物理机,直到所得到的目标物理机的资源可以完成这10个目标云主机的创建任务,进而将各个云主机创建任务调度至所得到的的目标物理机中。
实际应用中,上述第二预设数量与上述第一预设数量的值,可以相同也可以不同,本实施例对此不做限定。
在一种实现方式中,在判断出不存在未创建云主机且未被用户标签和需求标签标识标识的空物理机的情况下,还可以输出不存在未创建云主机且未被用户标签和需求标签标识的空物理机的提示消息。可以理解的,不存在未创建云主机且未被用户标签和需求标签标识的空物理机,也就是公共调度区中普通物理机的数量不足,因此输出提示消息可以提醒技术人员公共调度区的资源不足,以便于技术人员进行资源调整或者补充。
在一种实现方式中,为便于对专属物理机和普通物理机的状态管理,还可以从物理机是否被用户标签和需求标签标识、物理机是否存在云主机两个方面对物理机的状态进行区分。
具体的,该云主机创建方法还可以包括:
根据当前时刻物理机是否被用户标签和需求标签标识以及是否存在云主机确定各个物理机的状态:
若该物理机存在云主机且被用户标签和需求标签标识,则该物理机为第一状态;
若该物理机不存在云主机且用户标签和需求标签未被删除的时间未达到预设时间,则该物理机为第二状态;
若该物理机未创建过云主机且未被用户标签和需求标签标识,则该物理机为第三状态;
若该物理机不存在云主机且用户标签和需求标签未被删除的时间达到预设时间,则删除用户标签和需求标签,并将该物理机确定为第三状态。
在实际应用中,对不同的标签可以设置不同的属性,包括固定属性和可回收属性。其中,具有固定属性的标签,当删除物理机中所有云主机时,不删除该标签;而具有可回收属性的标签,当删除物理机中所有云主机时,删除该标签。具有固定属性的标签可以称为固定标签,具有可回收属性的标签可以称为可变标签。
先举例说明具有固定属性的标签:对于每台物理机来说,由于物理机的CPU类型是确定的,因此物理机CPU类型的需求标签可以设置为固定属性的标签,例如,CPU类型为2680v4的物理机,在该物理机被需求标签phy_cpu_2680v4标识后,当该物理机中不存在云主机时,不删除该需求标签phy_cpu_2680v4。可以理解的,实际上,如果删除该物理机的需求标签phy_cpu_2680v4,后续如果重新需要用物理机CPU类型的需求标签来标识该物理机时,该物理机仍然会被该需求标签phy_cpu_2680v4标识。所以对于固定标签来说,当所标识的物理机中不存在云主机时,可以不被删除。
再举例说明具有可回收属性的标签:一台物理机可以被任一用户标签或任一业务类型标签标识,因此,用户标签和业务类型标签可以设置为可回收属性的标签。例如,一台物理机被用户标签user_1标识后,当该物理机中不存在云主机后,用户标签user_1被删除,这样,后续该物理机可以被其它用户标签user_2标识,也可以再次被该用户标签user_1标识。同样的,一台物理机被业务类型标签sub_user_A1标识,当该业务类型标签sub_user_A1被删除后,该物理机还可以被其它业务类型标签sub_user_A2标识,也可以再次被该业务类型标签sub_user_A1标识。所以对于可变标签来说,当所标识的物理机中不存在云主机时,该标签应当被删除。
因此,同时被两个可变标签标识的物理机中不存在云主机时,需要将两个可变标签都删除;同时被固定标签和可变标签标识的物理机中不存在云主机时,只删除可变标签、不删除固定标签。也就是说,在确定物理机的状态时,不考虑是否被固定标签标识或固定标签是否被删除,仅考虑可变标签即可。
需要说明的是,为便于记录各个物理机的状态,可以将上述三种状态分别对应一个状态值alloc_stat,例如,第一状态对应的状态值alloc_stat为1,表示物理机处于使用状态,第二状态对应的状态值alloc_stat为2,表示物理机处于锁定状态,第三状态对应的状态值alloc_stat为0,表示物理机处于初始化状态。实际应用中,调度器可以记录并更新各个物理机的状态,当物理机的状态发生变化时,将该物理机的状态值更新为变化后的状态对应的状态值。
举例而言,一开始,当物理机A中没有云主机且未被用户标签和需求标签标识时,该物理机A处于第三状态;之后,如果该物理机A被选择作为目标物理机并被用户标签和需求标签标识,则该物理机A处于第一状态,此时,调度器将该物理机A的状态值由0置为1,并且在调度器检测到该物理机A中不存在云主机之前,该物理机A的状态值一直为1;然后,如果检测到该物理机A中不存在云主机了,调度器会将该物理机A的状态值由1置为2,该物理机A处于第二状态,此时物理机A中不存在云主机且用户标签和需求标签还未被删除,并且调度器在将物理机A的状态值由1置为2的时刻开始计时,达到预设时间后,调度器再次检测该物理机A中是否存在云主机,如果存在云主机,则将该物理机A的状态值由2置为1,表示该物理机A可以继续作为专属物理机,如果不存在云主机,则删除该物理机A的用户标签和需求标签并将该物理机的状态值由2置为0,表示该物理机A由专属物理机转变为普通物理机,从专属区回到公共调度区。
可见,当专属区中某一类型的专属物理机不足时,通过用户标签和需求标签标识的方式,将公共调度区的普通物理机转变为专属物理机,当专属物理机中没有云主机时,将专属物理机上的用户标签和需求标签删除,使其作为普通物理机再次回到公共调度区。这种基于标签的物理机资源动态管理方式,不仅满足了用户独占物理机的需求,同时也实现了专属区与公共调度区之间的物理机的资源共享。
需要说明的是,在专属物理机中所有云主机都被删除后,专属物理机从第一状态转变为第二状态,第二状态是一个中间过渡阶段,也叫做标签预分离状态,这时专属物理机处于锁定状态,调度器不能调度这台专属物理机,即在第二状态时调度器不会将云主机创建任务调度到这台专属物理机上。
本领域技术人员可以理解的是,如果调度器检测到一台专属物理机中没有云主机时就立刻将该专属物理机的用户标签和需求标签删除,这样的话很可能导致出错,这是由于云主机创建请求的高并发性,短时间内可能会发生调度器调度了其它云主机创建任务到这台专属物理机上的情况,因此设置这个第二状态可以避免这种问题。
在调度器记录和更新物理机的状态的情况下,上述判断是否存在同时用第一用户标签和第一需求标签标识的第一物理机的步骤,可以包括:
获得同时用第一用户标签和第一需求标签标识的至少一台物理机,确定为候选第一物理机;
将候选第一物理机中处于第一状态的物理机,确定为第一物理机;
判断是否存在至少一台第一物理机;
上述选择第一预设数量台未创建云主机且未被用户标签和需求标签标识的空物理机确定为目标物理机的步骤,可以包括:
选择第一预设数量台处于第三状态的物理机确定为目标物理机。
可以理解的,由于第一状态和第二状态的物理机都处于被用户标签和需求标签标识的状态,因此需要先判断各个候选第一物理机的状态,如果是第一状态,则该候选第一物理机可以确定为第一物理机,如果是第二状态,由于第二状态的物理机处于锁定状态,不能被调度器所调度,因此第二状态的候选第一物理机不能被确定为第一物理机。
由以上可见,本施例提供的方案中,在针对目标云主机的创建请求中携带第一用户标签和第一需求标签时,表示该用户为有独占物理机需求的用户,且该用户希望将目标云主机创建在满足特定需求的、独占的物理机上,如果存在用第一用户标签和第一需求标签标识的第一物理机,则将该第一物理机确定为目标物理机,并在该目标物理机上创建目标云主机,如果不存在,则选择第一预设数量台未创建云主机且未被用户标签和需求标签标识的空物理机确定为目标物理机,并用第一用户标签和第一需求标签标识该目标物理机后,再在该目标物理机上创建目标云主机。可见,本实施例提供的方案对于同时有独占物理机和其它需求的用户的创建请求,不需要人工调度即可实现在用户的专属物理机中的满足特定要求的物理机上自动创建云主机,减少了出错。
图4为本发明实施例提供的物理机使用标签进行分组的示意图。
如图4所示,有11台物理机,分别为host1~host11,其中,被标签tag1标识的物理机有host1~host4、host9~host11,被标签tag2标识的物理机有host5~host11。若将这11台物理机按照标签来分组,如图4所示可以分为tag1标签标记的分组、tag2标签标记的分组、tag1&&tag2组合标签标记的分组、tag1||tag2组合标签标记的分组,其中,tag1标签标记的分组中包含物理机host1~host4、host9~host11,tag2标签标记的分组中包含物理机host5~host11,tag1&&tag2组合标签标记的分组中包含物理机host9~host11,tag1||tag2组合标签标记的分组中包含物理机host1~host11。
标签tag用于创建云主机时传入并且附注于物理机上,例如具有独占物理机需求的用户woniu第一次创建云主机时,按照一定的命名规则生成该用户对应的用户标签,将此用户标签附注到未被用户标签标识的空物理机上,使之成为该用户的专属物理机。对于标签tag的命名规则,可以支持英文字母、数字组合以及“_”,命名时建议以“_”分割,第一部分标明分类维度,后续部分标明具体类别,还可以设置以SYS_开头的标签为内部预留tag,调度时需根据该tag特殊处理,如user_woniu,其中user表示用户标签,woniu表示用户名,SYS_ratio_n,其中ratio表示虚拟比标签,n表示虚拟比的值。
组合标签只在用户创建云主机的创建请求中传送参数时用到,对于组合标签的命名规则,“||”表示或,表明云主机可以调度至||所连接的tag分组并集中,“&&”表示与,表明云主机可以调度至&&所连接的tag分组交集中,~表明云主机不可以调度至所前缀的分组中。这三种连接符的优先级关系为:~>&&>||。
下面以一个具体实施例对图1所示实施例提供的云主机创建方法进行说明。
图5为本具体实施例中物理机的用户标签动态附注的流程示意图。
如图5所示,步骤S501,调度器接收到有独占物理机需求的用户的创建云主机的请求,该请求中包含有用户标签user_1、本次要创建的云主机的数目num_ins,表示用户希望将云主机创建在被用户标签user_1标识的物理机中。
然后执行步骤S502,检测用户标签user_1所标记的分组中是否有物理机,也就是判断是否有被用户标签user_1标记的第一物理机,如果有,执行步骤S503将该第一物理机确定为目标物理机,调度器进行调度,根据云主机所需要的资源和各个目标物理机的资源情况,从目标物理机中筛选出合适的物理机,将云主机调度到筛选出的物理机中进行创建;然后执行步骤S504,判断是否所有云主机均调度完成,如果是,执行步骤S505,完成所有云主机的创建。
如果步骤S504判断出不是所有云主机均调度完成,即所有云主机不能够在当前存在的目标物理机中创建完毕,则执行步骤S506,将预设数量num台alloc_stat值为0的物理机确定为目标物理机,并用用户标签user_1进行标记,也就是将目标物理机划入到用户标签user_1域内;步骤S507判断是否有物理机可划到用户标签user_1域内,如果有,执行步骤S503调度器在该域内的物理机中进行调度筛选,如果没有,执行步骤S508创建已调度完成的云主机并报警资源不足。
如果一开始在步骤S502检测出用户标签user_1所标记的分组中没有物理机,则直接执行步骤S506,将预设数量num台alloc_stat值为0的物理机划到标签user_1域内。可以理解的,将预设数量num台alloc_stat值为0的物理机划到user_1域内的步骤,就是将用户标签动态附注到物理机上。
图6为本具体实施例中物理机的用户标签动态解附注的流程示意图。
如图6所示,一种方式为:步骤S4011当用户删除云主机时,执行步骤S4021调度器判断该云主机所在物理机上是否还有云主机存在,如果该物理机中不存在云主机了,执行步骤S404将该物理机的用户标签去除,如果该物理机中还存在云主机,执行步骤S403正常返回。
另一种方式为:步骤S4012调度器采用垃圾回收(GC)机制周期性地扫描所有物理机,步骤S4022判断该物理机中是否存在云主机,如果不存在,执行步骤S404将该物理机的用户标签去除,如果存在执行步骤S403正常返回。
图7为本具体实施例中物理机的用户标签分离逻辑的流程示意图。
如图7所示,步骤S7011在用户删除云主机后检测该云主机所在的物理机,步骤S7012采用GC机制周期性扫描物理机,步骤S702判断该物理机中是否还存在云主机,如果存在,执行步骤S703正常返回;如果不存在,执行步骤S704判断该物理机的alloc_stat值是否为1,如果为1,执行步骤S705将该物理机的alloc_stat值置为2,并开始计时,然后执行步骤S703正常返回,此时,按照正常的标签分离逻辑,在预设时间后调度器会再次判断该物理机中是否还存在云主机,如果存在则将该物理机的alloc_stat值重新置为1,如果不存在则将该物理机的alloc_stat值置为0,也就意味着要删除该物理机的用户标签。
如果步骤S704判断出该物理机的alloc_stat值不为1,则执行步骤S706判断物理机的alloc_stat值是否为2,如果是,执行步骤S707判断该物理机的alloc_stat值置为2的时间是否达到预设时间,如果未达到预设时间,则正常返回,按照正常的标签分离逻辑,在预设时间后调度器会再次判断该物理机中是否还存在云主机,如果存在则将该物理机的alloc_stat值重新置为1,如果不存在则将该物理机的alloc_stat值置为0,也就意味着要删除该物理机的用户标签。
如果步骤S707判断出该物理机的alloc_stat值置为2的时间达到预设时间,则执行步骤S708判断该物理机中是否还存在云主机,如果存在则执行步骤S709将alloc_stat值置为1,不删除该物理机的用户标签;如果不存在则执行步骤S710将alloc_stat值置为0,删除该物理机的用户标签。
另外,如果在更新该物理机的alloc_stat值的过程中发现alloc_stat值与该物理机当前所处的状态对应的状态值不匹配时,还可以进行报警,例如,在步骤S706判断出该物理机中不存在云主机、而alloc_stat值既不为1也不为2,可知alloc_stat值出现错误,此时执行步骤S711报警出错。
下面以另一个具体实施例对图3所示实施例提供的云主机创建方法进行说明。
图8为本具体实施例中物理机的标签动态附注的流程示意图。
如图8所示,步骤S801,调度器接收到有独占物理机需求的用户的创建云主机的请求,该请求中包含有用户标签user_1(可变标签)、需求标签CPUversion_4(固定标签)和本次要创建的云主机的数目num_ins,表示用户希望将云主机创建在同时被可变标签user_1、固定标签CPUversion_4标识的物理机中。
然后执行步骤S802,检测标签user_1和CPUversion_4所标记的分组的交集域中是否有物理机,也就是判断是否有同时被标签user_1和CPUversion_4标记的第一物理机,如果有,执行步骤S803将该第一物理机确定为目标物理机,调度器进行调度,根据云主机所需要的资源和各个目标物理机的资源情况,从目标物理机中筛选出合适的物理机,将云主机调度到筛选出的物理机中进行创建;然后执行步骤S804,判断是否所有云主机均调度完成,如果是,执行步骤S805,完成所有云主机的创建。
如果步骤S804判断出不是所有云主机均调度完成,即所有云主机不能够在当前存在的目标物理机中创建完毕,则执行步骤S806,将预设数量num台空物理机确定为目标物理机(这些空物理机中没有云主机并且未被可变标签user和固定标签CPUversion标识),并用标签user_1和CPUversion_4进行标记,也就是将目标物理机划入到标签user_1和CPUversion_4所标记的分组的交集域内,步骤S807判断是否有物理机可划到标签user_1和CPUversion_4所标记的分组的交集域内,如果有,执行步骤S803调度器在该交集域内的物理机中进行调度筛选,如果没有,执行步骤S808创建已调度完成的云主机并报警资源不足。
如果一开始在步骤S802检测出user_1和CPUversion_4所标记的分组的交集域中没有物理机,则直接执行步骤S806,将预设数量num台空物理机划到标签user_1和CPUversion_4所标记的分组的交集域内。可以理解的,将预设数量num台空物理机划到user_1和CPUversion_4所标记的分组的交集域内的步骤,就是将标签动态附注到物理机上。
需要说明的是,一物理机的用户标签user值为NULL,表示该物理机曾经被某一用户标签标识过、但是当前未被用户标签标识。同样的,一物理机的需求标签CPUversion值为NULL,表示该物理机曾经被CPUversion标签标识过、但是当前未被CPUversion标签标识。
图9为本具体实施例中物理机的标签动态解附注的流程示意图。
如图9所示,一种方式为:步骤S9011当用户删除云主机时,执行步骤S9021调度器判断该云主机所在物理机上是否还有云主机存在,如果该物理机中不存在云主机了,执行步骤S904将该物理机的可变标签去除,如果该物理机中还存在云主机,执行步骤S903正常返回。
另一种方式为:步骤S9012调度器采用垃圾回收(GC)机制周期性地扫描所有物理机,步骤S9022判断该物理机中是否存在云主机,如果不存在,执行步骤S904将该物理机的可变标签去除,如果存在执行步骤S903正常返回。
关于本具体实施例中物理机的标签分离逻辑的流程,可以参照图7所示具体实施例的相关描述,此处不再赘述。
与上述的云主机创建方法相对应,本发明实施例还提供了一种云主机创建装置。
与图1所示的方法实施例相对应,图10为本发明实施例提供的一种云主机创建装置的结构示意图,该装置可以包括:
接收模块101,用于接收针对目标云主机的创建请求;
第一判断模块102,用于判断所述创建请求中是否携带第一用户标签,所述第一用户标签用于标识所述用户为有独占物理机需求的用户,且该用户独占的物理机用该第一用户标签标识;若携带,则触发第二判断模块103;
所述第二判断模块103,用于判断是否存在用所述第一用户标签标识的至少一台第一物理机;若存在,则触发第一确定模块104;若不存在,则触发第二确定模块105;
所述第一确定模块104,用于将所述至少一台第一物理机确定为目标物理机;触发创建模块106;
所述第二确定模块105,用于选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用所述第一用户标签标识该目标物理机;触发所述创建模块106;
所述创建模块106,用于根据所述目标云主机的创建请求,在所述目标物理机上创建所述目标云主机。
由以上可见,本实施例提供的云主机创建装置中,在针对目标云主机的创建请求中携带第一用户标签时,表示该用户为有独占物理机需求的用户,如果存在用第一用户标签标识的第一物理机,则将该第一物理机确定为目标物理机,并在该目标物理机上创建目标云主机,如果不存在用第一用户标签标识的第一物理机,则选择第一预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用第一用户标签标识该目标物理机后,再在该目标物理机上创建目标云主机。可见,本实施例提供的方案对于有独占物理机需求的用户的创建请求,不需要人工调度即可实现在用户的专属物理机中自动创建云主机,减少了出错。
具体的,所述创建模块106,可以包括:
第一创建子模块(图中未示出),用于针对所述创建请求中的每个目标云主机,创建对应的云主机创建任务;
第二创建子模块(图中未示出),用于根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机创建。
具体的,所述第二创建子模块,可以包括:
第一判断单元(图中未示出),用于根据各个目标物理机的资源情况判断是否能够完成各个云主机创建任务;如果是,触发第一创建单元(图中未示出),如果否,触发第二创建单元(图中未示出);
所述第一创建单元,用于将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建;
所述第二创建单元,用于选择第二预设数量台未创建云主机且未被用户标签标识的空物理机确定为目标物理机,并用所述第一用户标签标识该目标物理机,再将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
具体的,所述装置还可以包括:
第一提示模块(图中未示出),用于在判断出不存在未创建云主机且未被用户标签标识的空物理机的情况下,输出不存在未创建云主机且未被用户标签标识的空物理机的提示消息。
具体的,所述装置还可以包括:
第三确定模块(图中未示出),用于根据当前时刻物理机是否被用户标签标识以及是否存在云主机确定各个物理机的状态:
若所述物理机存在云主机且被用户标签标识,则所述物理机为第一状态;
若所述物理机不存在云主机且用户标签未被删除的时间未达到预设时间,则所述物理机为第二状态;
若所述物理机未创建过云主机且未被用户标签标识,则所述物理机为第三状态;
若所述物理机不存在云主机且用户标签未被删除的时间达到预设时间,则删除所述用户标签,并将所述物理机确定为第三状态;
所述第二判断模块103,可以包括:
获得子模块(图中未示出),用于获得用所述第一用户标签标识的物理机,确定为候选第一物理机;
确定子模块(图中未示出),用于将所述候选第一物理机中处于第一状态的物理机,确定为第一物理机;
判断子模块(图中未示出),用于判断是否存在所述至少一台第一物理机;
所述第二确定模块105,具体可以用于:
选择第一预设数量台处于第三状态的物理机确定为目标物理机,并用所述第一用户标签标识该目标物理机。
具体的,在一种实现方式中,所述创建请求中还可以携带第一虚拟比标签,其中,所述第一虚拟比标签用于确定创建所述目标云主机的物理机的目标虚拟比,且具有该目标虚拟比的物理机用该第一虚拟比标签标识;
相应的,所述第一判断模块102,具体可以用于:
判断所述创建请求中是否携带第一用户标签和第一虚拟比标签;
所述第二判断模块103,具体可以用于:
判断是否存在同时用所述第一用户标签和第一虚拟比标签标识的至少一台第一物理机,其中,所述第一物理机中云主机的数量小于所述目标虚拟比;
所述第二确定模块105,具体可以用于:
选择第一预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用所述第一用户标签和所述第一虚拟比标签标识该目标物理机。
具体的,所述创建模块106,可以包括:
第三创建子模块(图中未示出),用于针对所述创建请求中的每个目标云主机,创建对应的云主机创建任务;
第四创建子模块(图中未示出),用于根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
具体的,所述第四创建子模块,可以包括:
第二判断单元(图中未示出),用于根据各个目标物理机的资源情况判断是否能够完成各个云主机创建任务;如果是,触发第三创建单元(图中未示出),如果否,触发第四创建单元(图中未示出);
所述第三创建单元,用于所述将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建;
所述第四创建单元,用于选择第二预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用所述第一用户标签和第一虚拟比标签标识该目标物理机,再将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
具体的,所述装置还可以包括:
第二提示模块(图中未示出),用于在判断出不存在未创建云主机且未被用户标签和虚拟比标签标识的空物理机的情况下,输出不存在未创建云主机且未被用户标签和虚拟比标签标识的空物理机的提示消息。
具体的,所述装置还可以包括:
第四确定模块(图中未示出),用于根据当前时刻物理机是否被用户标签和虚拟比标签标识以及是否存在云主机确定各个物理机的状态:
若所述物理机存在云主机且被用户标签和虚拟比标签标识,则所述物理机为第一状态;
若所述物理机不存在云主机且用户标签和虚拟比标签未被删除的时间未达到预设时间,则所述物理机为第二状态;
若所述物理机未创建过云主机且未被用户标签和虚拟比标签标识,则所述物理机为第三状态;
若所述物理机不存在云主机且用户标签和虚拟比标签未被删除的时间达到预设时间,则删除所述用户标签和虚拟比标签,并将所述物理机确定为第三状态;
相应的,所述第二判断模块103,可以包括:
第二获得子模块(图中未示出),用于获得同时用所述第一用户标签和第一虚拟比标签标识的物理机,确定为候选第一物理机;
第二确定子模块(图中未示出),用于将所述候选第一物理机中处于第一状态的物理机,确定为第一物理机,其中,所述第一物理机中云主机的数量小于所述目标虚拟比;
第二判断子模块(图中未示出),用于判断是否存在至少一台所述第一物理机;
所述第二确定模块105,具体可以用于:
选择第一预设数量台处于第三状态的物理机确定为目标物理机,并用所述第一用户标签和第一虚拟比标签标识该目标物理机。
具体的,在另一种实现方式中,所述创建请求中还可以携带第一需求标签,所述第一需求标签用于标识该用户对创建所述目标云主机的物理机的要求;
相应的,所述第一判断模块102,具体可以用于;
判断所述创建请求中是否携带第一用户标签和第一需求标签;
所述第二判断模块103,具体可以用于:
判断是否存在同时用所述第一用户标签和第一需求标签标识的至少一台第一物理机;
所述第二确定模块105,具体可以用于:
选择第一预设数量台未创建云主机且未被用户标签和需求标签标识的空物理机确定为目标物理机,并用所述第一用户标签和所述第一需求标签标识该目标物理机。
具体的,所述创建模块106,可以包括:
第五创建子模块(图中未示出),用于针对所述创建请求中的每个目标云主机,创建对应的云主机创建任务;
第六创建子模块(图中未示出),用于根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
具体的,所述第六创建子模块,可以包括:
第三判断单元(图中未示出),用于根据各个目标物理机的资源情况判断是否能够完成各个云主机创建任务;如果是,触发第五创建单元(图中未示出),如果否,触发第六创建单元(图中未示出);
所述第五创建单元,用于将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建;
所述第六创建单元,用于选择第二预设数量台未创建云主机且未被用户标签和需求标签标识的空物理机确定为目标物理机,并用所述第一用户标签和第一需求标签标识该目标物理机,再将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
具体的,所述装置还可以包括:
第三提示模块(图中未示出),用于在判断出不存在未创建云主机且未被用户标签和需求标签标识的空物理机的情况下,输出不存在未创建云主机且未被用户标签和需求标签标识的空物理机的提示消息。
具体的,所述装置还可以包括:
第五确定模块(图中未示出),用于根据当前时刻物理机是否被用户标签和需求标签标识以及是否存在云主机确定各个物理机的状态:
若所述物理机存在云主机且被用户标签和需求标签标识,则所述物理机为第一状态;
若所述物理机不存在云主机且用户标签和需求标签未被删除的时间未达到预设时间,则所述物理机为第二状态;
若所述物理机未创建过云主机且未被用户标签和需求标签标识,则所述物理机为第三状态;
若所述物理机不存在云主机且用户标签和需求标签未被删除的时间达到预设时间,则删除所述用户标签和需求标签,并将所述物理机确定为第三状态;
相应的,所述第二判断模块103,可以包括:
第三获得子模块(图中未示出),用于获得同时用所述第一用户标签和第一需求标签标识的物理机,确定为候选第一物理机;
第三确定子模块(图中未示出),用于将所述候选第一物理机中处于第一状态的物理机,确定为第一物理机;
第三判断子模块(图中未示出),用于判断是否存在至少一台所述第一物理机;
所述第二确定模块105,具体可以用于:
选择第一预设数量台处于第三状态的物理机确定为目标物理机,并用所述第一用户标签和第一需求标签标识该目标物理机。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (20)

1.一种云主机创建方法,其特征在于,所述方法包括:
接收针对目标云主机的创建请求;
判断所述创建请求中是否携带第一用户标签和第一虚拟比标签,所述第一用户标签用于标识所述用户为有独占物理机需求的用户,且该用户独占的物理机用该第一用户标签标识;所述第一虚拟比标签用于确定创建所述目标云主机的物理机的目标虚拟比,且具有该目标虚拟比的物理机用该第一虚拟比标签标识;
若所述创建请求中携带所述第一用户标签,则判断是否存在同时用所述第一用户标签和所述第一虚拟比标签标识的至少一台第一物理机,其中,所述第一物理机中云主机的数量小于所述目标虚拟比;
若存在用所述第一用户标签标识的至少一台第一物理机,则将所述至少一台第一物理机确定为目标物理机;
若不存在用所述第一用户标签标识的至少一台第一物理机,则选择第一预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用所述第一用户标签和所述第一虚拟比标签标识该目标物理机;
根据所述目标云主机的创建请求,在所述目标物理机上创建所述目标云主机。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标云主机的创建请求,在所述目标物理机上创建所述目标云主机的步骤,包括:
针对所述创建请求中的每个目标云主机,创建对应的云主机创建任务;
根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
3.根据权利要求2所述的方法,其特征在于,所述根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤,包括:
根据各个目标物理机的资源情况判断是否能够完成各个云主机创建任务;
如果是,则执行所述将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤;
如果否,则选择第二预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用所述第一用户标签和第一虚拟比标签标识该目标物理机,再执行所述将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述方法还包括:
在判断出不存在未创建云主机且未被用户标签和虚拟比标签标识的空物理机的情况下,输出不存在未创建云主机且未被用户标签和虚拟比标签标识的空物理机的提示消息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据当前时刻物理机是否被用户标签和虚拟比标签标识以及是否存在云主机确定各个物理机的状态:
若所述物理机存在云主机且被用户标签和虚拟比标签标识,则所述物理机为第一状态;
若所述物理机不存在云主机且用户标签和虚拟比标签未被删除的时间未达到预设时间,则所述物理机为第二状态;
若所述物理机未创建过云主机且未被用户标签和虚拟比标签标识,则所述物理机为第三状态;
若所述物理机不存在云主机且用户标签和虚拟比标签未被删除的时间达到预设时间,则删除所述用户标签和虚拟比标签,并将所述物理机确定为第三状态;
所述判断是否存在同时用所述第一用户标签和第一虚拟比标签标识的至少一台第一物理机,其中,所述第一物理机中云主机的数量小于所述目标虚拟比的步骤,包括:
获得同时用所述第一用户标签和第一虚拟比标签标识的物理机,确定为候选第一物理机;
将所述候选第一物理机中处于第一状态的物理机,确定为第一物理机,其中,所述第一物理机中云主机的数量小于所述目标虚拟比;
判断是否存在至少一台所述第一物理机;
所述选择第一预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机的步骤,包括:
选择第一预设数量台处于第三状态的物理机确定为目标物理机。
6.根据权利要求1所述的方法,其特征在于,所述创建请求中还携带第一需求标签,所述第一需求标签用于标识该用户对创建所述目标云主机的物理机的要求;
所述判断所述创建请求中是否携带第一用户标签和第一虚拟比标签的步骤,包括;
判断所述创建请求中是否携带第一用户标签、所述第一虚拟比标签和所述第一需求标签;
所述判断是否存在同时用所述第一用户标签和所述第一虚拟比标签标识的至少一台第一物理机的步骤,包括:
判断是否存在同时用所述第一用户标签、所述第一虚拟比标签和所述第一需求标签标识的至少一台第一物理机;
所述选择第一预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用所述第一用户标签标识该目标物理机的步骤,包括:
选择第一预设数量台未创建云主机且未被用户标签、虚拟比标签和需求标签标识的空物理机确定为目标物理机,并用所述第一用户标签、所述第一虚拟比标签和所述第一需求标签标识该目标物理机。
7.根据权利要求6所述的方法,其特征在于,所述根据所述目标云主机的创建请求,在所述目标物理机上创建所述目标云主机的步骤,包括:
针对所述创建请求中的每个目标云主机,创建对应的云主机创建任务;
根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
8.根据权利要求7所述的方法,其特征在于,所述根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤,包括:
根据各个目标物理机的资源情况判断是否能够完成各个云主机创建任务;
如果是,则执行所述将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤;
如果否,则选择第二预设数量台未创建云主机且未被用户标签、虚拟比标签和需求标签标识的空物理机确定为目标物理机,并用所述第一用户标签、所述第一虚拟比标签和第一需求标签标识该目标物理机,再执行所述将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建的步骤。
9.根据权利要求6-8任一项所述的方法,其特征在于,所述方法还包括:
在判断出不存在未创建云主机且未被用户标签、虚拟比标签和需求标签标识的空物理机的情况下,输出不存在未创建云主机且未被用户标签、虚拟比标签和需求标签标识的空物理机的提示消息。
10.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据当前时刻物理机是否被用户标签、虚拟比标签和需求标签标识以及是否存在云主机确定各个物理机的状态:
若所述物理机存在云主机且被用户标签、虚拟比标签和需求标签标识,则所述物理机为第一状态;
若所述物理机不存在云主机且用户标签、虚拟比标签和需求标签未被删除的时间未达到预设时间,则所述物理机为第二状态;
若所述物理机未创建过云主机且未被用户标签、虚拟比标签和需求标签标识,则所述物理机为第三状态;
若所述物理机不存在云主机且用户标签、虚拟比标签和需求标签未被删除的时间达到预设时间,则删除所述用户标签、虚拟比标签和需求标签,并将所述物理机确定为第三状态;
所述判断是否存在同时用所述第一用户标签、所述第一虚拟比标签和所述第一需求标签标识的至少一台第一物理机的步骤,包括:
获得同时用所述第一用户标签、所述第一虚拟比标签和第一需求标签标识的物理机,确定为候选第一物理机;
将所述候选第一物理机中处于第一状态的物理机,确定为第一物理机;
判断是否存在至少一台所述第一物理机;
所述选择第一预设数量台未创建云主机且未被用户标签、虚拟比标签和需求标签标识的空物理机确定为目标物理机的步骤,包括:
选择第一预设数量台处于第三状态的物理机确定为目标物理机。
11.一种云主机创建装置,其特征在于,所述装置包括:
接收模块,用于接收针对目标云主机的创建请求;
第一判断模块,用于判断所述创建请求中是否携带第一用户标签和第一虚拟比标签,所述第一用户标签用于标识所述用户为有独占物理机需求的用户,且该用户独占的物理机用该第一用户标签标识;所述第一虚拟比标签用于确定创建所述目标云主机的物理机的目标虚拟比,且具有该目标虚拟比的物理机用该第一虚拟比标签标识;若携带,则触发第二判断模块;
所述第二判断模块,用于判断是否存在同时用所述第一用户标签和所述第一虚拟比标签标识的至少一台第一物理机,其中,所述第一物理机中云主机的数量小于所述目标虚拟比;若存在,则触发第一确定模块;若不存在,则触发第二确定模块;
所述第一确定模块,用于将所述至少一台第一物理机确定为目标物理机;触发创建模块;
所述第二确定模块,用于选择第一预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用所述第一用户标签和所述第一虚拟比标签标识该目标物理机;触发所述创建模块;
所述创建模块,用于根据所述目标云主机的创建请求,在所述目标物理机上创建所述目标云主机。
12.根据权利要求11所述的装置,其特征在于,所述创建模块,包括:
第三创建子模块,用于针对所述创建请求中的每个目标云主机,创建对应的云主机创建任务;
第四创建子模块,用于根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
13.根据权利要求12所述的装置,其特征在于,所述第四创建子模块,包括:
第二判断单元,用于根据各个目标物理机的资源情况判断是否能够完成各个云主机创建任务;如果是,触发第三创建单元,如果否,触发第四创建单元;
所述第三创建单元,用于所述将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建;
所述第四创建单元,用于选择第二预设数量台未创建云主机且未被用户标签和虚拟比标签标识的空物理机确定为目标物理机,并用所述第一用户标签和第一虚拟比标签标识该目标物理机,再将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
14.根据权利要求11~13任一项所述的装置,其特征在于,所述装置还包括:
第二提示模块,用于在判断出不存在未创建云主机且未被用户标签和虚拟比标签标识的空物理机的情况下,输出不存在未创建云主机且未被用户标签和虚拟比标签标识的空物理机的提示消息。
15.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第四确定模块,用于根据当前时刻物理机是否被用户标签和虚拟比标签标识以及是否存在云主机确定各个物理机的状态:
若所述物理机存在云主机且被用户标签和虚拟比标签标识,则所述物理机为第一状态;
若所述物理机不存在云主机且用户标签和虚拟比标签未被删除的时间未达到预设时间,则所述物理机为第二状态;
若所述物理机未创建过云主机且未被用户标签和虚拟比标签标识,则所述物理机为第三状态;
若所述物理机不存在云主机且用户标签和虚拟比标签未被删除的时间达到预设时间,则删除所述用户标签和虚拟比标签,并将所述物理机确定为第三状态;
所述第二判断模块,包括:
第二获得子模块,用于获得同时用所述第一用户标签和第一虚拟比标签标识的物理机,确定为候选第一物理机;
第二确定子模块,用于将所述候选第一物理机中处于第一状态的物理机,确定为第一物理机,其中,所述第一物理机中云主机的数量小于所述目标虚拟比;
第二判断子模块,用于判断是否存在至少一台所述第一物理机;
所述第二确定模块,具体用于:
选择第一预设数量台处于第三状态的物理机确定为目标物理机,并用所述第一用户标签和第一虚拟比标签标识该目标物理机。
16.根据权利要求11所述的装置,其特征在于,所述创建请求中还携带第一需求标签,所述第一需求标签用于标识该用户对创建所述目标云主机的物理机的要求;
所述第一判断模块,具体用于;
判断所述创建请求中是否携带第一用户标签、所述第一虚拟比标签和所述第一需求标签;
所述第二判断模块,具体用于:
判断是否存在同时用所述第一用户标签、所述第一虚拟比标签和所述第一需求标签标识的至少一台第一物理机;
所述第二确定模块,具体用于:
选择第一预设数量台未创建云主机且未被用户标签、虚拟比标签和需求标签标识的空物理机确定为目标物理机,并用所述第一用户标签、所述第一虚拟比标签和所述第一需求标签标识该目标物理机。
17.根据权利要求16所述的装置,其特征在于,所述创建模块,包括:
第五创建子模块,用于针对所述创建请求中的每个目标云主机,创建对应的云主机创建任务;
第六创建子模块,用于根据每个目标云主机所需的资源和每个目标物理机的资源情况,将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
18.根据权利要求17所述的装置,其特征在于,所述第六创建子模块,包括:
第三判断单元,用于根据各个目标物理机的资源情况判断是否能够完成各个云主机创建任务;如果是,触发第五创建单元,如果否,触发第六创建单元;
所述第五创建单元,用于将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建;
所述第六创建单元,用于选择第二预设数量台未创建云主机且未被用户标签、虚拟比标签和需求标签标识的空物理机确定为目标物理机,并用所述第一用户标签、所述第一虚拟比标签和第一需求标签标识该目标物理机,再将各个云主机创建任务调度至一台或多台目标物理机完成目标云主机的创建。
19.根据权利要求16-18任一项所述的装置,其特征在于,所述装置还包括:
第三提示模块,用于在判断出不存在未创建云主机且未被用户标签、虚拟比标签和需求标签标识的空物理机的情况下,输出不存在未创建云主机且未被用户标签、虚拟比标签和需求标签标识的空物理机的提示消息。
20.根据权利要求16所述的装置,其特征在于,所述装置还包括:
第五确定模块,用于根据当前时刻物理机是否被用户标签、虚拟比标签和需求标签标识以及是否存在云主机确定各个物理机的状态:
若所述物理机存在云主机且被用户标签、虚拟比标签和需求标签标识,则所述物理机为第一状态;
若所述物理机不存在云主机且用户标签、虚拟比标签和需求标签未被删除的时间未达到预设时间,则所述物理机为第二状态;
若所述物理机未创建过云主机且未被用户标签、虚拟比标签和需求标签标识,则所述物理机为第三状态;
若所述物理机不存在云主机且用户标签、虚拟比标签和需求标签未被删除的时间达到预设时间,则删除所述用户标签、虚拟比标签和需求标签,并将所述物理机确定为第三状态;
所述第二判断模块,包括:
第三获得子模块,用于获得同时用所述第一用户标签、所述第一虚拟比标签和所述第一需求标签标识的物理机,确定为候选第一物理机;
第三确定子模块,用于将所述候选第一物理机中处于第一状态的物理机,确定为第一物理机;
第三判断子模块,用于判断是否存在至少一台所述第一物理机;
所述第二确定模块,具体用于:
选择第一预设数量台处于第三状态的物理机确定为目标物理机,并用所述第一用户标签、所述第一虚拟比标签和第一需求标签标识该目标物理机。
CN201710256808.XA 2017-04-19 2017-04-19 一种云主机创建方法及装置 Active CN108574719B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710256808.XA CN108574719B (zh) 2017-04-19 2017-04-19 一种云主机创建方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710256808.XA CN108574719B (zh) 2017-04-19 2017-04-19 一种云主机创建方法及装置

Publications (2)

Publication Number Publication Date
CN108574719A CN108574719A (zh) 2018-09-25
CN108574719B true CN108574719B (zh) 2021-04-20

Family

ID=63575969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710256808.XA Active CN108574719B (zh) 2017-04-19 2017-04-19 一种云主机创建方法及装置

Country Status (1)

Country Link
CN (1) CN108574719B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109617954B (zh) * 2018-11-29 2021-07-30 郑州云海信息技术有限公司 一种创建云主机的方法和装置
CN112543109B (zh) * 2019-09-20 2023-08-15 上海数荃数据科技有限公司 一种云主机创建方法、系统、服务器及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102299929A (zh) * 2011-09-15 2011-12-28 北京天地云箱科技有限公司 虚拟机的访问控制方法、系统和装置
CN104468803A (zh) * 2014-12-12 2015-03-25 华为技术有限公司 一种虚拟数据中心资源映射方法和设备
CN105453039A (zh) * 2013-07-17 2016-03-30 赛门铁克公司 用于在高输入/输出负载环境中即时恢复虚拟机的系统和方法
CN106126345A (zh) * 2016-06-30 2016-11-16 广东睿江云计算股份有限公司 具有多云主机的物理机的内存控制方法和系统
CN106227582A (zh) * 2016-08-10 2016-12-14 华为技术有限公司 弹性伸缩方法及系统
CN106354544A (zh) * 2016-08-24 2017-01-25 华为技术有限公司 虚拟机创建方法、系统以及主机

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102299929A (zh) * 2011-09-15 2011-12-28 北京天地云箱科技有限公司 虚拟机的访问控制方法、系统和装置
CN105453039A (zh) * 2013-07-17 2016-03-30 赛门铁克公司 用于在高输入/输出负载环境中即时恢复虚拟机的系统和方法
CN104468803A (zh) * 2014-12-12 2015-03-25 华为技术有限公司 一种虚拟数据中心资源映射方法和设备
CN106126345A (zh) * 2016-06-30 2016-11-16 广东睿江云计算股份有限公司 具有多云主机的物理机的内存控制方法和系统
CN106227582A (zh) * 2016-08-10 2016-12-14 华为技术有限公司 弹性伸缩方法及系统
CN106354544A (zh) * 2016-08-24 2017-01-25 华为技术有限公司 虚拟机创建方法、系统以及主机

Also Published As

Publication number Publication date
CN108574719A (zh) 2018-09-25

Similar Documents

Publication Publication Date Title
US10003500B2 (en) Systems and methods for resource sharing between two resource allocation systems
EP3069274B1 (en) Managed service for acquisition, storage and consumption of large-scale data streams
AU2014346366B2 (en) Partition-based data stream processing framework
US10585691B2 (en) Distribution system, computer, and arrangement method for virtual machine
US10489176B2 (en) Method, system and apparatus for creating virtual machine
EP3285439A1 (en) Network service lifecycle management method and device
CN106933664B (zh) 一种Hadoop集群的资源调度方法及装置
AU2018202230A1 (en) Client-configurable security options for data streams
US11093296B2 (en) System, virtualization control apparatus, method for controlling a virtualization control apparatus, and program
WO2012056731A1 (ja) リソース管理サーバ、リソース管理方法及びリソース管理プログラムが格納された記憶媒体
US20120054824A1 (en) Access control policy template generating device, system, method and program
CN109325200B (zh) 获取数据的方法、装置及计算机可读存储介质
JP2004280780A (ja) バックアップ方法、システム、及びプログラム
CN103795804A (zh) 存储资源调度方法及存储计算系统
CN108574718B (zh) 一种云主机创建方法及装置
CN106331075B (zh) 用于存储文件的方法、元数据服务器和管理器
US8417688B2 (en) Converting two-tier resource mapping to one-tier resource mapping
JP2005338985A (ja) 記憶領域管理方法及びシステム
CN108574719B (zh) 一种云主机创建方法及装置
US20150269171A1 (en) Information storage system
CN109586970B (zh) 资源分配方法、装置及系统
US9594677B2 (en) Computer system, data management method, and recording medium for storing program
CN111078119B (zh) 一种数据重建方法、系统、装置及计算机可读存储介质
CN110389817B (zh) 多云系统的调度方法、装置和计算机可读介质
Zhang et al. An optimal container update method for edge‐cloud collaboration

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