编者按:本文整理自「操作系统开源社区与生态」的现场演讲,是OpenAnolis(龙蜥)专场 Anolis OS 8.2特性解读系列的第二篇,上一篇为:技术解析:一文看懂 Anolis OS 国密生态|龙蜥专场。作者王江波,系阿里云技术专家、龙蜥(Anolis)OS核心研发人员。

8f1091aee752798745a5aa3448040cb5.png

双内核方案

当前各行业的服务器领域,CentOS已经占据统治地位并成为了事实标准。面对CentOS 停服的事件,各行业如何稳妥、平滑、有序地过渡,是很多行业用户正在考虑、甚至是迫在眉睫的诉求。

同时面对日渐多元化的硬件、软件、云场景、AI场景的大背景下,如何全面覆盖软硬件生态的支撑?也是未来OS需要考虑的需求和问题。

怎样满足多维度的行业客户各种需求呢,是否鱼和熊掌真的不可兼得?

不!

OpenAnolis(龙蜥)社区联合阿里、统信在内的众多理事和成员协同开发了开源操作系统龙蜥(Anolis)OS,并引入了双内核解决方案,可以让各行业客户按照各自应用场景有选择地切换内核版本。龙蜥(Anolis)OS搭载了两种不同版本的内核,分别是RHCK和ANCK。

b9cf7e0cd7e79d8d8197a71afccef43d.png

RHCK与CentOS 8 内核同源,并会做到版本的同步迭代更新,该内核已经被CentOS用户认可,其稳定性已经得到充分验证。

ANCK 目前基于上游4.19 LTS kernel研发,来自于 Alibaba Cloud Linux 2 项目的开源捐赠,该内核不仅快速复用上游社区特性,还融入了阿里内核团队十年自研特性的积累;该内核已经在阿里云全网发布,其稳定性也经过了规模化验证;搭载该内核的 Alibaba Cloud Linux 当前在阿里云市场部署量居第二,仅次于 CentOS,份额远超 Windows 及 Ubuntu 等其他发行版搭载的内核。同时在龙蜥社区Cloud Kernel SIG组的协同开发下,该内核可更好支持海光、飞腾、兆芯、鲲鹏等平台。

内核版本选择安装也很方便,以ISO安装为例。在ISO手动安装过程中,添加了对应的 内核选项按钮。如图,会有一个安装选择项 (Kernel Selection) 供用户选择内核版本,缺省情况下默认安装RHCK版本。

653b40a1c14fd60a80d6162f376b3994.png

如果是kickstart安装方式的话,在 %packages 字段设定内核版本即可。如图,若选择ANCK 4.19内核,增加kernel-4.19.91即可。

7c374a3230289c7a27b28d8eba8d9561.png

ANCK 4.19 内核

硬件生态支撑

ANCK 4.19硬件生态支撑方面,不仅具备国际性,还支持丰富国产化平台。支持平台有Intel,还有海光、飞腾、 兆芯、鲲鹏等国产化芯片。龙蜥团队在研发阶段做了大量平台相关的验证测试。

e9d07ed3c3e4a1bd0df7387cb8ca6ee2.png

再来列举一些ANCK 4.19 内核继承自 Alibaba Cloud Linux 2 的特性。

基于 cgroup 的资源隔离技术

首先是基于 cgroup 的资源隔离技术。

在复杂业务场景下,业务应用模型可大致分成实时的在线任务与重计算的离线任务,通常我们称之为延迟敏感型和资源消耗型任务。如何充分利用在线任务机器上的空闲资源是一个重要话题。

基于 cgroup 的资源隔离技术可通过调度优先级、内存 QoS 以及异步 IO 限流等自研技术,来隔离限制不同类型任务的 CPU、内存及 IO 等资源使用,有效地减少干扰,保障服务 SLO。该技术已经在多个业务中落地应用,并发挥重要作用。 

75448e001c590e9d34d759e9f8240989.png

高性能存储技术 IO Uring

再看看高性能存储技术 IO Uring。

传统的 Linux 异步 IO —— libaio 技术一直被大家诟病, 主要存在两个问题:一是它仅支持 Direct IO, 不支持 buffer IO;二是 libaio 机制存在额外的内存拷贝开销, 性能差。

IO Uring 重新定义了异步IO技术,在设计之初就充分考虑框架自身的高性能和通用性, 从根本上解决 libaio 存在的问题和约束。IO Uring 同时支持 DirectIO 和 buffer IO。

它不仅仅面向传统的基于块设备的领域,对网络异步编程也提供支持。极大地扩展了异步 IO 优化应用范围;同时大大提升了Linux 异步IO性能, 实测性能提升1.5倍之多, 几乎能比肩 SPDK。

cc900f3453a27d9beac52e53858bef4f.png

内核跟踪诊断技术

第三个值得一提的技术是在内核跟踪诊断技术上的增强特性。

这些特性有效地扩展了内核诊断技术,可应对复杂场景下的内核问题。

这些技术包括:

  • 基于 eBPF 自研的扩展工具集;

  • 自研的内核子系统 QoS 框架: 调度器 & 内存 SLI 及 TCP-RT;

eBPF 是近年比较热门的内核技术, 它由经典BPF框架上的扩展增强而来, 在系统跟踪、探测、安全、网络、性能调优等领域发挥重要的角色。

TCP-RT 是阿里原创功能之一,通过在内核 TCP 协议栈提前埋点,来识别和统计请求在协议栈中接收的时间, 以及服务进程处理耗时等信息,协助诊断分析网络问题。TCP-RT 已经在内部数据库、CDN 等场景以及多个业务中发挥作用。

2d228b7273c601b010d8e1069975dc1a.png

ANCK 5.10 内核版本

目前ANCK 5.10内核版本也在积极开发中,预计今年三季度发布。

SIG 参与方式

聊了这么多ANCK的特性以及亮点,那么社区的小伙伴如何参与呢?可以通过Cloud Kernel SIG的方式来参与交流和开发。

以下是相关的链接:

SIG基本信息是开发规范

https://openanolis.cn/sig/Cloud-Kernel

内核源码树对应的链接

https://codeup.openanolis.cn/codeup/kernel/cloud-kernel

内核RPM树对应链接

 https://codeup.openanolis.cn/codeup/kernel-rpm/cloud-kernel

86d018530a94ccd48674135ba7f3c7f6.png

联系我们

关于操作系统龙蜥(Anolis) OS所有的问题,也可以通过加入社区交流钉钉群和关注社区微信公众号实现实时互动交流。

欢迎搜索钉钉群号:33311793,或扫描下方二维码加入OpenAnolis(龙蜥)社区群,与一线研发人员和数百位开发者直接交流。一个开放的社区需要更多合作伙伴和开发者的支持,只有在你们的参与和反馈中,OpenAnolis(龙蜥)社区才会越做越好。 

ad0db6f89d7bdda818224deb1db1abe9.png

预告:接下来我们将继续推出系列技术解析文章,揭秘Anolis OS背后的技术特性,敬请关注。

往期精彩回顾

1、技术解析:一文看懂 Anolis OS 国密生态|龙蜥专场

2、龙蜥专场精彩回放来了!10位技术大咖、242位开发者相聚

3、基于龙蜥上游社区开发,全面兼容CentOS:统信服务器操作系统V20(1020a)正式发布

4、来了,Anolis OS 8.2 正式版首发!100% 兼容 CentOS 8

Logo

欢迎加入龙蜥社区,参与开源活动即刻有好礼相送!

更多推荐