作为云的IaaS大底层,CVM的机型矩阵已经全面覆盖电商、视频、游戏、金融、基因测序、智能语音、汽车、医疗、物联网等多种业务场景,开启了全行业的计算提速。Hypervisor作为云计算的基石,对虚拟机的性能优劣起着决定性的作用。腾讯云虚拟化技术在过去十年的发展中经历了多次更新换代、全面升级,在可用性方面提升效果明显。

虚拟化技术架构与挑战

虚拟化技术是云计算最核心的技术之一,也是云计算商业模式的底层支撑。海量服务器需要通过虚拟化的技术形成大的资源池,其重要性不言而喻。虚拟化技术整体架构图如下所示:

其中VStation作为云计算操作系统,承担了资源调度、请求排队的工作,通过Compute与底层虚拟化模块进行请求下发。虚拟化层负责资源的虚拟化,为每台CVM构造出完整的PC运行环境,包括CPU、内存、网络、存储各个部分资源。

主要包含Libvirt、QEMU、KVM三部分:

  • QEMU与KVM构成Hypervisor,负责CVM资源的虚拟化,在物理机上,虚拟出一个个完整的PC环境;
  • Libvirt负责提供统一对外的接口,用于管理Hypervisor。

伴随着业务的高速增长和发展,宿主机的异构趋势和虚拟机多样化需求等等呈现指数增长,对底层虚拟化技术的要求更是越来越严苛。当前云计算虚拟化面临的问题包括:

  • 可用性:硬件上复杂集成度的增加对降低故障率带来了巨大的挑战,在云上如何规避物理服务器宕机对虚拟机的影响,让业务层面减少感知甚至实现无感知;
  • 性能:业务追求虚拟化后的计算、网络、存储等各方面媲美物理机的性能,性能能否和过去IDC物理机相匹配?
  • 稳定性:稳定性方面能否保持像物理机一致的稳定性,满足业务对响应时延的极致追求?
  • 交付效率:业务对交付效率要求逐步苛刻,云上灵活的迁移调度如何提供秒级交付的体验?

腾讯云虚拟化技术巡礼

软硬件协同可用性提升方案

近年来硬件集成度不断增加,从CVM S2实例,整机宿主机56核256G内存,到S5实例96核384G,SA2实例192核512G内存;在未来的CPU厂商路标规划中也将推出单机超过400核的机型。硬件集成度增加大大降低单核成本,但也为降低故障率带来的巨大的挑战。分析现网故障数据,内存多比特错误导致的UCE错误是物理服务器宕机的主要原因。

服务器故障率统计

2019年腾讯云联合Intel定制CPU,支持高级RAS特性,来降低虚拟化场景下硬件故障对可用性的影响。这背后的代表性技术名为MCA Recovery,支持对内存UCE错误进行隔离,避免整机宕机。据了解,腾讯云是业界首家在大型数据中心中采用MCA Recovery技术降低内存故障率的厂商。

数据显示,由于软硬件协同的方式依赖Intel CPU架构、BIOS、BMC、Linux内核、上层资源调度管理,初期规避成功率不超过5%, 目前通过一系列的软硬件结合优化,腾讯云CVM云服务器通过MCA Recovery已规避大量的内存UCE错误,大大降低了内存故障率。

热迁移技术

CVM时运行于物理机硬件 + VMM(Virtual Machine Monitor)所构造的虚拟化环境中,一个云服务器是一个完整的PC系统,内部可以运行各种OS,如Windows/linux,用户的各类业务运行于OS内部。

热迁移技术是指把一台运行状态的CVM从其所在的物理服务器迁移到另一台物理服务器上,期间CVM的操作系统和操作系统内部的应用程序保持运行,业务对热迁移操作无感知。

热迁移示意图

对热迁移技术进行了专项优化迭代,热迁移成功率由70%提升到了98%,停机时间从秒级减少到50ms。同时针对大规格子机热迁移进行深度优化,解决大规格子机热迁移过程中性能下降的问题。

自研内核调度器VMF

Linux内核作为一个通用的OS,需要兼顾各种各样类型的进程,包括实时进程、交互式进程、批处理进程等。而调度器(Scheduler)作为OS的核心组件——CPU时间的管理器,主要负责选择某些就绪的进程来执行。

不同于传统的CFS调度器,(Completely Fair Scheduler简称,即完全公平调度器),腾讯云自研了一款针对虚拟机环境的运行特征定制的、专用的、能提升虚拟机latency和性能的、同时能满足腾讯云场景当前和未来可能的定制需求的,能持续演进优化的内核调度器——VMF。

VMF的基本原理为:根据虚拟机场景中的任务特征,将任务进行分类(分为4类),其中VM类型对应于虚拟机进程,具有绝对的最高运行权和优先级。针对不同任务类型制定相应的调度策略,将CPU资源尽量向VM任务倾斜(而不是考虑“公平”),如此最大程度的保障虚拟机的CPU资源供应,结合虚拟化层面的其他优化手段,让虚拟机拥有媲美物理机的极致性能。通过采用VMF调度算法,大大减少了母机进程对VCPU的干扰, 达到了和物理机接近的稳定性。

VM启动优化

对于GPU机型,目前采用设备直通的方式,虚拟机启动的时候,提前分配并锁住全部的虚拟机内存,而虚拟机内存越大,启动就越慢。以700G内存的虚拟机为例,启动时间高达270秒左右。

问题的本质在于内核为虚拟机分配内存时、为了防止信息泄露,在一个单线程的持所环境中,把分配到的内存全部清零,导致处理耗时较长。

腾讯云引入了新的机制,并把清零的工作挪到用户层,由所有vCPU线程并发执行。经测试,上述启动时间需要4.5分钟的虚拟机,优化后的启动时间只需22秒。相关补丁已经贡献给社区并被接纳。

