一种云场景下强制同节点云主机批量撤离方法与系统与流程

文档序号:34377304发布日期:2023-06-07 23:42阅读:34来源:国知局
一种云场景下强制同节点云主机批量撤离方法与系统与流程

本发明涉及云计算领域,具体涉及一种云场景下强制同节点云主机批量撤离方法与系统。


背景技术:

1、目前云计算产品基本都有云主机组的功能,云主机组策略有四种,“强制同节点”、“强制不同节点”、“尽量同节点”、“尽量不同节点”,按照不同的组策略可以将多台云主机分成不同的组(注:云主机组在逻辑上可以理解为一组云主机,实际在云计算领域中云主机组表达的是一种调度策略,按照此策略可以将云主机调度到对应的节点上进行创建);

2、一组“强制同节点”云主机的使用场景:如企业用户使用多台云主机,组成集群运行业务,需要集群中的云主机都运行在同一节点上,便于可以实现最快内存共享,提升统一管理和运维效率,那么只需在创建这些云主机时,指定server_group参数为“强制同节点”的云主机组,即可让创建出的云主机都运行在同一节点上;

3、当遇到物理服务器(以下称节点)异常宕机、停电、网络中断等情况,节点上运行的云主机需要迅速(2分钟内)撤离到其他节点上,云原生及当前大部分云产品都没有实现撤离一组满足组策略(强制调度到同一计算节点)的云主机的功能,即被撤离的多台云主机如果其属性server_group被指定为组策略是“强制调度到同一计算节点”,一定会撤离失败;

4、假设有一组应用组策略“强制调度到同一计算节点”调度并创建的云主机(共5台),其所在宿主节点发生宕机需要撤离到其他节点以保证云主机可以继续使用,且物理集群(集群可以使用云主机组成,也可使用物理节点组成,此处表达物理节点组成的集群)中有未宕机的可用节点50台,云原生撤离流程中的节点调度器servergroupaffinityfilter会直接调度失败,导致组内所有虚拟机不能被撤离;

5、若忽略调度过程中云主机组策略的filter限制使得云主机可能被调度成功并且撤离到其他节点,也存在以下问题:

6、若采用随机调度并撤离,则不能保证这一组云主机全部成功撤离到同一节点上,从而与撤离前这组云主机的“强制同节点”调度策略相悖;

7、若采用指定节点调度并撤离,则可能因该节点资源不足或其他原因出现部分撤离成功部分撤离失败,且撤离成功的云主机无法回滚到宕机节点,且耗时较长。


技术实现思路

1、本发明要解决的技术问题是当遇到物理服务器异常宕机、停电、网络中断等情况,物理服务器上运行的云主机组需要迅速(2分钟内)撤离到其他物理服务器上,云原生及当前大部分云产品都没有实现撤离一组满足组策略(强制调度到同一计算物理服务器)的虚拟机的功能,本发明提供一种云场景下强制同节点云主机批量撤离方法,本发明还提供一种云场景下强制同节点云主机批量撤离系统,能够满足云主机组策略的撤离限制,可将所有云主机快速批量撤离到同一可用节点上,可极大提升撤离成功率,不会出现部分成功部分失败的不一致问题,用以解决现有技术导致的缺陷。

2、为解决上述技术问题本发明提供以下的技术方案:

3、第一方面,一种云场景下强制同节点云主机批量撤离方法,其中,包含以下步骤:

4、步骤1:获取节点宕机时所述节点上所有云主机信息组成第一云主机列表;

5、步骤2:获取所述第一云主机列表中所有满足撤离条件的所述云主机处理得到第二云主机列表;

6、步骤3:遍历所述第二云主机列表,并从资源数据库中选取满足所述第二云主机列表中所有所述云主机所需资源的第一可用节点列表并进行排序后得到第二可用节点列表;

7、步骤4:顺序选取所述第二可用节点列表中第一个节点并将所述第二云主机列表中所有的所述云主机在所述第一个节点上进行资源占用,并获取占用成功的节点资源占用记录;

8、步骤5:判断所述第二云主机列表中所有的所述云主机是否都占用成功;

9、是,则生成调度成功反馈数据;

10、否,则删除所述资源数据库中的所述节点资源占用记录;

11、步骤6:顺序选取所述第二可用节点列表中下一个节点并将所述第二云主机列表中所有的所述云主机在该节点上进行资源占用,并获取占用成功的所述节点资源占用记录;

