System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种针对GPU组件平滑迁移的方法技术_技高网

一种针对GPU组件平滑迁移的方法技术

技术编号:40958439 阅读:5 留言:0更新日期:2024-04-18 20:35
本发明专利技术公开了一种针对GPU组件平滑迁移的方法,涉及云计算领域领域,部署新的GPU虚拟化组件v2;新的GPU虚拟化组件v2向集群中注册该节点上可用的GPU资源;通过调资源分配allocate方法分配合适的GPU资源;监听checkpoint文件的变化,当基于v1组件实现的旧容器释放出GPU资源时,让调度器scheduler及时感知,同时把资源纳管到可用的GPU资源列表中来;采用v1组件部署的容器下线,把容器释放出来的资源及时让v2感知到,完成从v1全部切换到v2,采用平滑迁移的方式,一方面对存量服务无感知,无损害,确保平稳运行,另一方面让新服务采用新的方案,做到了新旧服务共存,存量服务随着生命周期的结束慢慢下线,新服务采用新组件不断上线,实现了优雅迁移的目的。

【技术实现步骤摘要】

本专利技术属于云计算领域,尤其涉及一种针对gpu组件平滑迁移的方法。


技术介绍

1、众所周知gpu虚拟化技术通过分时复用,增加了任务并发度,提高了服务质量(qos),增强了公平性,进而显著的提升了资源利用率,尤其是gpu虚拟化技术与docker和k8s的组合,进一步释放出了虚拟化技术的巨大的潜力。与此同时多种gpu虚拟化(mps,nvidia-vgpu,cgpu,qgpu,nvidia-mig)如雨后春笋般显露出来,一方面给我们提供更好的技术选型,更优秀的虚拟化方案,但是另一方面,从一种虚拟化技术向另外一种虚拟化技术迁移时就存在技术障碍,在实践过程中就遇到了迁移失败的问题,如果采用硬迁移,需要先下线旧服务(存量服务),再删除旧的gpu虚拟化组件,这个过程不仅费时费力,还存在服务中断不可用问题,这对用户来说显然是不友好的,最好的方式是采用平滑迁移的方式,旧服务保持不变,随着它生命周期的结束再慢慢下线,同时新服务基于新方案再慢慢上线,逐步的完成新老替换的过程。具体来说,在生产环境中,从第一代虚拟化技术vgpu(后续简称v1)迁移到第二代虚拟化技术qgpu(后续简称v2)过程中,一方面既要确保旧服务(存量的)稳定运行,另一方面又要保证新服务能正确的调度以及资源分配,同时确保新旧服务在运行过程中实现资源隔离,故障隔离等核心问题。这是因为当从v1迁移到v2时,看不到已经被v1占用的资源,也就是说从v2的视角来看会存在算力,显存,以及拓扑信息的数据盲区,进而导致新服务会抢占旧服务的显存和算力的问题,导致服务出现新服务出现out of memory等严重问题。


技术实现思路

1、本专利技术所要解决的技术问题是针对
技术介绍
的不足提供一种针对gpu组件平滑迁移的方法;从v2的视角来能看到全局的资源,尤其是已经被v1占用的资源,确保不会抢占共享资源,才能解决从v1迁移到v2过程中实现平滑迁移的问题。

2、本专利技术为解决上述技术问题采用以下技术方案:

3、一种针对gpu组件平滑迁移的方法,具体包含如下步骤;

4、步骤1,部署新的gpu虚拟化组件v2;

5、步骤2,新的gpu虚拟化组件v2向集群中注册该节点上可用的gpu资源;

6、步骤3,当有容器调度到节点后,通过调资源分配allocate方法分配合适的gpu资源;

7、步骤4,监听检查点checkpoint文件的变化,当基于v1组件实现的旧容器释放出gpu资源时,让调度器scheduler及时感知,同时把资源纳管到可用的gpu资源列表中来;

8、步骤5,重复步骤1至步骤4,采用v1组件部署的容器下线,把容器释放出来的资源及时让v2感知到,完成从v1全部切换到v2,完成gpu组件的平滑迁移。

9、作为本专利技术针对gpu组件平滑迁移的方法的进一步优选方案,在步骤1中,通过yaml的方式部署新的gpu虚拟化组件v2;其中,yaml是一种数据格式。

10、作为本专利技术针对gpu组件平滑迁移的方法的进一步优选方案,新的gpu虚拟化组件v2通过kubelet向集群中注册该节点上可用的gpu资源;其中,kubelet是k8s里面一个管理组件。

11、作为本专利技术针对gpu组件平滑迁移的方法的进一步优选方案,在步骤2中,通过device server向kubelet的上报设备信息,扣除当前节点node上采用v1组件已使用的gpu资源,让调度器scheduler从v2的角度看到当前节点还能使用的总资源;其中,deviceserver是设备的服务端。

12、作为本专利技术针对gpu组件平滑迁移的方法的进一步优选方案,在步骤3中,调资源分配allocate过程中,采用v2组件分配新的gpu资源,且不能与采用v1组件分配旧的gpu资源有冲突。

13、作为本专利技术针对gpu组件平滑迁移的方法的进一步优选方案,所述步骤2具体包含如下步骤;

14、步骤2.1,解析kubelet_internal_checkpoint中信息,获取容器的gpu卡信息;其中,kubelet_internal_checkpoint是一个文件的名称,即有一个在k8s里面特殊的文件叫kubelet_internal_checkpoint;

15、步骤2.2,解析旧容器使用当前gpu卡中算力占比,以及显存大小;

16、步骤2.3,扣除掉旧容器使用的当前gpu信息,把剩余的资源信息通过kubelet上报给apisever。

