KVM Forum是由Linux基金会组织的高端技术论坛会议,主要为社区各个维护者,开发人员,和用户提供一个讨论Linux虚拟化技术发展趋势以及挑战的交流场所。参会人员都集中在KVM虚拟化相关领域,是KVM社区最为重要和权威的大会。
概述
2018年度的KVM Forum于10月24-26日在英国爱丁堡召开。本次会议吸引了众多技术专家参与会议。同时,参会公司聚集了各家云厂商以及Red Hat、Intel、IBM、AMD等系统和硬件厂商。
先来看看KVM Forum的超高人气。
第一天的keynote被围得水泄不通。
满满当当的就餐区
本届大会总共有51个主题演讲,覆盖虚拟化各个领域,比如:热迁移、嵌套虚拟化、ARM虚拟化、设备直通、轻量虚拟化、安全及性能优化等方面。
热门议题
从议题数量和现场效果来看,以下三个领域比较受到关注:
- 嵌套虚拟化
- 虚拟化性能优化
- 热迁移
嵌套虚拟化
简单来说,嵌套虚拟化就是解决如何在虚拟机里嵌套运行虚拟机的问题。作为近期新起的热门话题,嵌套虚拟化相关演讲在本次KVM Forum上多达4个。
会议介绍了半虚拟化(para-virtualization)VMCS,半虚拟化MSR-bitmap和时钟优化方面的技术,可以提升嵌套时vCPU之间的切换性能,帮助KVM更好地运行在虚拟机里。
另外,会议还涉及了嵌套虚拟化的中断虚拟化性能优化,以及嵌套虚拟化对PowerPC处理器的支持。
可以看到,嵌套虚拟化技术在商用中初步取得了一定的成果,但在安全性上带来的挑战仍然是大家提问的热点。
虚拟化性能优化
事实上,虚拟化的性能优化在近几年的KVM Forum中都比较受关注。在去年的大会上,阿里云高级技术专家张扬就对消息传递类业务在KVM上的性能比较差的问题,虚拟时钟开销的问题,以及消息中间件在KVM看到的性能下降等问题提出过有效的解决方案。
此次,相关的演讲涵盖了vCPU优化,内存优化,和I/O优化。vCPU优化包含了半虚拟化(para-virtualization)方面的优化,如PV TLB shootdown,PV IPI性能优化;内存优化涉及了virtio-mem引入半虚拟化接口,支持内存热插拔等等;I/O优化介绍了vHost Virtio-net 网络接收队列的零页拷贝(zero copy)。
热迁移
弹性调度和动态伸缩是云技术的核心特性。然而,它们都非常依赖底层热迁移的技术性能完善。同时,通过热迁移还可以很大程度降低物理故障对客户的影响。在本届大会上,热迁移相关的演讲全部人气高涨。
在过去的一年,阿里云虚拟化团队对热迁移领域大量投入,获得了大量宝贵的经验。本次参会的3个议题也全都关于热迁移。在此,我们为大家展开详细介绍。
阿里云在KVM Forum 2018
今年的KVM Forum,热迁移的相关主题演讲一共有五个,阿里云占了其中之三。
《Cloudatlas: Ways to Make Live Migration Easy and Expectable》
演讲者:阿里云高级技术专家 张超;阿里云技术专家 谢峰
阿里云高级技术专家 张超
阿里云技术专家 谢峰
如何平衡热迁移资源占用与性能开销,同时最小化热迁移对客户的业务影响,是所有公有云厂商都面临的挑战。阿里云创新性地利用机器学习的方法来预测热迁移的代价以及虚拟机的负载,从而确定一个合理的热迁移的时机和策略,最终提升迁移成功率以及降低热迁移对用户的影响。
阿里云虚拟化团队设计了一个完备的系统来执行热迁移任务的执行。在演讲中,提到了机器学习算法部分,阿里云使用FFT来判断是否是周期性负载VM,并对周期性负载VM算出周期然后进行预测,对于没有明显周期性负载的VM,团队采用ARIMA和LSTM两个时间序列模型来做回归预测,通过以上三种算法的结合可以快速并准确地预测出95%以上VM在未来24小时的负载趋势,从而找到一个最优的迁移时间。
本次演讲涉及了大量的算法研究,现场听众对使用案例、方案原理、预测效果等非常细节的实现问题进行了进一步的提问。有一位行业专家现场说:这是真正在解决公有云厂商关心的问题。
《A Perfect Solution for Live Migration with Pass-through Devices》
演讲者:阿里云技术专家 徐权
该演讲直击了现有直通设备热迁移的问题:即如何传输设备DMA的内存和如何保存和恢复设备的状态。
阿里云技术专家 徐权
演讲深入分析了现有的一些方法和存在的问题。比如Intel在82599网卡上,在虚拟机内部设备驱动引入self emulation layer,模拟设备DMA写操作,和恢复保存设备状态。但由于特定的设备驱动才能工作,而且设备本身设计的缺陷(寄存器只读,在恢复中无法100%恢复),并不能很好地解决问题。而如果从新的硬件和设备驱动的角度切入,在成本投入上是巨大的,而且增加了软件的维护成本。
阿里云扩展了virtio硬件的功能,如感知虚拟机热迁移,提供设备bitmap记录设备DMA访问内存,以及设备所有的寄存器能够动态地保存和恢复,同时修改现有的热迁移和VFIO软件框架。这样能最大限度地利用现有设备驱动,很好地支持Windows和Linux虚拟机,并不需要单独维护各个版本的设备驱动,大大降低了成本。
演讲结束后,现场有十几位专家的技术提问。会后徐权还和Linux 社区VFIO maintainer Alex Wiliamson多次讨论如何改进现有的VFIO来支持直通设备热迁移的通用框架。
《Live Migration Support for GPU with SRIOV: Challenges and Solution》
阿里云与AMD联合演讲,阿里云演讲者:阿里云高级技术专家 郑晓
GPU的热迁移支持是业界的难点。首先,GPU硬件的调度与上下文切换是以millisecond 为单位的,是CPU的好几个数量级,由此会引发GPU任务的抢占问题。再者,GPU在云计算领域的拓展是最近几年出现的热点,而GPU硬件本身对于虚拟化热迁移的支持尚未完善,比如GPU对local memory的dirty track,对non local memory的dirty track的硬件支持等。这些都为GPU的热迁移带来很多挑战。
阿里云高级技术专家 郑晓
演讲中提到了GPU 任务在迁移途中的时效性,抢占问题,比如GPU硬件本身在尚未支持framebuffer dirty track的时候,如何通过hypervisor的措施,通过系统软件的方法来弥补,以及GPU本身上下文的切换需要处理的细节等等。
所有上面提到的问题在阿里云与AMD联合开发的第一天就开始考虑与设计。其中有众多独有的创新点。例如,在某些型号GPU硬件不支持dirty track的时候,通过软件的方式来跟踪GPU的Framebuffer dirty page;在Service downtime等关键性能指标不符合预期的时候,如何把数据从6秒优化到了0.35秒左右;功能方面,从单机迁移完善到多机多卡迁移;在稳定性方面,从一开始的做一次就宕机,到后续连续上千次的压力测试……
此外,演讲还加入了现场的Live Demo,从使用体验上面来说,已经可以做到GPU渲染任务的流畅迁移。
该演讲得到了高度关注。会后,部分*硬件厂商还与演讲者详细讨论了更多的热迁移细节和性能指标。
小结
参加完本次KVM Forum,我们深刻感觉到,如何解决实际生产环境中遇见的现实问题,正受到业界越来越多的重视。
通过参会,促进了我们和虚拟化业界的交流,也让团队获取了大量信息和宝贵经验,这些都可以帮助我们更好地提升,并且不断打磨提升弹性计算产品的底层能力。