这波无感升级有点秀——天翼云QEMU组件热升级方案来了

天翼云开发者社区
• 阅读 197

虚拟化技术作为云计算时代的核心技术,近年来应用越来越广泛。目前,大多数云厂商提供的云主机都是基于KVM/QEMU虚拟化技术实现的。而随着虚拟化技术的发展,QEMU组件也在不断引入新功能并进行功能优化和问题修复。

在公有云场景中,如何在不影响存量虚拟机业务的情况下快速解决资源池中QEMU组件的BUG或升级QEMU版本,是云厂商不得不面对的问题。

这波无感升级有点秀——天翼云QEMU组件热升级方案来了

目前,业界通常采用的解决方式有两种:

▍通过热补丁方式在线修复QEMU BUG; ▍使用热迁移技术将虚拟机迁移到安装了新版本QEMU的宿主机上。

这两种方式都因底层技术特点导致实施起来难度很大,且对运维团队和云管系统要求更高。

为解决上述问题,天翼云弹性计算虚拟化团队在深入研究了现有虚拟化技术和实际业务场景后,打造了QEMU热升级方案,可以快速地在线升级QEMU组件,实现在线修复BUG和升级业务版本。基于该方案云管系统或管理工具可以非常方便地实现一键升级云主机功能,极大提高整个宿主机上云主机的升级效率。

技术路线

热补丁技术

热补丁技术通常用来在线修复用户态程序中和安全相关的严重BUG。对于QEMU组件,一般使用libcare工具制作热补丁,然后再将热补丁应用在虚拟机的QEMU进程中,以达到在线修复BUG的目的。

但是,热补丁技术只对特别简单的BUG有效,对于涉及代码改动较多的BUG,可能无法通过libcare制作出热补丁,即便制作出热补丁后也可能无法成功打上。此外,不同BUG的热补丁及其针对不同QEMU版本的维护,将随着资源池规模的变大以及BUG数量的增多,变得越来越困难,维护成本也越来越高。

热迁移技术

对于需要升级QEMU版本的场景,通常可以使用虚拟机热迁移技术将所有虚拟机从原来的宿主机在线迁移到升级后的宿主机上。由于虚拟机在迁移过程中仍然正常运行,使用这种方式升级QEMU对于一般用户来说基本上没影响,实现用户业务无感知,因此被很多云厂商采纳使用。

不过,由于是跨主机迁移虚拟机,如果虚拟机内存规格比较大或涉及内存密集型业务,那么迁移一个虚拟机的时间也会比较长。而升级资源池中的QEMU版本需要迁移所有虚拟机,可想而知,整个升级周期将持续很长时间,甚至以月为单位。

不仅如此,虚拟机迁移过程将占用大量的网络资源,迁移期间可能对宿主机和虚拟机的网络业务造成较大影响。最后迁移资源池所有虚拟机需要进行资源的统一调度和管理,这对资源调度系统提出了更高要求。

QEMU热升级方案

在介绍QEMU热升级方案之前,一起先了解一下虚拟机热迁移技术背后的原理。

迁移虚拟机时,首先需要使用与源虚拟机相同配置的命令行参数,在目的宿主机上启动一个目的虚拟机进程。然后,再通过多次迭代的形式,将源虚拟机的内存数据通过网络迁移到目的虚拟机的内存中。当剩余内存脏页总量足够小时,立即暂停虚拟机,并将剩余内存以及设备状态数据一次性迁移到目的虚拟机中。最后运行目的虚拟机,同时删除源虚拟机。

从热迁移技术原理可以看出,只要将源虚拟机的内存和设备状态数据迁移到目的虚拟机中,就能保证目的虚拟机和源虚拟机状态一致,而目的虚拟机进程运行在哪个宿主机上并不重要了。

基于热迁移技术原理,QEMU热升级方案通过在相同宿主机上创建一个使用新版QEMU二进制文件启动的目的虚拟机来替换源虚拟机,达到升级QEMU版本的目的。和热迁移不一样的是,新创建的目的虚拟机共享源虚拟机的内存,不再需要迁移,只需在替换前将源虚拟机的设备状态迁移到目的虚拟机中即可。QEMU热升级整体方案流程如图所示。

这波无感升级有点秀——天翼云QEMU组件热升级方案来了

虚拟机内存共享

在QEMU热升级方案中,如何让同一个宿主机上的两个虚拟机进程间共享同一份虚拟机内存成为关键。在此过程中,天翼云基于memfd机制实现了虚拟机内存的分配。memfd机制在Linux 3.17版引入,其提供的memfd_create()接口可以创建一个匿名的文件描述符,且其引用的文件保存在内存中,然后通过ftruncate()系统调用可以分配指定大小的匿名内存。

该方案修改了QEMU进程启动时为虚拟机分配内存的方式,使用memfd机制为虚拟机分配内存,并保存对应的memfd,然后在热升级时将其共享给目的虚拟机进程。