17、作为本专利技术针对gpu组件平滑迁移的方法的进一步优选方案,在分配资源allocate过程中,采用v2组件分配新的gpu资源不能与采用v1组件分配旧的gpu资源有冲突,具体包含如下步骤;

18、步骤3.1,获取当前节点的所有gpu卡的拓扑信息;

19、步骤3.2,获取每个容器使用gpu卡的拓扑信息;

20、步骤3.3,获取剩余的可用的gpu资源列表。

21、作为本专利技术针对gpu组件平滑迁移的方法的进一步优选方案,在步骤3.3中,用步骤3.1减去步骤3.2获取剩余的可用的gpu资源列表。

22、作为本专利技术针对gpu组件平滑迁移的方法的进一步优选方案,在步骤5中,当采用v1组件部署的容器下线时,把容器释放出来的资源及时让v2感知到,具体包含如下步骤;

23、步骤5.1,监听checkpoint文件的变化,并且发现是采用v1组件部署的容器下线时,及时更新当前节点可用的总gpu资源信息,方便让调度器scheduler及时感知;

24、步骤5.2,把释放出来的gpu资源及时更新到剩余的可用的gpu资源信息列表中来,方便资源分配,实现重复利用。

25、作为本专利技术针对gpu组件平滑迁移的方法的进一步优选方案,在步骤2.3中,在分配新的gpu资源过程中原则是不能与v1有冲突,在算力分配上不能超过当前gpu卡的总算力,在显存分配上不能超过当前gpu卡的总显存,防止算力不足,显存溢出,确保新旧容器不会相互干扰异常。

26、本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:

27、1、本专利技术一种针对gpu组件平滑迁移的方法,采用平滑迁移的方式,在迁移过程中循序渐进,确保了新旧服务均平稳运行,迁移过程工作量小,无需运维介入,一方面对存量服务无感知,无损害,确保平稳运行,另一方面让新服务采用新的方案,做到了新旧服务共存,存量服务随着生命周期的结束慢慢下线,新服务采用新组件不断上线,实现了优雅迁移的目的;

28、2、在实现过程中,针对接口编程,只需适配特定的接口,改动工作量小,核心逻辑保持不变。

本文档来自技高网...

【技术保护点】

1.一种针对GPU组件平滑迁移的方法,其特征在于:具体包含如下步骤;

2.根据权利要求1所述的针对GPU组件平滑迁移的方法,其特征在于:在步骤1中,通过yaml的方式部署新的GPU虚拟化组件v2;其中,yaml是一种数据格式。

3.根据权利要求1所述的针对GPU组件平滑迁移的方法,其特征在于:新的GPU虚拟化组件v2通过kubelet向集群中注册该节点上可用的GPU资源;其中,Kubelet是k8s里面一个管理组件。

4.根据权利要求1所述的针对GPU组件平滑迁移的方法,其特征在于:在步骤2中,通过device server向kubelet的上报设备信息,扣除当前节点node上采用v1组件已使用的GPU资源,让调度器scheduler从v2的角度看到当前节点还能使用的总资源;其中,deviceserver是设备的服务端。

5.根据权利要求1所述的针对GPU组件平滑迁移的方法,其特征在于:在步骤3中,调资源分配allocate过程中,采用v2组件分配新的GPU资源,且不能与采用v1组件分配旧的GPU资源有冲突。

6.根据权利要求1所述的针对GPU组件平滑迁移的方法,其特征在于:所述步骤2具体包含如下步骤;

7.根据权利要求1所述的针对GPU组件平滑迁移的方法,其特征在于:在分配资源Allocate过程中,采用v2组件分配新的GPU资源不能与采用v1组件分配旧的GPU资源有冲突,具体包含如下步骤;

8.根据权利要求1所述的针对GPU组件平滑迁移的方法,其特征在于:在步骤3.3中,用步骤3.1减去步骤3.2获取剩余的可用的GPU资源列表。

9.根据权利要求1所述的针对GPU组件平滑迁移的方法,其特征在于:在步骤5中,当采用v1组件部署的容器下线时,把容器释放出来的资源及时让v2感知到,具体包含如下步骤;

10.根据权利要求1所述的针对GPU组件平滑迁移的方法,其特征在于:在步骤2.3中,在分配新的GPU资源过程中原则是不能与v1有冲突,在算力分配上不能超过当前GPU卡的总算力,在显存分配上不能超过当前GPU卡的总显存,防止算力不足,显存溢出,确保新旧容器不会相互干扰异常。

...

【技术特征摘要】

1.一种针对gpu组件平滑迁移的方法,其特征在于:具体包含如下步骤;

2.根据权利要求1所述的针对gpu组件平滑迁移的方法,其特征在于:在步骤1中,通过yaml的方式部署新的gpu虚拟化组件v2;其中,yaml是一种数据格式。

3.根据权利要求1所述的针对gpu组件平滑迁移的方法,其特征在于:新的gpu虚拟化组件v2通过kubelet向集群中注册该节点上可用的gpu资源;其中,kubelet是k8s里面一个管理组件。

4.根据权利要求1所述的针对gpu组件平滑迁移的方法,其特征在于:在步骤2中,通过device server向kubelet的上报设备信息,扣除当前节点node上采用v1组件已使用的gpu资源,让调度器scheduler从v2的角度看到当前节点还能使用的总资源;其中,deviceserver是设备的服务端。

5.根据权利要求1所述的针对gpu组件平滑迁移的方法,其特征在于:在步骤3中,调资源分配allocate过程中,采用v2组件分配新的gpu资源,且不能与采用v1组件分配旧的...

【专利技术属性】
技术研发人员:王静吴林江高磊琦李嘉瑛洪瀚思
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1