一种基于租户独享宿主机实现动态分配云资源的方法与流程

文档序号:26953497发布日期:2021-10-16 02:42阅读:187来源:国知局
一种基于租户独享宿主机实现动态分配云资源的方法与流程

1.本发明涉及云计算领域,具体地说是一种基于租户独享宿主机实现动态分配云资源的方法。


背景技术:

2.宿主机是指要安装虚拟机软件的计算机,是承载用户虚拟机的物理机。
3.虚拟机是指利用虚拟机工具构造出来的,有一整套硬件设备,有自己操作系统,应用软件。
4.云服务提供商所配置的宿主机的数量通常为上千台,甚至于上万台,但是,现有技术中,宿主机集群的可用资源都是集中调度,宿主机的数量越多,遍历所有宿主机的时间越长,进而导致宿主机调度时间越长。
5.openstack项目是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。openstack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人将openstack作为基础设施即服务资源的通用前端。openstack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
6.故如何利用openstack前端来设置及管理自己的公共云或私有云,满足用户资源独享、资源物理隔离、安全、合规的需求目前亟待解决的问题。


技术实现要素:

7.本发明的技术任务是提供一种基于租户独享宿主机实现动态分配云资源的方法,来解决如何利用openstack前端来设置及管理自己的公共云或私有云,满足用户资源独享、资源物理隔离、安全、合规的需求的问题。
8.本发明的技术任务是按以下方式实现的,一种基于租户独享宿主机实现动态分配云资源的方法,该方法通过划分主机聚合的方式实现独享宿主机,为租户提供用户独享的物理服务器资源,满足用户资源独享、资源物理隔离、安全且合规的需求;具体如下:
9.预置主机聚合:将所有用于专有宿主机的机型放在一个主机聚合中;
10.自动创建租户主机聚合;
11.创建独享宿主机;
12.销毁独享宿主机;
13.在独享宿主机上创建虚拟机。
14.其中,主机聚合是来分配物理资源的集合,虚拟化产品通过openstack nova组件按照正常的算法和衡量权重分配租主机资源。
15.作为优选,主机聚合的元数据具体如下:
16.spec:专有宿主机的机型;
17.service:产品ddh;
18.type:可使用的虚拟机机型;
19.product:其上要建的产品,ecs;
20.availability_zone:可用域。
21.更优地,预置主机聚合指定至少一个定时任务,每天执行一次;并将主机聚合的元数据中每个宿主机的超配比更新下,规则为:ddh_std_48c64g_96c128g;其中,ddh_std_48c64g_96c128g表示物理的cpu是48核,内存是64g,超配比之后是虚拟的cpu是96核,内存是128g。
22.作为优选,预置主机聚合过程中通过调用nova接口获取主机聚合中对应的列表,具体如下:
23.调用主机聚合列表,即调用os

aggregates接口,获取元数据中的spec包含ddh(不区分大小写)的主机聚合,得到该主机聚合的id及该主机聚合下所有的宿主机列表,即返回list aggregates;
24.调用resource_providers接口,得到所有provides的信息,provides的信息包括id和name,根据调用os

aggregates接口得到的每个主机聚合下的主机列表的name,去匹配对应的provides,得到每个主机聚合下包含的provides的id列表,即返回list resource providers;
25.调用resource provider inventories接口,得到每个provide的信息,provide的信息包括实际值和超配比,注意内存是mb的,将指定主机聚合下所有provides的名称和超配信息保存好,即返回list resource provider inventories;
26.更新对应的主机聚合的元数据,有对应的provide变动则更新;新增provides则追加,不要覆盖;更新或追加的类似:compute01:ddh_std_48c64g_96c128g。
27.作为优选,自动创建租户主机聚合具体如下:
28.每个租户购买的独享宿主机放在单独的各自的主机聚合中,主机聚合的命名格式:产品_az_机型_用户名;产品目前是ecs,机型是spec,即总主机聚合中的type;该主机聚合的元数据具体如下:
29.spec:与type一致;
30.service:ecs;
31.belong:用户名;
32.compute01:test01:表示用户定义的宿主机的名称;
33.compute02:test02:用户定义的宿主机的名称;
34.availability_zone:可用域。
35.作为优选,创建独享宿主机过程中,购买的独享宿主机时,具体如下:
36.获取所有的主机聚合的列表,根据传过来的机型及产品,找到对应的主机聚合(product为ecs,机型与主机聚合中的spec对应),获取该主机聚合的元数据,根据传入的规格获取对应的主机列表(ddh_48c64g96vc128vg);
37.获取用户的名称,判断是否有包含用户名称的主机聚合:
38.①
、若有,则随机将得到的主机列表中的一台添加到该主机聚合内,同时更新元数据,在元数据后面追加计算节点:用户指定的名称;
39.②
、若没有,则新建主机聚合,根据规范命名及机型取主机聚合中的type,再添加
主机及对应的元数据,并在元数据中写上计算节点:用户指定的名称;
40.从预置的主机聚合中移除该宿主机;
41.返回创建结果到mq中。
42.更优地,购买独享宿主机的任务添加分布式锁,避免同时购买时取到的主机列表一样,随机选择出的宿主机重复。
43.作为优选,销毁独享宿主机具体如下:
44.当独享宿主机到期后,虚拟机系统会发起停服的请求,根据传入的host信息调用接口将此节点的调度服务停掉,同时需要验证停掉调度服务后虚拟机是否正常使用;其中,调用接口为os

