首发于 开源评论
我所见的欧拉操作系统 22.03 LTS | Linux 中国

我所见的欧拉操作系统 22.03 LTS | Linux 中国

这个容纳了诸多创新特性的长期支持版本,正在绽露出勃勃生机和更高追求的坚定信心。
  • 作者:硬核老王

(本文字数:4755,阅读时长大约:8 分钟)

引言

2022 年 4 月 15 日,在欧拉开发者大会上, 欧拉 的首个 数字基础设施全场景长周期版本 openEuler 22.03 LTS 正式发布 。这是继两年前的 上一个 LTS 版本 之后发布的第一个 LTS 版本,也是在将欧拉项目 捐献 给开放原子开源基金会之后的首个社区共建版本。这个版本融合了之前的三个创新版中经过验证的新特性、新方向,来自 社区的 773 名贡献者 上百家厂商和用户 参与了版本开发,仅仅是代码就 新增了 2300 万行

作为一直关注欧拉发展的业内人士,我对这个里程碑版本期许颇高。这个版本虽然距离上一个创新版发布才仅仅半年,但是却容纳了两年来三个创新版的各种尝试和新特性,因此,想全面的了解 openEuler 22.03 LTS,可能会发现其所承载的内容十分之多,不易抓住重点。在这里,我将我所了解到的信息,梳理之后整理给大家,以使大家可以在选型、评估和使用时有所参考。

版本路线图

对于不太熟悉欧拉的同学,我这里简单介绍一下欧拉之前的发展路线:

2019 年 12 月 31 日,openEuler 正式宣布开源,其脱胎自华为内部基于 Linux 的积累。四个月后,openEuler 发布了第一个版本 20.03 LTS,它也是一个长期支持版本。

其后,openEuler 按照半年一个版本的节奏发布了三个创新版。从创新版开始,华为之外的多个公司、团队、独立开发者参与到了 openEuler 的开发当中。在这几个创新版中,提出、融入了多个值得一提的新特性,如内核热升级、内存分级扩展、千核运算能力、业务混部 CPU 调度算法等核心能力,也从面向云计算逐步拓展到支持边缘计算、嵌入式的全场景领域。

图片来源于《openEuler 22.03 LTS 技术白皮书》

这一切,在刚刚发布的 openEuler 22.03 LTS 得到了融会贯通,将在之前的创新版中经过产品环境验证和打磨的优秀特性和创新,有机的组织起来,并形成了一个统一的基础设施基座。

跨越式进步

根据官方数据,我们看到,这次的 22.03 LTS 和两年前的 20.03 LTS 相比, 整体来说内容丰富了许多

比如软件包数量:20.03 LTS 官方提供的软件包, 包括 ISO 镜像中的 2016 个、EPOL 仓库中的 762 个,总计 2778 个;而在 22.03 LTS 中,软件包数量达到了 ISO 4241 个、EPOL 1329 个、oepkgs 13323,总计 18893 个!达到了两年前的 6.8 倍。


openEuler 软件包数量:20.03 vs 22.03

不只是软件包的数量,欧拉操作系统所支持的硬件架构,也从两年前的 64 位的 ARM 和 x86 架构,又增加了两个:32 位的 ARM 架构,以及国产 CPU 申威架构。曾经连续多次取得超算 TOP500 世界排名第一的 中国超算神威·太湖之光 中安装的就是 40960 个申威 CPU。通过支持这些架构,欧拉操作系统就可以 运行在鲲鹏、英特尔、飞腾、申威、龙芯、兆芯等主流芯片 之上。

而能在两年间取得这样的大跨步进展,背后是欧拉社区的“疯狂输出”。根据数据,欧拉操作系统当前已有 69891 个提交,仅 22.03 LTS 这个版本就 新增了 2300 万行代码 。今年以来,欧拉操作系统已经发布了 127 个安全公告,几乎平均每天发布一个。在欧拉操作系统发布以来,其已经创建了 241 个创新项目代码仓, 平均每 3.5 天新增一个 。而这一切,都是 773 位开发者不断努力的结果。