除此之外,为了方便将memfd共享给目的进程以及减少代码的修改,该方案通过源虚拟机进程来创建目的虚拟机进程。基于父子进程共享资源的方式,memfd很自然地就共享给了目的虚拟机进程。目的虚拟机进程启动时不再给虚拟机重新创建内存,而是直接共享使用memfd对应的源虚拟机内存。

设备状态迁移

和共享内存一样,创建目的虚拟机进程前,天翼云将源虚拟机的设备状态保存在另一个memfd关联的内存中,并将对应的memfd共享给目的虚拟机进程。目的虚拟机初始化后,通过读取对应内存中数据即可恢复设备状态。

QEMU热升级方案的优势

升级时间短,占用网络资源少,业务无感知

新创建的目的虚拟机共享源虚拟机的内存,不再需要迁移,只需要在替换前将源虚拟机的设备状态迁移到目的虚拟机中即可。由于设备状态对应的数据量很小,迁移很快,因此虚拟机在热升级过程中的虚拟机暂停时间很短。

天翼云对比测试了同样场景下热升级和热迁移过程中整体耗时以及虚拟机网络中断时间。从测试结果看,热升级虚拟机的整个过程耗时1s左右,网络中断时间大约为100ms;而热迁移的整个过程耗时100s~400s,网络中断时间为300ms。测试结果表明,相比热迁移,热升级的整体耗时减少了99%,网络中断时间减少了67%左右。

支持失败回滚功能,不影响虚拟机业务

QEMU热升级方案支持失败回滚,当升级失败后,可以立即恢复源虚拟机运行,不会影响虚拟机内部业务。由于该方案创建了一个目的虚拟机进程用来替换源虚拟机进程,在升级成功前,源虚拟机只是暂停执行,其所有状态仍然保持原样,因此即便热升级失败后,源虚拟机也可以立即恢复运行。

虚拟机对外接口保持一致,对管理系统透明

虚拟机热升级对上层管理系统(如OpenStack)透明,升级前后虚拟机对外提供的接口不变, 如vnc端口、console等。天翼云在QEMU代码层面做了修改,支持服务端口号、fd等资源的共享,升级后目的虚拟机直接共享源虚拟机拥有的资源,继续对外提供服务。

网卡设备后端资源共享,无需重新配置网络端口

通常虚拟机在迁移到另外一个宿主机后都需要网络控制器重新配置网络开端口和下发对应的流表,保证网络正常工作。而QEMU热升级方案却不需要网络控制器的介入,对其透明,这得益于天翼云对QEMU virtio网卡设备的工作机制及代码框架的深入的研究。天翼云在QEMU网卡设备代码层面进行了优化,实现了virtio 网卡设备后端资源共享以及恢复机制,使得目的虚拟机可以共享源虚拟机virtio网卡设备的后端资源。

安全保护机制,让热升级更加安全可靠

针对某些场景下(比如设备配置的socket使用了TLS或websocket选项)QEMU虚拟机无法执行热升级操作的情况,天翼云构建了安全保护机制,通过禁止执行热升级操作,使方案更加安全可靠。在QEMU代码中,天翼云相应地增加了热升级blocker机制,在虚拟机进程启动时,一旦检查到不支持热升级的场景,将设置一个blocker,以告知QEMU热升级接口禁止执行该操作。由于blocker的存在,热升级接口直接报错退出。

一键热升级QEMU 虚拟机,维护简单

在该方案中,QEMU只提供了热升级方案所需的所有原子操作接口,通过封装这些接口,libvirt可以实现一键热升级QEMU虚拟机的功能。

持续优化,共建开源生态

天翼云云主机热升级方案是基于QEMU开源社区版本上的优化和增强,接下来天翼云也将积极推进该方案开源到社区,共建开源生态。同时,天翼云弹性计算虚拟化团队还将持续优化方案,下一步将支持直通设备的热升级。

未来,天翼云将继续坚持科技创新,加大关键核心技术自主攻关,推进国产软硬件产品升级,以安全可信、自主可控的新一代云计算基础设施底座,助推中国数字经济高质量发展。