services/disable,返回disable scheduling for a compute service;
45.停服后,若7天没有续费,则会进行释放,虚拟机系统通知产品侧进行资源释放,释放该宿主机;
46.独享宿主机销毁后移入大池子中,即预置的主机聚合中,再将该宿主机的调度服务开启(后续可分配给其他用户),并更新用户的主机聚合的元数据,将对应节点的(计算节点:用户指定的名称)对应项去掉;同时其上的云服务器要全部删除(逻辑上与普通按需云服务器保持一致,全部硬删)。
47.作为优选,在独享宿主机上创建虚拟机具体如下:
48.使用管理员角色的用户创建,将管理员账号关联到该用户下,设置token为该用户的project即可;
49.指定单个宿主机或选择该用户下该机型所有的宿主机;其中,选择所有的宿主机时,使用nova内部调度算法;
50.对于flavor的处理,先查询所有的主机聚合列表,根据产品类型,找到对应的主机聚合,具体为:
51.若对应的主机聚合中有belong的属性,则flavor中也添加对应的属性,因为flavor的名字是唯一的,所以flavor的名字也加上用户名(已验证,即使flavor和主机聚合不匹配,只要指定host创建,也会落在指定的host上,这样可以不用查询主机聚合,所有的用户,只要机型一样,用相同的flavor,但是变更规格的时候,重新调度,可能落到别的用户的宿主机上);
52.调用创建接口,创建虚拟机。
53.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如上述的一种基于租户独享宿主机实现动态分配云资源的方法。
54.本发明的基于租户独享宿主机实现动态分配云资源的方法具有以下优点:
55.(一)本发明能够保障租户的物理服务器资源的独享,用户自行规划独享宿主机上业务的部署,在充分利用资源的同时避免资源抢占;
56.(二)本发明给租户提供用户独享的物理服务器资源,满足用户资源独享、资源物理隔离、安全、合规的需求;
57.(三)本发明通过独享的宿主机借助虚拟化系统,用户可以在其上灵活灵活创建、管理多个标准规格及自定义规格的云服务器实例,自主规划物理资源的使用。
附图说明
58.下面结合附图对本发明进一步说明。
59.附图1为基于租户独享宿主机实现动态分配云资源的方法的示意图;
60.附图2为预置主机聚合的示意图。
具体实施方式
61.参照说明书附图和具体实施例对本发明的一种基于租户独享宿主机实现动态分配云资源的方法作以下详细地说明。
62.实施例1:
63.如附图1所示,本发明的基于租户独享宿主机实现动态分配云资源的方法,该方法通过划分主机聚合的方式实现独享宿主机,为租户提供用户独享的物理服务器资源,满足用户资源独享、资源物理隔离、安全且合规的需求;具体如下:
64.s1、预置主机聚合:将所有用于专有宿主机的机型放在一个主机聚合中;
65.s2、自动创建租户主机聚合;
66.s3、创建独享宿主机;
67.s4、销毁独享宿主机;
68.s5、在独享宿主机上创建虚拟机。
69.其中,主机聚合是来分配物理资源的集合,虚拟化产品通过openstack nova组件按照正常的算法和衡量权重分配租主机资源。
70.如附图2所示,本实施例中主机聚合的元数据具体如下:
71.spec(专有宿主机的机型);
72.service(产品ddh);
73.type(可使用的虚拟机机型);
74.product(其上要建的产品,ecs);
75.availability_zone(可用域)。
76.对于预置主机聚合,指定一个定时任务,每天执行一次;并将主机聚合的元数据中每个宿主机的超配比更新下,规则为:ddh_std_48c64g_96c128g;其中,ddh_std_48c64g_96c128g表示物理的cpu是48核,内存是64g,超配比之后是虚拟的cpu是96核,内存是128g。
77.本实施例中步骤s1的预置主机聚合过程中通过调用nova接口获取主机聚合中对应的列表,具体如下:
78.s101、调用主机聚合列表,即调用os