关注开源

腾讯云是最早拥抱KVM技术的云计算服务商,早在2013年,腾讯云基于对虚拟化技术未来发展方向的判断,便全面采用由开源社区支持的KVM技术,并投入核心团队参与研发。近年来,腾讯云还一直积极推进虚拟化开源建设。在去年的KVM Forum上,腾讯云凭借年度40个patch的贡献,名列全球第七,连续三年KVM社区国内贡献排名第一,连续三年成为国内唯一登榜的云计算服务商。其中,腾讯云今年贡献的 3 个技术特性,还被评为KVM年度核心突破。

如何计算虚拟化vcpu_首次公开:腾讯云虚拟化技术原理及可用性提升实践相关推荐

  1. 小游戏专场:腾讯云Game-Tech技术沙龙上海站顺利落下帷幕

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云发表于云+社区专栏 9月14日腾讯云GAME-TECH技术沙龙小游戏专场在上海顺利举办,此次技术沙龙由腾讯云的资深专家,以及 ...

  2. GAIR 2020 工业互联网专场演讲实录:腾讯云人工智能在工业互联网领域的实践

    2020年8月7日-9日,第五届CCF-GAIR全球人工智能与机器人峰会于上周五正式在深圳开幕. CCF-GAIR 2020将延续过去的强大阵容,在新基建机遇下,CCF-GAIR 2020 设立了 1 ...

  3. 腾讯云DevOps技术揭秘:新时代运维重器Tencent Hub最佳实践

    随着云计算和容器技术的发展以及微服务架构的兴起,服务能够实现细粒度的部署,维护和伸缩.在使开发人员能快速开发的同时,这些技术也给系统和应用的运维带来了更大的挑战.DevOps理念也应运而生,强调研发和 ...

  4. 腾讯云 Game-Tech 技术沙龙小游戏专场“空降”长沙

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云发表于云+社区专栏 小游戏作为今年快速成长的新生态,在开放进入市场之后持续成为行业热点,获得了游戏开发商的高度关注与参与.在 ...

  5. 腾讯云视频技术全面升级 明眸、Tencent-RTC首度亮相

    5月23~24日,2018腾讯云+未来峰会在广州开幕.作为本届大会的重要议程之一,以"智绘视界.乐享未来"为主题的腾讯视频云分论坛引发了业内格外关注.峰会上,腾讯云正式发布音视频A ...

  6. 服务器虚拟化用户手册,京华科讯 服务器虚拟化管理软件用户手册

    <京华科讯 服务器虚拟化管理软件用户手册>由会员分享,可在线阅读,更多相关<京华科讯 服务器虚拟化管理软件用户手册(42页珍藏版)>请在人人文库网上搜索. 1.服务器虚拟化管理 ...

  7. 揭秘腾讯云最新音视频及融合通信技术实践

    社交到视频会议,从金融到医疗,云端通信能力正在与传统的电话/IM.呼叫中心.企业通信融合,打通各个端与渠道的数据,实现实时互联与掌控.而音视频技术在其中扮演着重要的角色,如何为用户提供更低延迟.更佳体 ...

  8. 腾讯云+社区技术沙龙预告

    在很多外行人的眼里,程序员就是神一样的存在.他们全年996,节假日无休,不仅Python.Java.PHP要样样精通,还要会修电脑修音响修手机,做前端要懂运维,做后台要懂运营--可是程序员毕竟是人不是 ...

  9. 腾讯云TDSQL数据库信创演进与实践

    日前,在中国电子信息行业联合会面向行业优秀品牌教育培育<2020-2021年度优秀创新软件产品>的征集中,腾讯云分布式数据库TDSQL管理系统成功入选,并荣获"年度优秀软件产品& ...

最新文章

  1. Web - 客户端存储的几种方式
  2. 【Java面试题】41 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?...
  3. c语言实现点在多边形内部,C语言中实现 点在多边形内 算法
  4. Caffe RPN:把RPN网络layer添加到caffe基础结构中
  5. CSS 布局实例系列(四)如何实现容器中每一行的子容器数量随着浏览器宽度的变化而变化?...
  6. 2010年下半年计算机专业技术资格考试工作安排
  7. jQ效果:简单的手风琴效果
  8. overridePendingTransition介绍
  9. 【codevs1001】舒适的路线,心累的冰茶几
  10. 4G终端-基站-核心网 信令流与数据流
  11. [Leetcode]Next Permutation
  12. QQ邮箱自动登录问题--frame嵌套元素定位
  13. Unity 不使用BMFont创建Font字体
  14. 正确使用ViewStub
  15. c语言如何编程出声音,C语言播放声音最简单的两种方法
  16. selenium怎样定位web动态提示语
  17. 什么是散列表(Hash Table)
  18. shell脚本回车换行_终于搞懂了回车与换行的区别
  19. 恋人日记服务器维护中,知乐日记:恋人不会在最终相遇 因为他们本来就一直在一起...
  20. 第七章 本源时空

热门文章

  1. 新iPhone机模曝光:依旧三款配色 难有渐变机身
  2. 苹果在中国设立首个App设计开发加速器
  3. 今日头条官方辟谣:水滴筹从未收取过手续费
  4. 拳王虚拟项目公社:如何通过知识付费赚钱,知识付费搬运赚钱,虚拟资源付费项目
  5. 拒绝PPT手机?魅族首款真无孔手机将开启众筹
  6. 基于Linux和MiniGUI的嵌入式系统软件开发指南(四)
  7. 离开HK后的第一篇所感--重生
  8. 创建型模式、结构型模式和行为型模式_设计模式之创建型模式
  9. c++ signal 信号退出
  10. 智慧讲台:office 文件 pdf 文件 转成 png图片