一种基于Cyborg管理的直通GPU虚机冷迁的方法与流程

未命名 10-22 阅读:92 评论:0
一种基于cyborg管理的直通gpu虚机冷迁的方法
技术领域
1.本发明涉及云计算技术领域,具体为一种基于cyborg管理的直通gpu虚机冷迁的方法。


背景技术:

2.开源的云平台管理系统主要基于openstack实现,openstack控制整个数据中心的计算、存储和网络资源。
3.现有技术中,加速设备尤其是gpu既是数据中心的基础设施,也是高性能计算的主要计算资源。其作为一种物理计算资源,通过cyborg组件可以方便地将裸机纳入openstack的计算服务nova的管理之下,在调度计算资源时,仅需要指定flavor中的device_profile,便可以方便地将gpu添加到实例上,实现了虚拟机资源使用统一的接口和相似的流程对加速资源的管理。
4.但是,cyborg对管理的虚拟机支持并不完善,带有cyborg管理的gpu的虚拟机并无法完成冷迁移等操作,但是冷迁操作是云平台应至少满足的基本操作。


技术实现要素:

5.本发明的目的在于提供一种基于cyborg管理的直通gpu虚机冷迁的方法,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案:一种基于cyborg管理的直通gpu虚机冷迁的方法,所述方法包括以下步骤:
7.部署cyborg及其相关服务;
8.找到集群中拥有直通gpu设备的虚机,并上报给placement数据库;
9.基于cyborg的device_profile创建的虚机会有相关字段记录在resource_spec中;
10.冷迁移时会通过resource_spec中的accel:device_profile字段获取cyborg中的device_profile;
11.从获取到的device_profile中的加速设备请求来调度冷迁移目标计算节点;
12.冷迁移之后的虚拟机会重新分配相关计算节点的资源,包括vcpus、ram、disk、pgpu。
13.优选的,部署cyborg及其相关服务的具体操作包括:
14.cyborg提供加速服务,cyborg-api接收对加速资源的api请求,cyborg-conductor提供cyborg数据库的读写服务,cyborg-agent提供对加速资源数据模型的构建。
15.优选的,部署cyborg及其相关服务的具体操作还包括:
16.nova提供计算服务,nova-api提供对虚机的api请求,nova-conductor提供对nova、nova-api数据库的读写服务。
17.优选的,部署cyborg及其相关服务的具体操作还包括:
18.placement提供资源检查服务,placement提供对资源请求的api和placement数据库读写服务。
19.优选的,找到集群中拥有直通gpu设备的虚机,并上报给placement数据库具体操作包括:
20.在cyborg-agent中配置pgpu的pci号,发现计算节点的pci设备,并记录在cyborg数据库中,cyborg-conductor会上报给placement,记录厂商id、产品id、pci号字段。
21.优选的,基于cyborg的device_profile创建的虚机会有相关字段记录在resource_spec中时,,cyborg管理的加速设备的请求记录在数据模型中,便于冷迁移操作检查虚机规格。
22.优选的,冷迁移时会通过resource_spec中的accel:device_profile字段获取cyborg中的device_profile时,从resource_spec获取到的accel:device_profile从cyborg中获取到相应的加速设备的请求,用于nova-scheduler的调度。
23.优选的,冷迁移之后的虚拟机会重新分配相关计算节点的资源中,placement数据库中的分配记录,由于冷迁移导致计算节点变更,使用的资源会从源节点变到目标节点,直通gpu资源的变动,在新计算节点的直通gpu上分配相应需求的资源,并将源计算节点分配的资源删除。
24.与现有技术相比,本发明的有益效果是:
25.本发明提出的基于cyborg管理的直通gpu虚机冷迁的方法,对加速设备的管理从nova中分离出来,使nova进一步专精于虚机的生命周期管理,而对cyborg管理加速设备的虚机支持冷迁移更健全了cyborg对加速设备的管理。
具体实施方式
26.为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.实施例一
28.本发明提供一种技术方案:一种基于cyborg管理的直通gpu虚机冷迁的方法,方法包括以下步骤:
29.部署cyborg及其相关服务;
30.找到集群中拥有直通gpu设备的虚机,并上报给placement数据库;
31.基于cyborg的device_profile创建的虚机会有相关字段记录在resource_spec中;
32.冷迁移时会通过resource_spec中的accel:device_profile字段获取cyborg中的device_profile;
33.从获取到的device_profile中的加速设备请求来调度冷迁移目标计算节点;
34.冷迁移之后的虚拟机会重新分配相关计算节点的资源,包括vcpus、ram、disk、pgpu。
35.实施例二
36.在实施例一的基础上,具体实现包括如下步骤:
37.1.部署openstack相关服务:cyborg提供加速服务(cyborg-api接收对加速资源的api请求,cyborg-conductor提供cyborg数据库的读写服务,cyborg-agent提供对加速资源数据模型的构建);nova提供计算服务(nova-api提供对虚机的api请求,nova-conductor提供对nova、nova-api数据库的读写服务);placement提供资源检查服务(placement提供对资源请求的api和placement数据库读写服务);
38.2.上报直通gpu设备:通过在cyborg-agent中配置pgpu的pci号,可以发现计算节点的pci设备,并记录在cyborg数据库中,cyborg-conductor会上报给placement,记录厂商id、产品id、pci号等字段;
39.3.创建device_profile:在device_profile中指定resource_class为pgpu以及请求的个数。
40.4.创建直通gpu虚拟机,通过flavor中记录accel:device_profile属性指定device_profile,这样创建出来的虚拟机会带有指定的直通gpu;
41.5.创建虚拟机过程中,需要在resource_spec这个数据模型中记录虚拟机所使用的device_profile;
42.6.执行虚拟机冷迁移:对直通gpu虚拟机执行冷迁后,nova会创建一个migration任务实例,在迁移之前会检查虚拟机的resource_spec数据模型中的accel字段是否指定有device_profile,如果有该字段,则需要在scheduler时调用cyborg-api获取device_profile,并在调度时考虑目标计算节点是否满足需求;
43.7.nova从resource_spec数据模型中获取accel字段中的device_profile,调用cyborg-api获取到device_profile后,nov-scheduler重新调度到满足device_profile中需求的目标计算节点,nova-compute调用cyborg-api创建并绑定与新计算节点的accelerator_request,解绑并删除与源计算节点的accelerator_request;
44.8.nova-compute在目标节点创建虚机时,claim对象在placement中扣除了在新计算节点上resource_provider的资源,并删除了在旧计算节点resource_provider的资源分配。
45.实施例三
46.在实施例二的基础上,nova创建虚机时,使用cyborg来添加加速设备,使用cyborg管理加速设备的主要过程:
47.①
cyborg会根据cyborg-agent调用对应的driver发现计算节点的gpu设备,并就他们记录到cyborg数据库,并将资源按照相应的资源类型和特征上报给placement数据库,从而可以被调度;
48.②
创建device_profile,其中记录了对gpu资源的请求信息,包括所请求gpu设备的特征trait(需提前在placement中添加并设置),以及对这类资源的请求数量,直通的gpu数量或为多个;
49.③
创建flavor,将device_profile以属性的形式添加到flavor中,属性的键值为accel:device_profile;
50.④
nova以这个flavor创建的虚机在冷迁时,在调度计算节点前会调用cyborg-api向cyborg获取resource_spec中获取这个device_profile;
51.⑤
从获取到的device_profile中提取对gpu资源的请求,交给nova-scheduler来调度;
52.⑥
nova-scheduler会先调用placement重新筛选vcpu、ram、disk、pgpu等资源,根据请求信息调度到相关节点,claim对象扣除新计算节点的资源,并删除旧计算节点的资源;
53.⑦
调度流程回到nova-scheduler走完剩余的过滤之后确定出一个节点,nova会调用placement占用资源,将请求的资源标记为已分配;
54.⑧
在确定了计算节点之后,nova-conductor会以异步的形式调用cyborg-api,请求创建并绑定arq;
55.⑨
cyborg-api接收到请求之后会调用cyborg-agent创建arq,然后根据http的请求信息中的hostname和resource_provider_uuid添加到arq中完成绑定,并将旧的arq解绑并删除
56.⑩
cyborg-agent完成绑定arq之后会通过http给nova发送通知
57.创建流程移交给所调度节点的nova-compute,nova-compute会开始准备准备各种资源创建虚机,之后会等候nova-api接收到cyborg及其他服务发来的通知;
58.nova-api接收到cyborg完成绑定arq的通知后会调用rpc告知nova-compute;
59.nova-compute接收到通知后会调用libvirt将gpu设备的信息写入xml中,之后完成创建流程
60.由此,只要基于此流程,cyborg管理的gpu虚机就可以实现冷迁移操作。
61.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术特征:
1.一种基于cyborg管理的直通gpu虚机冷迁的方法,其特征在于:所述方法包括以下步骤:部署cyborg及其相关服务;找到集群中拥有直通gpu设备的虚机,并上报给placement数据库;基于cyborg的device_profile创建的虚机会有相关字段记录在resource_spec中;冷迁移时会通过resource_spec中的accel:device_profile字段获取cyborg中的device_profile;从获取到的device_profile中的加速设备请求来调度冷迁移目标计算节点;冷迁移之后的虚拟机会重新分配相关计算节点的资源,包括vcpus、ram、disk、pgpu。2.根据权利要求1所述的一种基于cyborg管理的直通gpu虚机冷迁的方法,其特征在于:部署cyborg及其相关服务的具体操作包括:cyborg提供加速服务,cyborg-api接收对加速资源的api请求,cyborg-conductor提供cyborg数据库的读写服务,cyborg-agent提供对加速资源数据模型的构建。3.根据权利要求2所述的一种基于cyborg管理的直通gpu虚机冷迁的方法,其特征在于:部署cyborg及其相关服务的具体操作还包括:nova提供计算服务,nova-api提供对虚机的api请求,nova-conductor提供对nova、nova-api数据库的读写服务。4.根据权利要求2所述的一种基于cyborg管理的直通gpu虚机冷迁的方法,其特征在于:部署cyborg及其相关服务的具体操作还包括:placement提供资源检查服务,placement提供对资源请求的api和placement数据库读写服务。5.根据权利要求1所述的一种基于cyborg管理的直通gpu虚机冷迁的方法,其特征在于:找到集群中拥有直通gpu设备的虚机,并上报给placement数据库具体操作包括:在cyborg-agent中配置pgpu的pci号,发现计算节点的pci设备,并记录在cyborg数据库中,cyborg-conductor会上报给placement,记录厂商id、产品id、pci号字段。6.根据权利要求1所述的一种基于cyborg管理的直通gpu虚机冷迁的方法,其特征在于:基于cyborg的device_profile创建的虚机会有相关字段记录在resource_spec中时,,cyborg管理的加速设备的请求记录在数据模型中,便于冷迁移操作检查虚机规格。7.根据权利要求1所述的一种基于cyborg管理的直通gpu虚机冷迁的方法,其特征在于:冷迁移时会通过resource_spec中的accel:device_profile字段获取cyborg中的device_profile时,从resource_spec获取到的accel:device_profile从cyborg中获取到相应的加速设备的请求,用于nova-scheduler的调度。8.根据权利要求1所述的一种基于cyborg管理的直通gpu虚机冷迁的方法,其特征在于:冷迁移之后的虚拟机会重新分配相关计算节点的资源中,placement数据库中的分配记录,由于冷迁移导致计算节点变更,使用的资源会从源节点变到目标节点,直通gpu资源的变动,在新计算节点的直通gpu上分配相应需求的资源,并将源计算节点分配的资源删除。

技术总结
本发明涉及云计算技术领域,具体为一种基于Cyborg管理的直通GPU虚机冷迁的方法,包括以下步骤:部署Cyborg及其相关服务;找到集群中拥有直通GPU设备的虚机,并上报给placement数据库;基于Cyborg的device_profile创建的虚机会有相关字段记录在resource_spec中;冷迁移时会通过resource_spec中的accel:device_profile字段获取cyborg中的device_profile;从获取到的device_profile中的加速设备请求来调度冷迁移目标计算节点;冷迁移之后的虚拟机会重新分配相关计算节点的资源,包括vcpus、ram、disk、pgpu;有益效果为:本发明提出的基于Cyborg管理的直通GPU虚机冷迁的方法,对加速设备的管理从Nova中分离出来,使Nova进一步专精于虚机的生命周期管理,而对Cyborg管理加速设备的虚机支持冷迁移更健全了Cyborg对加速设备的管理。设备的管理。


技术研发人员:谢涛涛 孙兴艳 宋伟 申嘉童
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:2023.06.26
技术公布日:2023/10/19
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