aggregates接口,获取元数据中的spec包含ddh(不区分大小写)的主机聚合,得到该主机聚合的id及该主机聚合下所有的宿主机列表,即返回list aggregates;
79.s102、调用resource_providers接口,得到所有provides的信息,provides的信息包括id和name,根据调用os

aggregates接口得到的每个主机聚合下的主机列表的name,去匹配对应的provides,得到每个主机聚合下包含的provides的id列表,即返回list resource providers;
80.s103、调用resource provider inventories接口,得到每个provide的信息,provide的信息包括实际值和超配比,注意内存是mb的,将指定主机聚合下所有provides的
名称和超配信息保存好,即返回list resource provider inventories;
81.s104、更新对应的主机聚合的元数据,有对应的provide变动则更新;新增provides则追加,不要覆盖;更新或追加的类似:compute01:ddh_std_48c64g_96c128g。
82.本实施例步骤s2的自动创建租户主机聚合具体如下:
83.每个租户购买的独享宿主机放在单独的各自的主机聚合中,主机聚合的命名格式:产品_az_机型_用户名;产品目前是ecs,机型是spec(也是总主机聚合中的type);该主机聚合的元数据具体如下:
84.spec(与上面的type一致);
85.service(ecs);
86.belong(用户名);
87.compute01:test01(用户定义的宿主机的名称);
88.compute02:test02(用户定义的宿主机的名称);
89.availability_zone(可用域)。
90.本实施例中步骤s3的创建独享宿主机过程中,购买的独享宿主机时,具体如下:
91.s301、获取所有的主机聚合的列表,根据传过来的机型及产品,找到对应的主机聚合(product为ecs,机型与主机聚合中的spec对应),获取该主机聚合的元数据,根据传入的规格获取对应的主机列表(ddh_48c64g96vc128vg);
92.s302、获取用户的名称,判断是否有包含用户名称的主机聚合:
93.①
、若有,则随机将得到的主机列表中的一台添加到该主机聚合内,同时更新元数据,在元数据后面追加计算节点:用户指定的名称;
94.②
、若没有,则新建主机聚合,根据规范命名及机型取主机聚合中的type,再添加主机及对应的元数据,并在元数据中写上计算节点:用户指定的名称;
95.s303、从预置的主机聚合中移除该宿主机;
96.s304、返回创建结果到mq中。
97.其中,购买独享宿主机的任务添加分布式锁,避免同时购买时取到的主机列表一样,随机选择出的宿主机重复。
98.本实施例中步骤s4的销毁独享宿主机具体如下:
99.s401、当独享宿主机到期后,虚拟机系统会发起停服的请求,根据传入的host信息调用接口将此节点的调度服务停掉,同时需要验证停掉调度服务后虚拟机是否正常使用;其中,调用接口为os

services/disable,返回disable scheduling for a compute service;
100.s402、停服后,若7天没有续费,则会进行释放,虚拟机系统通知产品侧进行资源释放,释放该宿主机;
101.s403、独享宿主机销毁后移入大池子中,即预置的主机聚合中,再将该宿主机的调度服务开启(后续可分配给其他用户),并更新用户的主机聚合的元数据,将对应节点的(计算节点:用户指定的名称)对应项去掉;同时其上的云服务器要全部删除(逻辑上与普通按需云服务器保持一致,全部硬删)。
102.本实施例中步骤s5的在独享宿主机上创建虚拟机具体如下:
103.s501、创建虚拟机时,使用管理员角色的用户创建,将管理员账号关联到该用户
下,设置token为该用户的project即可;
104.s502、创建虚拟机时,指定单个宿主机或选择该用户下该机型所有的宿主机;其中,选择所有的宿主机时,使用nova内部调度算法;
105.s503、创建虚拟机时,对于flavor的处理,先查询所有的主机聚合列表,根据产品类型,找到对应的主机聚合,具体为:
106.若对应的主机聚合中有belong的属性,则flavor中也添加对应的属性,因为flavor的名字是唯一的,所以flavor的名字也加上用户名(已验证,即使flavor和主机聚合不匹配,只要指定host创建,也会落在指定的host上,这样可以不用查询主机聚合,所有的用户,只要机型一样,用相同的flavor,但是变更规格的时候,重新调度,可能落到别的用户的宿主机上);
107.s504、调用创建接口,创建虚拟机。
108.实施例2:
109.本发明实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的一种基于租户独享宿主机实现动态分配云资源的方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
110.在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
111.用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd

rom、cd

r、cd

rw、dvd

rom、dvd

ram、dvd

rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
112.此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
113.此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
114.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1