阿里云受邀参加KVM虚拟化重量级国际技术论坛

简介: 阿里云受邀参加KVM虚拟化重量级国际技术论坛,Topic录取数量在全球公有云厂商中与Google并列第一。主要围绕 KVM 性能调优和公有云热迁移全链路优化展开。

阿里云受邀参加KVM虚拟化重量级国际技术论坛

      Topic录取数量在全球公有云厂商中与Google并列第一

Linux基金会于10月份在捷克举行了一系列的重要会议,包括Linux 内核峰会、嵌入式Linux大会、开源峰会、KVM 论坛、Mesos峰会等一系列会议。此次会议作为本年度Linux基金会的重头戏,吸引了众多的公司和重要人物参与会议,包括Linux创始人Linus,VMware的首席开源专家Dirk Hohndel, Google的开源总监Sarah Novotny等。同时Linux开源社区的一批技术专家也都参与了此次会议,包括Linux内核的维护者Peter、 Thomas,KVM的维护者Paolo等都参与了此次会议。参会的公司包括IBM,Google,Microsoft,Redhat,Amazon,Intel等国际著名公司,同时也包括国内的腾讯,华为等。

此次阿里巴巴受邀参加了开源峰会和KVM FORUM,我们一共有两个topic被选中(录取数量在全球公有云厂商中与Google并列第一),KVM的性能调优和热迁移在阿里云的应用。其中KVM的性能优化这个主题同时被开源峰会和KVM讨论会所选中进行分享。

 4c0cd8cdf3eb6819704b6cbf562358dd12e5f670

Topic 1: KVM 性能调优

—阿里云高级技术专家张扬

在KVM性能调优的主题上,我们介绍了当KVM被大规模应用在公有云上的时候所出现的一些问题,而且这些问题在平常的开发中是很难被看到了,但是却真正影响着KVM的性能。通过我们的介绍,KVM的开发者更好的了解了当前KVM存在的瓶颈点, 进而完成进一步的优化。

虽然当前KVM可以基本满足大部分的业务使用,稳定性也比较好,但是在实际业务中的表现仍然和物理机存在的一些差距。我们把用户在阿里云上遇到的问题进行的分析和总结,主要分为三类问题:

第一个问题是消息传递类业务在KVM上的性能比较差,其实这个问题在2015年的KVM 大会上第一次被google所提出,但是过去了两年,依然不能很好的解决。我们针对这个问题提出了smart idle poll的方案,通过在内核触发延迟的关键路径上进行优化,可以有效的降低性能开销,最终做到和物理机持平的性能。

第二个问题是关于虚拟时钟的开销,由于在X86平台上,虚拟时钟是需要KVM进行模拟。而我们在很多游戏用户的场景里面发现,高精度时钟使用的非常频繁,KVM在时钟上引入的开销对游戏业务的影响较大。针对这个问题,我们提出了半虚拟化时钟的方式,通过在KVM和内核里面引入异步时钟操作机制,同时借助硬件的高级特性,可以把时钟的开销基本消除。

第三个问题是消息中间件在KVM看到的性能下降问题。由于消息中间件会大量使用内存来存放消息,同时对消息进行大量操作,会导致大量的TLB刷新开销。而这部分开销在KVM的场景下会被放大进而影响业务的性能。针对这个问题,我们提出了半虚拟化的中断机制,通过合并TLB刷新来减少开销。

对于我们抛出的这些问题和解决方案,现场的听众都非常感兴趣。因为这些问题都和实际的业务紧密相关,很多问题之前的开发者从来都没有关注过,而且也不知道在实际业务中会有如此大影响。

特别是我们提出的smart idle poll的方案,解决了虚拟化领域的一个普遍问题,这个问题不仅KVM会遇到,微软的虚拟化技术、VMware的虚拟化产品以及AWS的Xen都存在这个问题,所以在Q&A的环节,来自于微软和google的技术专家对我们的方案非常感兴趣。除此之外,在会后和Google公司的技术专家David的交流中我们详细讨论了当前KVM在性能方面的一些问题。由于Google也是使用的KVM作为底层虚拟化技术,所以Google看到了很多和我们一样的问题,David对于阿里巴巴今天能够分享我们在实际业务中发现的问题和解决方案表示非常赞赏,希望未来可以一起合作来解决更多的性能方面问题。

 

Topic 2: 公有云热迁移全链路优化

—阿里云技术专家张超

尽管从虚拟化的层面看,开源的KVM的热迁移技术相比原来的XEN虚拟化场景已经有了大幅度的提升,但是要把热迁移很好的应用到实际的生产场景中,仍然不是一件容易的事情。 一个最简单的原因就是,在阿里云或者公有云中,我们售卖的不仅仅是一个基于虚拟化的虚拟机实例,而是一个完备的云生态环境。 在这个环境的最底层,我们有云磁盘、VPC网络,在中层,我们有虚拟化、控制系统、在上层,我们提供了各种各样的云服务等高级特性。因此,我们对热迁移的需求,也不仅仅是一个虚拟机在虚拟化层面能够在不同的物理机间进行迁移,而是要求热迁移要对整个云生态系统透明,实现虚拟机在整个云生态系统中平滑切换,无缝穿梭。目前,在有关虚拟化层的在国内外的相关资料中,我们还没有发现有相关资料介绍热迁移在其公有云内部的应用与公有云热迁移全链路的技术难点与解决方案。