根据欧拉发布的 数据看板 ,到目前为止, 欧拉已经有社区用户 479990 位,其中贡献者 8515 位,单位会员 333 家;合并请求 5 万余,评审 30 万条;成立了近百个 SIG,创建了近 9 千个代码仓


(来源于欧拉数据看板,数据时间:2022/04/20)
“终始惟一,时乃日新”

就此,我问了欧拉社区技术委员会主席胡欣蔚,“欧拉为何能做到这样大的跨越式进步?”他谦逊地表示,这只是“两年的厚积薄发”。当然,能取得这样的进展,也是在欧拉的开发和管理上,将“华为在开发和工程方面的经验”和开源运作的模式进行了结合,并得益于欧拉社区开发的一系列迁移工具。

根据公开披露的信息,欧拉操作系统在政府、运营商、金融、能源、交通、互联网等行业已达到规模应用, 累计部署超过了 130 万套 。2022 年,预计欧拉操作系统将在行业的应用新增超过 200 万套。

主要特性

内核和底层改进

在 openEuler 22.03 LTS 中,采用了经过长期打磨和调校的 Linux 内核 5.10 长期支持版,在这个版本中,华为向上游 Linux 内核社区提交了大量贡献。可以说,这个内核版本是华为的一个“锚定”版本。在此版本上,openEuler 融入了之前三个创新版中经过商业验证的创新特性。

图片来源于《openEuler 22.03 LTS 技术白皮书》

欧拉操作系统使用的是 Linux 内核 5.10,但除了 Linux 内核自身的特性之外,欧拉操作系统在内核中还做了十余处创新增强,主要包括用来提升性能的 进程调度优化 大页内存性能优化 OOM 内存回收优化 XDP 网络性能优化 等。比如它集成了一套新的 QoS 调度机制,使得在线业务可以实现抢占式优先;而 OOM 分级使得离线业务的内存可以在欧拉操作系统中得到极速的回升,这二者结合起来,就提供了对 QoS 最强有力的支撑。又比如 UC 容错使得欧拉在面对硬件可靠性问题的时候更加有力,不再需要简单粗暴的重启,而是可以通过对于具体进程的控制,来实现错误的隔离。

除了这些 隐蔽但重要的内核改进 之外,如今在运维领域已经大量使用了非易失性内存(NVDIMM)存储介质,而传统的 Ext4 文件系统尚缺乏针对性的优化,因为 Ext4 本身是针对旋转式硬盘设计的文件系统。尤其在元数据管理方面,基于现有日志同步机制,其元数据管理开销大,且容易出现写放大问题,无法充分发挥 NVDIMM 优势。欧拉操作系统中集成的 Eulerfs 其创新的元数据软更新技术,减少了元数据同步开销, 有效提升文件系统的系统调用性能 。在单机应用、云原生分布式应用高性能数据存储场景,可以代替 Ext4、XFS 等文件系统。

在这个版本中,还吸收了鸿蒙中的 分布式软总线能力 ,可以实现欧拉设备之间的自发现、自联通,以及欧拉和鸿蒙设备的自发现。

云计算强化

针对云原生业务混合部署场景,欧拉操作系统中创新的 QAS 算法,是一种 适用于云原生场景,业务混合部署 的全新调度算法,可以确保在线任务对 CPU 的快速抢占,确定性的调度运行,同时压制离线任务干扰。这些改进适用于对交互类等时延敏感型业务(比如 MySQL、Redis、Nginx 等)和 CPU 消耗重且时延不敏感的业务(如 AI 离线训练)的混合部署。

根据欧拉发布会现场的演示,一台服务器部署了欧拉操作系统 22.03 LTS 中的改进技术,而另一台没有。这两台服务器上,都同时运行相同的在线和离线两类业务。通过运行结果可以看到,在一台服务器上的 QPS 是 1.18,而另一台上达到了 2.62,相差了 将近一倍 ;而时延分别是 1.53 秒和0.60 秒,相差也 将近一倍

https://www.zhihu.com/video/1502290369702653952

