图片-稻子网
图片-稻子网
图片-稻子网
图片-稻子网

腾讯云服务器增加内存-腾讯云首次披露虚拟化技术发展路线图,看好轻量级虚拟化潜力

图片[1]-腾讯云服务器增加内存-腾讯云首次披露虚拟化技术发展路线图,看好轻量级虚拟化潜力-稻子网

在云计算中,虚拟化技术、分布式资源管理技术、数据存储技术、网络技术是最关键的基础技术体系。其中,虚拟化是底层的核心技术之一,其高可用、高性能、快速创建等技术指标甚至直接关系到云计算的商业模式能否建立起来。

虚拟化技术也分为技术流派,其中KVM、Xen、(ware)是主流。早在2013年,腾讯云就基于对虚拟化技术未来发展方向的判断,摒弃了当时主流的XEN虚拟化技术,在业界率先拥抱开源KVM技术,并不断演进。

近日,腾讯云虚拟化技术负责人陈立东首次向外界详细披露了自己在虚拟化技术方面的技术演进路线。

究竟什么是虚拟化?

简单来说,虚拟化主要是指服务器资源的虚拟化,即在物理机上为虚拟机构建完整的操作系统运行环境。其中,虚拟化资源包括CPU、内存、网络和存储。一般来说,在一台物理机上,可以通过虚拟化技术将多个完整的虚拟机以不同的形式出售给不同的客户,以满足客户的定制化需求。

谈到虚拟化技术,这并不是一个新词。早在 1960 年代中期,IBM 就已经有了虚拟化技术。近十年,尤其是2005年,Intel推出了硬件辅助虚拟化,就是支持CPU指令上的虚拟化,这项技术有了很大的发展。

最初,虚拟化技术的主流是剑桥大学开发的 Xen。陈立东透露,2010年腾讯还是一个开放平台的时候,也用到了Xen。在推出腾讯云公有云产品时,腾讯云选择了KVM。陈立东表示,做出这个选择的主要原因是KVM技术是一种完全开源、轻量级的技术,内核对它的支持很好,是后续技术发展的方向。

为了理解虚拟化技术的作用和意义,我们来看一下腾讯云分布式调度系统的整体架构图。作为腾讯云计算操作系统,承担资源调度和请求排队等工作。

虚拟化负责为每个 CVM(Cloud)构建完整的 PC 运行环境,包括 CPU、内存、网络和存储资源。主要包括三个部分:qemu和kvm:

图片[2]-腾讯云服务器增加内存-腾讯云首次披露虚拟化技术发展路线图,看好轻量级虚拟化潜力-稻子网

qemu和kvm组成,负责CVM资源的虚拟化,在物理机上虚拟一个完整的PC环境;

负责提供统一的对外接口进行管理。

图片[3]-腾讯云服务器增加内存-腾讯云首次披露虚拟化技术发展路线图,看好轻量级虚拟化潜力-稻子网

图1.整体架构

腾讯云虚拟化技术演进

据陈立东介绍,腾讯云在大规模云计算实践过程中,遇到了一些虚拟化方面的技术挑战,在不断解决问题的过程中,提出了自己的虚拟化技术路线图。

挑战一:如何提高云服务器的可用性?

第一个挑战是可用性。随着目前硬件发展的趋势,服务器的集成度越来越高,单台物理机的故障对云服务器的影响越来越大。如何避免物理服务器宕机对云上虚拟化的影响,是腾讯云面临的第一个挑战。

图片[4]-腾讯云服务器增加内存-腾讯云首次披露虚拟化技术发展路线图,看好轻量级虚拟化潜力-稻子网

陈立东提到,腾讯云达到一定规模时遇到了一个问题。当时有游戏客户抱怨腾讯云云服务器故障率高,云服务器突然宕机,导致游戏玩家掉线,客户甚至考虑迁移到其他云。. 这给陈立东的团队带来了不小的压力。

经过对常见服务器故障原因的统计,发现服务器故障中主要的故障原因是内存故障。当内存出现多位UCE错误时,整个物理机会宕机,一个物理机上的所有虚拟机都会宕机。

但问题在于内存硬件本身存在故障率,无法完全避免多位UCE错误的低概率。为了提高云服务器的可用性腾讯云服务器增加内存,腾讯云采用了多种优化方案,这里介绍两种:内存高级RAS特性MCA和热迁移。

第一个是马华。为了解决内存故障率的问题,腾讯云联合包括英特尔在内的CPU厂商,为腾讯云定制了CPU。在定制过程中,腾讯云要求服务器厂商为腾讯云提供一些更高端的CPU特性,其中之一就是MCA。

之前如果发生内存UCE错误会直接关闭原服务器,但是当支持MCA后发生内存错误时,服务器不会关闭,只会发出内存问题的警告,并且上层会决定如何处理。

腾讯云是第一个在数据中心大规模使用MCA技术的云厂商,一开始并不顺利。启用 MCA 后,大量 UCE 错误未能成功规避。当时,服务器 ODM 厂商和 Linux 内核还没有完全支持 MCA。

针对硬件厂商缺陷导致的规避失败案例,腾讯云开发了故障注入工具,作为服务器BIOS BMC厂商的标准引入。长期进行故障注入压力测试,确保硬件厂商按照腾讯云的标准完成硬件导入。

同时,腾讯云也发现了几个CPU架构优化的案例。通过修改Linux内核软件,尽量避免触发,大大降低了不可恢复异常的触发概率。同时,腾讯云对CPU厂商的下一代CPU进行了改进和优化。