在此次的topic中,我们介绍了热迁移从一个基础的虚拟化技术应用到云计算领域时所碰到的主要技术难点以及一些关键的性能优化技术。这包括最底层的虚拟化关键路径优化,云磁盘、VPC网络支持与优化、以及热迁移是如何实现对用户透明的实时迁移的。

在虚拟化关键路径优化方面:我们介绍了通过采取迁移关键路径操作拆解、重组与并发、 增加Pre Last Copy, 虚拟机内存Last Copy压缩等优化技术,是如何大幅度的降低热迁移业务中断时间的,以idle状态的虚拟机为例,目前我们已经将热迁移在虚拟化层的开销从200ms优化到10ms以内。

在虚拟机磁盘优化方面:我们介绍了通过创新性的引入了disk pause状态,在确保数据完整性能的情况下,实现了热迁移时在目的端物理机上快速的云磁盘打开。

在VPC热迁移优化方面:我们通过具有独创性的Relay Forwarding技术,实现了热迁移与网络流表下发解耦,从而实现网络流量的快速倒换。

此外,我们还介绍了目前这一技术在实际生产环境中还有哪些有待解决的问题和技术障碍。分享了热迁移是如何帮助阿里云在面对软、硬件故障时降低用户的宕机时间和宕机次数、在集群资源管理中如何融入调度系统进行集群资源的管理和整合等一些非常实际的应用场景。

通过以上这些优化技术,我们将全链路下,idle状态的虚拟机热迁移的业务中断时间从原来的1S中优化到现在的90ms以内。压力状态下,256M内存压力下全链路业务中断时间100~300ms左右。

在会后,我们同来自于RedHat的热迁移的专家gilbert就热迁移目前存在的问题和热迁移在阿里云的一些技术应用进行了交流,特别就软硬件跨版本的热迁移难点,如:如何通过抽象化cpu特性,从而实现不同型号的cpu的可迁移校验;以及不同厂商cpu前后兼容的实践经验,一些特殊的设备状态在跨版本迁移的支持情况等。我们期望未来通过热迁移进行物理硬件的透明升级,从而为用户提供更高的业务延续性。此外,针对大压力下的一些热迁移性能技术难点,我们也向gilbert提出了一些优化想法,如如何通过IO访问模式的切换,解决io sync耗时太长,以及一些特殊场景的内存压缩算法优化等,gilbert对我们的想法非常感兴趣,并希望未来能够做更进一步的合作。

我们希望通过将阿里云在热迁移生产实践中的走过的路,踩过的坑分享给开源社区的方式,能够帮助更多的云计算领域相关厂商能将这项技术更好的应用在自己的产品和服务中,并进一步的提升热迁移在云计算领域的全链路技术进步,从而为从硬件、到软件、再到服务打造一个热迁移友好的生态系统而贡献一份自己的力量。

目录
相关文章
|
4月前
|
存储 Linux 调度
OpenStack如何支持虚拟化技术?
【8月更文挑战第21天】
222 0
|
2月前
|
存储 分布式计算 分布式数据库
云计算和虚拟化技术
云计算是指把计算资源、存储资源、网络资源、应用软件等集合起来,采用虚拟化技术,将这些资源池化,组成资源共享池,共享池即是“云”。
146 64
|
1月前
|
存储 持续交付 虚拟化
|
2月前
|
存储 Linux 调度
KVM 虚拟化的功能特性
【10月更文挑战第13天】虚拟化技术创建实体资源的虚拟版本,提升资源利用率。KVM(Kernel-based Virtual Machine)作为全虚拟化解决方案,借助Linux内核实现Hypervisor功能,通过模块化方式提供高效的虚拟化环境。
|
3月前
|
KVM 虚拟化
虚拟化技术概述及KVM环境安装
关于虚拟化技术概述及KVM环境安装的教程,涵盖了虚拟化的定义、分类、管理工具,以及KVM的系统需求、安装步骤和使用指南。
83 11
虚拟化技术概述及KVM环境安装
|
2月前
|
安全 KVM 虚拟化
OpenEuler 中配置 KVM 虚拟化环境指南
本文档详细介绍了如何在OpenEuler系统中配置和管理KVM虚拟化环境,包括环境准备、组件安装、虚拟机安装及管理命令等,适合初学者和有经验的用户。内容覆盖了从桥接网卡配置到虚拟机的安装与管理,以及常见问题的解决方法,帮助用户高效利用虚拟化技术。
|
4月前
|
存储 运维 虚拟化
Docker技术概论(1):Docker与虚拟化技术比较
Docker技术概论(1):Docker与虚拟化技术比较
166 17
Docker技术概论(1):Docker与虚拟化技术比较
|
4月前
|
Devops 虚拟化 Docker
DevOps 中的标准虚拟化技术
【8月更文挑战第27天】
60 5
|
4月前
|
存储 监控 Linux
在Linux中,如何进行虚拟化技术的应用?
在Linux中,如何进行虚拟化技术的应用?
|
4月前
|
存储 人工智能 运维
破局数字化时代!虚拟化技术携手OpenStack,引爆企业云动力!
【8月更文挑战第6天】随着信息技术的飞跃,数字化转型对企业至关重要。虚拟化技术与OpenStack作为关键技术,通过资源抽象化实现高效利用与灵活管理,为企业构建高效、灵活且可扩展的云基础设施。OpenStack支持多种虚拟化技术,简化云环境部署与管理。两者结合不仅提高了资源利用率与运维效率,还促进了大数据、物联网及AI等领域的创新,共同为企业解锁数字化时代的无限潜能。
52 2