鱼和熊掌可得兼:Anolis OS双内核特性解读 | 龙蜥专场

Posted OpenAnolis龙蜥社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鱼和熊掌可得兼:Anolis OS双内核特性解读 | 龙蜥专场相关的知识,希望对你有一定的参考价值。

编者按:本文整理自「操作系统开源社区与生态」的现场演讲,是OpenAnolis(龙蜥)专场 Anolis OS 8.2特性解读系列的第二篇,上一篇为:技术解析:一文看懂 Anolis OS 国密生态|龙蜥专场。作者王江波,系阿里云技术专家、龙蜥(Anolis)OS核心研发人员。双内核方案当前各行业的服务器领域,CentOS已经占据统治地位并成为了事实标准。面对CentOS 停服的事件,各行业如何稳妥、平滑、有序地过渡,是很多行业用户正在考虑、甚至是迫在眉睫的诉求。同时面对日渐多元化的硬件、软件、云场景、AI场景的大背景下,如何全面覆盖软硬件生态的支撑?也是未来OS需要考虑的需求和问题。怎样满足多维度的行业客户各种需求呢,是否鱼和熊掌真的不可兼得?不!OpenAnolis(龙蜥)社区联合阿里、统信在内的众多理事和成员协同开发了开源操作系统龙蜥(Anolis)OS,并引入了双内核解决方案,可以让各行业客户按照各自应用场景有选择地切换内核版本。龙蜥(Anolis)OS搭载了两种不同版本的内核,分别是RHCK和ANCK。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版本。如果是kickstart安装方式的话,在 %packages 字段设定内核版本即可。如图,若选择ANCK 4.19内核,增加kernel-4.19.91即可。ANCK 4.19 内核硬件生态支撑ANCK 4.19硬件生态支撑方面,不仅具备国际性,还支持丰富国产化平台。支持平台有Intel,还有海光、飞腾、 兆芯、鲲鹏等国产化芯片。龙蜥团队在研发阶段做了大量平台相关的验证测试。再来列举一些ANCK 4.19 内核继承自 Alibaba Cloud Linux 2 的特性。

基于 cgroup 的资源隔离技术

首先是基于 cgroup 的资源隔离技术。在复杂业务场景下,业务应用模型可大致分成实时的在线任务与重计算的离线任务,通常我们称之为延迟敏感型和资源消耗型任务。如何充分利用在线任务机器上的空闲资源是一个重要话题。基于 cgroup 的资源隔离技术可通过调度优先级、内存 QoS 以及异步 IO 限流等自研技术,来隔离限制不同类型任务的 CPU、内存及 IO 等资源使用,有效地减少干扰,保障服务 SLO。该技术已经在多个业务中落地应用,并发挥重要作用。 

高性能存储技术 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。

内核跟踪诊断技术

第三个值得一提的技术是在内核跟踪诊断技术上的增强特性。这些特性有效地扩展了内核诊断技术,可应对复杂场景下的内核问题。这些技术包括:
  • 基于 eBPF 自研的扩展工具集;
  • 自研的内核子系统 QoS 框架: 调度器 & 内存 SLI 及 TCP-RT;
eBPF 是近年比较热门的内核技术, 它由经典BPF框架上的扩展增强而来, 在系统跟踪、探测、安全、网络、性能调优等领域发挥重要的角色。TCP-RT 是阿里原创功能之一,通过在内核 TCP 协议栈提前埋点,来识别和统计请求在协议栈中接收的时间, 以及服务进程处理耗时等信息,协助诊断分析网络问题。TCP-RT 已经在内部数据库、CDN 等场景以及多个业务中发挥作用。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预告: 接下来我们将继续推出系列技术解析文章, 揭秘 Anolis OS 背后的技术特性 ,敬请关注。

微信公众号 - OpenAnolis龙蜥(OpenAnolis)。
如有侵权,请删除。

以上是关于鱼和熊掌可得兼:Anolis OS双内核特性解读 | 龙蜥专场的主要内容,如果未能解决你的问题,请参考以下文章

高级语言编写kernel,鱼和熊掌不可兼得

高级语言编写kernel,鱼和熊掌不可兼得

容器,Serverless?鱼和熊掌可兼得

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

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

鱼和熊掌都要吧!