本文整理自龙蜥社区技术委员会主席,阿里云操作系统技术总监杨勇在 DIVE 全球基础软件创新大会 2022 的演讲分享,主题为“龙蜥:领域专有时代的操作系统”。
以下为杨勇演讲的精华内容,经编辑。
后摩尔定律时代,领域专有架构(DSA)成为未来计算机体系结构创新的主旋律。以垂直场景为中心,System Design For Application 的时代再度到来。
数据中心领域,传统 IT 业务 “云化” 是一个长期的过程,一云多芯,异构的数据中心逐渐呈现场景多样化的局面。从资源池管理,到操作系统、基础软件、业务软件的部署,碎片化的时代已经到来。
由云计算、操作系统、芯片厂商共同发起的龙蜥社区,因何而生,解决了什么问题,又将如何应对未来的挑战?让我们一起了解龙蜥操作系统是什么,以及龙蜥操作系统如何应对新时代的挑战。
龙蜥操作系统是什么
龙蜥社区是由 16 家理事单位共同发起、共同治理的,包括了主流的芯片厂商、操作系统厂商以及云厂商。我们社区也在一直积极地吸纳合作伙伴,目前已经形成初步产业覆盖。
龙蜥社区的合作伙伴由操作系统、芯片、云、硬件、应用软件开发商以及解决方案商组成,这些产业力量加入到开源社区以后,在社区的平台上有更多商业合作,也有更多的创新项目去孵化。这些项目围绕着“三大主线、六个方向”去开展。
“三大主线”分别是应用生态,基础软件以及硬件生态。从应用生态的视角来看,一个好的操作系统一定要考虑最新的、最领先的编程语言,一定要考虑新的赛道,考虑新型的编程模式对操作系统的冲击,因此在编程语言、云原生上,我们希望有更多的创新。而基础软件则有两个非常重要的方面,一个是安全可靠,一个是高性能化,这是所有基础软件必须考虑的问题。最后,硬件生态方面,就是要做好软硬协同,多芯片平台的支持。
我们社区的操作系统产品矩阵目前有两大形态,一类是经典的发行版,就是 Anolis OS,目前已经发布了多个版本。另外一个是针对云原生容器场景,容器专属的 OS,Lifsea OS。
首先介绍一下社区的 Anolis OS 8 发行版。Anolis OS 8 是龙蜥社区的一个经典版本,而且是长期稳定版,在 CentOS 停服以后,提供了低成本的 CentOS 迁移解决方案及工具。在发布的第一天,我们就支持了国内外的主流芯片,特别是国产芯片。整个操作系统的软件栈上有三层,分别包含 RHEL 兼容组件、社区创新自研组件、商业化组件。
接下来让我们介绍一下云原生场景专属 OS。随着云的演进、云的发展,传统 OS 在云原生场景下暴露出种种“不适”,主要体现在以下三方面。
• 体积臃肿:OS 镜像体积大、启动慢;
• 版本零散:集群内不同节点软件包版本不一致,给集群运维带来困难;
• 安全风险:冗余的组件带来更大攻击面,OS 黑屏运维操作难以追溯。
于是,新的云原生场景的专署操作系统应运而生,龙蜥推出了 LifseaOS,希望能够实践云原生场景的不可变基础设施的理念。LifseaOS 具有很多优势,它比传统 OS 更精简、系统攻击面更小、启动更快速;默认集成云原生组件,系统开箱即用;通过根文件系统只读、原子升级回滚,保证集群节点运维一致性。更重要的,这个 OS 已经在云计算厂商服务了众多容器化和 Serverless 的用户。
领域专有时代的挑战
计算产业未来的趋势一定是云计算,而在云时代,操作系统面临哪些挑战呢?
站在云厂商的角度,我们看到,未来有三大趋势或者挑战:一是系统设计以应用为中心,今天出现了基于云的专署定制的硬件。由于摩尔定律的失效,为提供更有竞争的算力,更多的芯片设计系统都是以应用为中心设计的;二是场景都是碎片化的,没有一个通用的操作系统能满足所有场景的挑战;三是资源分配精细化了,原来应用部署在一台物理机上,现在变成了几十个、上百个容器或者虚拟机。这些趋势让操作系统面临各种问题,比如算力难以充分释放、研发成本高、运维管理成本高。
面对这三大挑战,有什么应对之道?关键在于垂直协同优化。一方面做好分层抽象,同时要有自适应甚至智能调优的能力,让用户变得更简单。另外一方面也需要考虑实际的具体问题,具体场景大致可归纳为三类。
系统设计以运营为中心,异构数据中心成为趋势。希望有统一的资源池管理这些异构数据中心,以减少异构系统并池管理带来的性能差异以及管理复杂度;随着面向应用场景设计的 DPU 的出现,支持 DPU 接口的多样性,真正释放硬件潜能也越来月重要。
场景碎片化,系统无法做到开箱即用的最佳性能。同一套通用操作系统支持多个场景,怎么去做取舍成为难题。云原生的部署方式让我们不需要再做取舍,既提供通用镜像,也提供针对不同垂直场景优化的定制镜像,但又没有非云场景的定制镜像的部署成本。
云原生高密部署呼唤更精细化的资源分配。微服务,多租户,制定异构资源池的容器高密部署场景下的细粒度资源分配方案带来非常多的挑战。龙蜥社区的创新案例中,有弹性的 CPU Burst 带宽控制方案、在多租户场景下使用效果显著。
技术案例
接下来让我们一起看看,龙蜥社区在过去一年积累的技术创新案例,通过这些案例,可以进一步理解龙蜥社区是如何应对云时代的三大挑战的。对每个技术案例,我们都会介绍一下,它们应对的什么样的场景和挑战,又创造了哪些价值和贡献。
KeenTune 是一款技术调优工具,它主要面向的场景和挑战:
• 场景碎片化,开箱即用的性能无法得到保障;
• 性能调优门槛高,成本高,且非常容易出现跷跷板现象;
• 相似的场景下,业务代码持续迭代变更,调优经验难以固化。
它创造的价值和贡献:
• 引用 AI 算法,协助进行敏感参数识别及参数调优,有效降低调优门槛和成本;
• 使用专家知识库进行复杂参数关系管理,同时解决经验固化问题;
• 在裸机、VM、容器等多场景上,达成平均 30%+性能提升。
Plugsched SDK 是一个调度器热升级开发框架,是给内核开发工程师提供了一个低风险、低开销、易应用的开发设施,它面向的场景和挑战是:
• 内核调度算法优化工作在碎片化场景下成本极高,风险极大;
• 内核发布周期长,升级内核成本高;
• 优化容易引发性能问题,且问题回滚难。
它创造的价值和贡献:
• 提供调度器算法开发框架,帮助实现模块插件构建和发布;
• 热安装模块插件,安全简便,让内核研发敏捷高效;
• 支持回滚卸载,降低风险。
Express UDP 是一个精简协议栈,它面向的场景和挑战是:
• QUIC 成为 HTTP3.0 事实标准,但在 DPU 上没有释放出最佳性能;
• DPU 的 virtio 接口对 XDP 支持不友好,XDP 场景存在可用性问题。
它创造的价值和贡献是:
• 解决了 DPU 对接 QUIC 场景的性能和易用性问题,QUIC+ Express UDP + virtio-net + DPU 形成软硬协同方案;
• UDP 收发性能提升 3~8 倍,QUIC 端到端 QPS 提升 50%;
• 升级 virtio 规范,成为事实标准。
SMC-R 是一个弹性 RDMA 内核协议栈,它主要面向的场景和挑战是:
• 随着 DPU 的普及,RDMA 成为 DPU 的标准接口,大规模 RDMA 部署成为可能;
• RDMA 应用生态缺乏,云上应用大部分不支持 RDMA。
它创造的价值和贡献:
• 基于 DPU RDMA 接口,支持所有网络应用通过标准接口使用 RDMA,形成 DPU + RDMA 驱动+ SMC-R 软硬协同的协议栈;
• 网络性能提升 20%~50%;
• 大量性能优化、功能及稳定性增强贡献到上游 Linux 社区,共 60+补丁。
CPU Burst 是一种弹性 CPU 带宽控制技术,它主要面向的场景和挑战是:
• CPU 资源分配不合理经常引发容器 QoS 问题,预留空闲资源容易造成 CPU 利用率低,高密部署时,CPU 限流设置经常导致应用突发负载引起的性能抖动。
它创造的价值和贡献是:
• 提出 CPU Burst 技术,更精细化分配 CPU 资源,允许容器积累过去未使用的 CPU 资源,在需要时突发使用 CPU 资源,避免不必要的 CPU 限流;
• 帮助用户同时获得高 CPU 利用率并确保性能。
因时间所限,更多的技术案例在这里不能一一介绍了,欢迎访问龙蜥社区的网站,或者加入龙蜥社区的用户开发者社群,进一步了解社区的最新进展。
未来展望
最后,讲一下关于未来,龙蜥社区的思考。
让我们设想一下面对云时代的三大挑战,一个理想的社区以及理想的操作系统应该是什么样的?
首先,如果未来的计算平台是以应用为中心去设计软硬件的,那么操作系统的软硬协同也应该以应用为中心来设计;其次,由于场景的碎片化,软硬协同的能力需要有一个体系化的方式。例如,用 SDK 去支持统一资源池的、高效的能力复用;用 SDK 去支持操作系统的开发者,以更低的成本在各个碎片化的场景里得到最优化的系统;最后,还有一个非常重要的点,就是操作系统帮助用户做到数据化、智能化的资源分配。
以上,就是龙蜥社区面对未来趋势的应对和探索。
讲师介绍:
杨勇,龙蜥社区技术委员会主席,阿里云操作系统技术总监。
评论