除此以外,欧拉操作系统还针对云计算,推出了容器化操作系统 KubeOS,实现云原生集群操作系统的统一容器化管理。它可以对操作系统进行容器化管理、对接 Kubernetes、原子化的生命周期管理;它也对操作系统进行了轻量化裁剪,减少不必要的冗余包,可实现系统的快速升级、替换等。而在底层,欧拉操作字体结合虚拟化运行时 StratoVirt、容器管理引擎 iSulad 构建了安全容器方案,较之传统的 Docker + Qemu 方案,其底噪和启动时间优化高达 40% 以上,为应用提供了一个轻量、安全的执行环境,隔离了容器和宿主机操作系统间、容器间的安全风险。

四大场景 & 五个统一

作为一款发轫于服务器领域的操作系统,欧拉在这个版本也正式支持了更多相关场景。按欧拉的话来说,就是四大场景: 服务器、云计算、边缘计算和嵌入式 。服务器和云计算这并不足为奇,而扩展到边缘计算和嵌入式领域,一方面是暗合了如今的计算潮流,另一方面,我认为,也和华为在边缘计算、嵌入式领域的传统优势有关。此外,作为专注于边缘计算和嵌入式等领域的鸿蒙,在这个领域和欧拉会师,我认为倒不是一种冲突,而是一种融合。

在四大场景的背后,欧拉宣称,他们做到了五个统一: 统一内核、统一构建、统一 SDK、统一联接和统一开发工具 。在社区开发过程中,欧拉把所有场景的所有组件的开发都归到了一个 openEuler 代码仓上,通过这种方式实现了任何场景都基于同一套代码。并且,欧拉操作系统通过 EulerMaker 项目提供了一套 完整的构建和裁剪能力 ,这使得基于同一套代码构建的二进制,在面向不同的场景发布的时候,可以自如地进行构建和裁剪,最终形成适用于不同场景的镜像。

“功崇惟志,业广惟勤”

当然,能够在一套代码的基础上同时适应多种场景,这其中一定存在必要的取舍。胡欣蔚说,“欧拉会针对各个场景对模块/特性进行裁剪”,让各个组件、模块在不同场景能发挥各自的作用。“但是欧拉不接受只针对特定场景的定制开发,而且如果对整体架构形成冲击的话,是不会纳入到代码仓的,”他说,“欧拉会设计好这样的一套架构,使得不同组件在不同的架构下代码是归一的,通过裁剪工具,可以面向不同场景构建,并且差异化是可控的。”

在边缘计算方面,openEuler 22.03 LTS Edge 支持 KubeEdge + 边云协同框架,具备边云 应用统一管理和发放等基础能力。

而对于嵌入式领域,其镜像大小 < 5M,启动时间 < 5S,其基于 Linux 5.10 内核提供了软实时能力,中断响应时延达到看微秒级。它还支持树莓派作为嵌入式场景通用硬件。所集成的鸿蒙分布式软总线,可以实现欧拉嵌入式设备之间互联互通。

除此之外,欧拉操作系统中还有很多值得一书的改进特性,只是限于 篇幅,我们无法一一道来,大家有兴趣的话,可以参考《欧拉操作系统 22.03 LTS 的技术白皮书》。

下一代 LTS 路线图

而关于欧拉接下来两年的发展,胡欣蔚透露说:“接下来会对所支持的架构提供更多支持,包括对 RISC-V 的支持、完善对 SW 架构的支持,以及对英特尔的 Ice Lake 的完整支持和对 Sapphire Rapids 的后继规划。此外,在业务混部方面,也有很多正在进行中的创新。”这些将出现在预计今年二季度发布的 SP1 版本上。

让我们以欧拉技术委员会主席胡欣蔚的一句座右铭结尾,共同拭目以待欧拉下一步的发展:

“惟精惟一,允执厥中”

(题图及未注明出处的插图来自于 Pixbaby,采用 CC0 协议)

https://www.zhihu.com/video/1502289919078338560

发布于 2022-04-26 14:23

文章被以下专栏收录