12、步骤7:重复步骤5-6遍历完第二可用节点列表后若所述云主机未占用成功,则生成调度失败反馈数据;

13、步骤8:根据所述调度成功反馈数据批量重建所述第二云主机列表中的所有所述云主机,所有所述云主机都重建成功则撤离成功,否则撤离失败。

14、上述的一种云场景下强制同节点云主机批量撤离方法,其中,步骤2中的所述撤离条件包含云主机状态是运行中、运行的节点是宕机节点、被指定了“强制同节点”组策略,同时满足上述三个条件的所有所述云主机组成第三云主机列表;

15、遍历所述第三云主机列表根据所述云主机所需资源信息构建出第四云主机列表,并进行排序后得到所述第二云主机列表。

16、上述的一种云场景下强制同节点云主机批量撤离方法,其中,所述第四云主机列表的排序规则为:

17、先按照nuam节点数排序,nuam节点数一致的,按照resource云主机所需资源得分排序,所述nuam节点数、所述resource得分多的排前面。

18、上述的一种云场景下强制同节点云主机批量撤离方法,其中,步骤3中遍历所述第二云主机列表,为每一个所述云主机构建第一资源请求对象记为request_spec对象并发送至所述资源数据库,在所述资源数据库中根据所述资源请求对象为每个所述云主机构建出所述第三可用节点列表;

19、取所有所述第三可用节点列表的交集得到第四可用节点列表;

20、取所述第二云主机列表中每个所述云主机所需的物理设备资源并合并成第二资源请求对象记为request_spec对象,从所述资源数据库中获取满足所有所述云主机一起创建时所需的物理设备资源的第五可用节点列表,取所述第四可用节点列表与所述第五可用节点列表的交集得到所述第一可用节点列表;

21、对所述第一可用节点列表进行排序得到所述第二可用节点列表。

22、上述的一种云场景下强制同节点云主机批量撤离方法,其中,上述的一种云场景下强制同节点云主机批量撤离方法,其中,第一资源请求对象由创建相对应云主机的cpu、内存、物理设备组成;

23、所述第一可用节点列表包含满足当前所述云主机单独创建的所有可用节点与每个可用节点的节点资源剩余数量得分;

24、所述资源剩余数量得分的计算方式如下:剩余1cpu得4分,1g内存得1分,1物理设备得1分;

25、所述第一可用节点列表按照所述节点资源剩余量得分由高到低进行排序得到所述第二可用节点列表。

26、第二方面,一种云场景下强制同节点云主机批量撤离系统,其中,包含数据处理模块、资源数据库、调度模块、重建模块;

27、所述数据处理模块用于获取节点宕机时所述节点上所有云主机信息组成第一云主机列表;还用于获取所述第一云主机列表中所有满足撤离条件的所述云主机处理得到第二云主机列表;还用于遍历所述第二云主机列表,并从所述资源数据库中选取满足所述第二云主机列表中所有所述云主机的第一可用节点列表并进行排序后得到第二可用节点列表;

28、所述调度模块用于顺序选取所述第二可用节点列表中第一个节点并将所述第二云主机列表中所有的所述云主机在所述第一个节点上进行资源占用,并获取占用成功的节点资源占用记录;判断所述第二云主机列表中所有的所述云主机是否都占用成功;是,则生成调度成功反馈数据;否,则删除所述资源数据库中的所述节点资源占用记录;还用于顺序选取所述第二可用节点列表中下一个节点并将所述第二云主机列表中所有的所述云主机在该节点上进行资源占用,并获取占用成功的所述节点资源占用记录;重复遍历完第二可用节点列表后若所述云主机未占用成功,则生成调度失败反馈数据;

29、所述重建模块用于根据所述调度成功反馈数据批量重建所述第二云主机列表中的所有所述云主机,所有所述云主机都重建成功则撤离成功,否则撤离失败。

30、第三方面,一种芯片,其中,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行:如第一方面中任一项所述的方法。

31、依据上述本发明一种云场景下强制同节点云主机批量撤离方法与系统提供的技术方案具有以下技术效果:

32、能够满足云主机组策略的撤离限制,可将所有云主机快速批量撤离到同一可用节点上,可极大提升撤离成功率,不会出现部分成功部分失败的不一致问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1