HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

领域专有时代的操作系统「龙蜥」,是如何炼成的?

  • 2022-12-15
    北京
  • 本文字数:3501 字

    阅读完需:约 11 分钟

领域专有时代的操作系统「龙蜥」,是如何炼成的?

本文整理自龙蜥社区技术委员会主席,阿里云操作系统技术总监杨勇在 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 去支持操作系统的开发者,以更低的成本在各个碎片化的场景里得到最优化的系统;最后,还有一个非常重要的点,就是操作系统帮助用户做到数据化、智能化的资源分配。


以上,就是龙蜥社区面对未来趋势的应对和探索。

讲师介绍:

杨勇,龙蜥社区技术委员会主席,阿里云操作系统技术总监。


相关链接:

龙蜥社区理事长马涛:进一步释放底层算力,打造面向云时代的操作系统

龙蜥技术委员会主席杨勇:下一代操作系统展望

系统运维利器,百万服务器运维实战总结!一文了解最新版 SysAK|龙蜥技术

2022-12-15 17:302730

评论

发布
暂无评论
发现更多内容

信息安全之我见(45/100)

hackstoic

信息安全

云原生的学习心得

Geek_e8bfe4

云原生(三十六) | Kubernetes篇之Harbor入门和安装

Lansonli

云原生 9月月更

Java进阶(五)Junit测试

No Silver Bullet

JUnit 测试 单元测试 9月月更

随机生成也是需要有效控制的

zxhtom

9月月更

库调多了,都忘了最基础的概念-《方法篇》

知识浅谈

9月月更

神级编程网站,堪称程序员的充电站,我给你找好了不能错过

C语言与CPP编程

编程 程序员 网站 计算机 编程语言‘

云资源管理概述

阿泽🧸

云资源 9月月更

生产环境中使用 Linkerd

CTO技术共享

YAML管理Kubernetes应用

CTO技术共享

数字化转型和信息化的区别是什么?

雨果

数字化转型 企业信息化

浅述AIOps与DevOps的区别在哪里

穿过生命散发芬芳

DevOps AIOPS 9月月更

2022-09-04:以下go语言代码输出什么?A:不能编译;B:45;C:45.2;D:45.0。 package main import ( “fmt“ ) func main() {

福大大架构师每日一题

golang 福大大 选择题

计算机网络的组成

StackOverflow

编程 计算机网络 9月月更

1分钟了解什么是数据湖?标准的数据湖什么样?

雨果

数据湖

使用 VUE 和 Go 触摸 WebAssembly

devpoint

Go Vue webassembly 9月月更

查看k8s的etcd数据

程序员欣宸

Kubernetes 9月月更

深入学习SAP UI5框架代码系列之二:UI5 Module的懒加载机制

汪子熙

JavaScript 前端框架 SAP ui5 9月月更

Containerd ctr、crictl、nerdctl 实战

CTO技术共享

【精通内核】Linux内核并发控制原理信号量与P-V原语源码解析

小明Java问道之路

Linux 并发控制 内核 Linux内核 9月月更

「趣学前端」SVG,边学边做

叶一一

JavaScript 前端 9月月更

你猜 1 行Python代码能干什么呢?神奇的单行 Python 代码

梦想橡皮擦

Python Python. 9月月更

NFT数字藏品介绍:NFT数字藏品(交易平台)系统开发

开源直播系统源码

区块链 NFT 数字藏品 数字馆藏

你真的理解C语言中的 “ 数组 ” 吗?(初阶篇)

Albert Edison

数组 C语言 开发语言 二维数组 9月月更

[教你做小游戏] 滑动选中!PC端+移动端适配!完美用户体验!斗地主手牌交互示范

HullQin

CSS JavaScript html 前端 9月月更

致敬经典!这款华为主题能让你的手机秒变“历代Mate”

最新动态

自动化测试如何管理测试数据

老张

自动化测试

【CSS】 position : static | absolute | relative | fixed | sticky

翼同学

CSS 前端 9月月更

真的破防了!在华为主题熄屏显示找到我的第一台Mate

最新动态

一款开源的电商框架介绍:Spartacus

汪子熙

typescript angular SAP Spartacus 9月月更

《小米创业思考》之一:小米历程

郭明

读书笔记

领域专有时代的操作系统「龙蜥」,是如何炼成的?_开源_杨勇_InfoQ精选文章