加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

腾讯云虚拟化:坚定的开源主义者

发布时间:2020-11-06 15:16:14 所属栏目:动态 来源:站长网
导读:只要有足够多的眼睛,就可以让所有问题浮出水面。 在开源社区,以开源理念的发起者之一、Linux创始人林纳斯托瓦兹名字来命名的林纳斯定律为不少开发者所共鸣。也正是这种共创共享的精神内核,让开源自1988年发展至今,并逐步成为全球IT软件的重要组成。 根据全

“只要有足够多的眼睛,就可以让所有问题浮出水面。”

在开源社区,以开源理念的发起者之一、Linux创始人林纳斯·托瓦兹名字来命名的林纳斯定律为不少开发者所共鸣。也正是这种共创共享的精神内核,让开源自1988年发展至今,并逐步成为全球IT软件的重要组成。

根据全球最大开源代码托管平台 GitHub 年度报告数据显示,截至 2019 年 GitHub 托管仓库已有 1.4 亿,2019 年新增仓库 400 万个,创建第一个项目的用户比 2018 年增加44%,130 万开发者对开源做出首次贡献。SourceClear 调查报告指出开源项目已呈现指数级增长趋势,2026 年预计超过 3 亿。

在腾讯云,也有这样一支专门面向开源的小分队:他们深耕云计算的最根本技术之一——虚拟化,并始终以拥抱开源、回馈开源作为使命。

10月29日,在全球虚拟化顶级技术峰会KVM Forum上,2020年全球企业KVM开源贡献榜正式公布,腾讯云再度荣登该榜,其中两项技术方案被评为KVM2020年度核心突破。腾讯云因此也成为国内唯一连续四次登榜的云服务商。

腾讯云两项技术方案获评KVM2020年度核心突破

不止于此,腾讯云目前在KVM开源社区已贡献超过170个patch,超过20个技术特性,其中8个被评为KVM年度核心突破,贡献国内排名第一。也正因为在开源领域的突出贡献,腾讯云已经累计7次受邀在KVM Forum发表演讲。

团队成员说:“之前中国人一直被开源社区诟病,认为中国人总索取,不贡献。我们希望用行动说话,为开源社区贡献真正硬核的好东西,慢慢改变开源社区对中国的偏见。”

探索无人区

KVM是当前云计算中计算虚拟化的主流技术。云服务商通过KVM对物理服务器进行虚拟化后生产出云服务器,用户就能从虚拟资源池中按需购买不同规格的云服务器产品,进而获取对应的计算能力。

然而,当时间回流至2013年,KVM却并不是云计算的“真命天子”。

彼时,腾讯云刚刚从服务腾讯开放平台上的合作伙伴升级为面向社会全面开放。腾讯云虚拟化技术团队正在思考,采用什么样的技术栈,能够保障好更大规模云上用户业务安全性、连续性和稳定性。

业界当时最主流的虚拟化技术是Xen,由剑桥大学开发。不管其他云服务商,还是腾讯内部,Xen都是计算虚拟化的不二之选。可是,Xen的痛点在于,代码过于复杂,当规模达到一定程度后,出问题的几率倍增,且难以把控,最终极有可能给云上用户带来损失。

KVM更像是后起之秀。代码简单清晰,从原理上分析相对Xen具有更好的技术前瞻性。但问题是,它仅有一个初级的社区开源版本,而尚未作为一个主流的技术栈为业界所验证。

是跟随主流还是探索无人区,需要技术团队迅速做出抉择。

经过充分的探讨,腾讯云虚拟化技术团队的选择是KVM。“面对产业数字化的契机,云计算作为产业互联网的底层基石,未来一定有巨大的成长空间。Xen大概率不能满足未来大规模应用场景下的技术需要,探索KVM虽然相对来说更加艰难,但这是一条必由之路。”腾讯云资深虚拟化技术专家马文霜回忆起当时的决策过程。

但为了稳妥,团队最开始还只是拿出5%的机器作为KVM的技术试验场,小步快跑。

试验总会充满波折。很快,团队就经历了一次面积较大的KVM 虚拟机宕机事故。好在经过周密的检查,发现这个事故源自于KVM 开源版本里一个小错误,改掉就可以恢复正常。

随后的过程虽然也是问题不断,但经过团队的努力,一个个难关逐步被攻克。团队的技术也在不断进化,包括重构了整套技术逻辑,以及研究出基于KVM的热升级技术,能够在用户无感知的前提下,快速处理一些底层故障。

技术团队合影

这至少证明了,KVM这条技术路线能走通。2014年起,腾讯云云服务器CVM已全部基于KVM技术生产。

值得一提的是,2015年,其他云服务商因为感受到 Xen 的局限性,也开始将虚拟化技术从 Xen 切换到 KVM。此时,腾讯云在KVM技术栈上已经积累两年。

从开源中来,到开源中去

独行快,众行远。

KVM运转起来不代表一劳永逸。初级开源版本没有经过集群验证和海量业务测试,也不能把所有代码路径跑到。在真正的业务应用过程中,需要踩的坑超出想象。

如何在踩坑中让KVM快速成熟起来?腾讯云虚拟化技术团队的答案是开源——借助腾讯的场景把KVM用起来,发现和解决问题,然后把方案开源,从而带动更多开发者关注,更多人发现问题,更多人解决问题,最终实现KVM技术演进的利益共享……

2014年底,一个棘手的问题浮现出来。一些大型游戏客户在使用KVM生产出来的云服务器时,经常出现CPU占用率高,抖动很大的情况,用户能感到明显的掉帧。

看代码,复现问题,技术团队发现了中间的规律——游戏类业务需要关联KVM底层的定时器,游戏人数达到一定量的时候,因为一些原因会导致定时器异常。同时,技术团队发现,出现这个问题是因为KVM架构中时间戳计数器的逻辑有bug。技术团队采取现网修复的方式解决了这个问题。

问题得到解决后,技术团队迅速将bug解决的过程写成一个patch提交给社区,经过一系列严格评估,官方认可了由腾讯云团队贡献的第一个patch。

KVM社区确认腾讯云首个patch贡献的邮件

后来,类似的贡献还有,KVM架构中irq路由表的bug修复,解决大存储高负载的场景中虚拟机出现恶性宕机……

2015年,更大的挑战爆发。因为内存存在批次性质量缺陷,基于KVM生产的云服务器故障率飙升。厂商的解决方案是更换内存,但换内存意味着物理服务器需要关机重启。这对于客户尤其是大量的游戏客户来说,显然无法接受。

能不能把虚拟机环境在运行态中直接搬迁至健康的服务器上?KVM架构中的热迁移技术设想给了技术团队启发。可是问题在于,这个技术存在较大的环境依赖,需要结合业务负载、硬件代次等一系列复杂的因素做技术优化,而且没有实践先例。

“没有退路可言,只有死磕。”如今的腾讯云虚拟化技术负责人陈立东,这样形容当时的压力。

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!