点赞
收藏
评论区
推荐文章
天翼云新一代V5云主机,Kvm之生,Xen之死!
天翼云发布了新一代V5云主机,基于intel最新发布的Intel®XeonSkylakeV5CPU的物理机及KVM虚拟化提供的全新云主机系列。计算性能较上一代(V4CPUXen虚拟化)提升15%左右,可以更高效的进行单、双精度浮点运算,适用于对计算性能有强需求的各种场景。这里重点要提的是采用了虚拟化平台KVM!曾经的真爱!记得2012年刚到云公
鱼和熊掌可以兼得!天翼云弹性裸金属一招鲜!
在“攻城略地”的全球云计算发展大潮中中国异军突起天翼云作为一支云服务国家队也在不断“武装”自己虚拟化的过程在为用户带来低成本、高灵活性的同时损耗和高性能场景也给用户带来了焦虑作为天翼云4.0革新产物之一“天翼云弹性裸金属服务器” 全新问世它都有哪些奇功妙招能免除用户焦虑帮助企业上云?天翼云为你逐步揭晓答案正式介绍之前,我们先了解什么是裸金属?裸金属服务器是物
公众版与政企版,这两款云电脑我都要!
8月18日,以“自主领先,畅游云端”为主题的天翼云电脑专题讲座在线上召开。天翼云科技有限公司研发二部高级产品经理梁胜蓝作为主讲人,对天翼云电脑不同版本的功能、特点进行了介绍,并分享了天翼云电脑在政企办公、在线教学等不同场景中的应用实践。近年来,随着5G、云计算等新兴技术快速发展,数字化办公正在成为企业办公的一大趋势。天翼云电脑具有便捷易用、安全可信等优势,可
选择天翼云混合云管理平台的五大理由
数字时代下,企业上云成为数字化转型的突破口。云上应用越来越多,云业务容灾备份、分级安全、应用弹性扩展等需求也日益增长。出于对综合成本、多云的差异化优势互补等因素的考量,企业多采用混合云部署策略。混合云,成为云服务市场的重要发展趋势。天翼云混合云管理平台面向企业客户提供资源统一开通、统一管理、统一运营、统一运维,支持对硬件资源和虚拟资源进行纳管,并通过整合天翼
畅享高性能计算!天翼云HPC解决方案来了
6月15日,“天翼云HPC解决方案加速企业数字化转型”专题讲座在线上召开,天翼云科技有限公司高级解决方案经理梁小彪、天翼云科技有限公司高级工程师孙晓宁作为主讲人,分别对天翼云HPC解决方案及应用、天翼云高性能计算产品做了分享。在十四五规划与双碳目标的驱使下,高性能计算的技术研发越来越重视低碳减耗。随着互联网应用场景不断拓展,数据流量爆发式增长,企业对高性能
天翼云探索云原生、边缘计算融合新思路
6月15日,由中国信息通信研究院、中国通信标准化协会主办的云原生产业大会在线上成功举办。天翼云研发三部副总经理鄢智勇、天翼云研发三部研发专家胡建锋发表了演讲,分别就当今时代算力的重要性和云原生在算力网络中的实践、云原生技术发展趋势以及天翼云的创新举措进行了分享。数字化转型脚步加快,云原生在行业的落地应用随之深入。云原生技术作为数字技术发展“内核”,不断促
企业数字化转型之路,从这里开始
伴随着技术发展和应用推进,云计算高效便捷、灵活扩展优势愈发凸显。经过十多年的孕育,云计算迈入普惠发展阶段,技术应用也在不断深入。混合云凭借其应用场景灵活丰富的特点,吸引了越来越多的企业尤其是中小企业的青睐。混合云让云计算发展的红利不断彰显。未来,随着混合云相关技术的不断成熟,为企业用户提供一致性服务、创新服务能力的不断增强,云计算的混合部署模式将得到越来越多
天翼云安全一体化纵深体系是怎么炼成的?
随着数字化建设的推进,关键信息基础设施逐渐成为国家重要的战略资源,天翼云作为云计算的国家队与排头兵,一直以安全作为发展核心,深耕云原生技术,构建端到端安全,致力于突破关键核心技术,提高国产化能力,掌握核心竞争力,捍卫企业云上安全。打造云基础设施安全基石天翼云2431X的全国云网资源布局的每个资源池都配备了防火墙、WAF、AntiDDoS等高级安全组件,
helloworld_51691982 helloworld_51691982
8个月前
云虚拟主机和云服务器的区别以及优劣势分析
基于云计算技术的云虚拟主机、云服务器竞争也越来越大。云技术的不断发展,云虚拟主机、云服务器使用成为主流,但是如何根据自身预算及满足自身发展需求进行选择。那么怎么选择适合自己的云主机呢?云虚拟主机、云服务器又有什么区别呢?云虚拟主机云虚拟主机是利用云技术把一台服务器划分为多个的“虚拟的主机”,划分出来的虚拟主机具有独立域名(能够独立的搭建网站)和完整的Inte
了解医疗上云门道,尽在“共铸国云 红云行业思想汇”!
近年来,上云用云已成为各行业数字化转型的主旋律。随着技术的不断成熟,云计算技术已在医疗行业得到广泛应用,各地卫健委和卫生医疗机构借助云计算实现运营和服务的数字化、智能化,医疗信息化进程也在不断加速。《“十四五”国家信息化规划》中明确提出,积极探索运用信息化
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
315
文章
3
粉丝
37
获赞