图片[5]-腾讯云服务器增加内存-腾讯云首次披露虚拟化技术发展路线图,看好轻量级虚拟化潜力-稻子网

针对 Linux 内核对 MCA 的支持,腾讯云还对内核的内存管理模块和 KVM 进行了优化。

相关优化在腾讯云基于Intel及后续云服务器上全面实现。

除了英特尔,腾讯云还与 AMD 合作实现了多项内存 RAS 特性,结合其他硬件可用性优化措施,提升腾讯云 AMD 云服务器 SA2 实例的可用性。

目前,腾讯云已成为第一家在数据中心大规模使用MCA技术的公司。通过一系列软硬件优化,腾讯云CVM云服务器通过MCA避免了大量内存UCE错误,大大降低了内存故障率。腾讯云云服务器的可用性一直处于行业领先水平。

第二个技术点是热迁移技术。

支持MCA等高级RAS特性后腾讯云服务器增加内存,腾讯云在物理服务器存在硬件隐患时不会关机,但存在隐患需要尽快下线维护。此时正在运行的云服务器呢?

针对这个问题,腾讯云采用热迁移技术解决了这个问题,可以在无意识的情况下将云服务器从一台物理机迁移到另一台物理机。在船上。因此,腾讯云通过热迁移技术,将云服务器的可用性提升到高于物理机本身的可用性。

图片[6]-腾讯云服务器增加内存-腾讯云首次披露虚拟化技术发展路线图,看好轻量级虚拟化潜力-稻子网

图片[7]-腾讯云服务器增加内存-腾讯云首次披露虚拟化技术发展路线图,看好轻量级虚拟化潜力-稻子网

热迁移示意图

在大规模实施的情况下,热迁移的难点体现在两个方面。一是热迁移的成功率。如果热迁移导致服务器负载过高,可能会导致热迁移失败。为了提高热迁移的成功率,腾讯云采用了包括RDMA在内的多项热迁移优化,将热迁移的成功率从70%提升到了99%。第二个难点是最小化实时迁移的停机时间。目前,腾讯云可以实现 50 毫秒的响应时间。范围内的实时迁移停机时间基本可以达到无感知的程度。

挑战二:如何减少虚拟化带来的损失?

第二个挑战是虚拟化为在同一台物理机上虚拟化多个虚拟机带来了灵活性,但同时虚拟化本身也会有一些性能损失。企业希望虚拟化技术能够保证性能与物理机相匹配,尽量减少虚拟化的损失,这也是虚拟化技术面临的一大挑战。

在减少虚拟化性能损失方面,陈立东以腾讯内部自研云流程为例。项目启动后不久,微信同事反映,其中一个模块的性能在测试过程中下降了 30% 以上。为此,腾讯云投入多位资深开发工程师进行分析,一共做了7轮优化,最终将KVM的虚拟化损失降低到5%。

针对Linux子机场景,腾讯云也结合KVM虚拟化本身做了一些性能优化,推出了腾讯的Linux发行版Linux,现已开源。

此外,腾讯云还对子机做了很多优化,逆向分析内核逻辑,特别优化了内核对KVM的支持,大大提升了腾讯云上云服务器的性能。

挑战三:如何提高虚拟化的稳定性?

图片[8]-腾讯云服务器增加内存-腾讯云首次披露虚拟化技术发展路线图,看好轻量级虚拟化潜力-稻子网

第三个挑战是在虚拟化之后,包括 CPU 和内存,还有一个额外的虚拟化层。企业希望虚拟化需要和物理机一样的稳定性,满足对业务响应延迟的极致追求。

除了一些性能测试工具的峰值性能,腾讯云更注重性能的稳定性和业务的实际体现。

陈立东提到,Linux本身的内核度算法是CFS,但经过分析,Linux本身的CFS调度算法并不适合完全满足虚拟化场景的需求。因此,腾讯云针对虚拟化场景开发了一套Linux内核。调度算法内部称为VMF。该算法的核心思想是保证虚拟机的任务首先被执行。通过这项技术,腾讯云在虚拟化场景下的调度延迟上,达到了与物理机一样的稳定性。

挑战四:如何快速交付?

第四点是交付效率。使用云后,客户希望尽快获得大量的计算资源。如何为客户提供秒级的交付体验也是一个挑战。

腾讯云早期客户反映,GPU机型购买后启动慢,需要几分钟才能启动,影响用户体验。虚拟机启动时,会提前分配并锁定所有虚拟机内存,虚拟机内存越大,启动越慢。这给用户带来了非常糟糕的体验,也是当时所有云厂商都面临的问题。

优化前,启动一个 700G 的虚拟机大约需要 270 秒。优化后启动时间缩短了22秒,大大提升了用户体验。腾讯云已贡献相关优化补丁。到社区。

轻量级虚拟化是未来

从腾讯虚拟化技术的演进路线,可以看出虚拟化技术存在的一些技术难点和热点,希望能给云计算开发者带来一些参考。

最后,陈立东还谈到了虚拟化技术未来的发展趋势和方向。他认为,未来虚拟化的一个主要发展方向是轻量级虚拟化,而要实现这一点,需要将虚拟化层做得尽可能简单,以减少损失。

“总的来说,要实现物理资源的拆分,尽量减少虚拟化的损失,这对整个底层来说还是一个非常大的挑战。” 陈立东指出。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片