写点什么

如何借助 openEuler 20.03 LTS 版本构建企业级服务器操作系统

  • 2020-04-02
  • 本文字数:6340 字

    阅读完需:约 21 分钟

如何借助openEuler 20.03 LTS版本构建企业级服务器操作系统

为使社区参与者快速使用及开发出自己的操作系统,华为服务器 OS 首席架构师 熊伟在华为开发者大会上详解了 openEuler LTS 20.03 版本的关键技术。以下为其分享的具体内容。

What is openEuler LTS release


LTS 是 Long Term Support 版本,可以作为商业化 Release 的底座。openEuler 中有一个社区主线,社区主线演进过程中会做出 community release(社区发行版),Release 版本名称是以年、月来命名,比如 20.03, 20.09 等,今年下半年将发布 openEuler 20.09 community release,社区版本将以此节奏半年一次往前演进。


LTS 版本则会选择某个社区版 Release 演化,openEuler 20.03 LTS release 是基于 2020.03 版本演进.


综合来说,openEuler 社区会有两种 Release,一种是社区 Release,另一种是 LTS Release,LTS Release 会选择相应的社区 Release 发布。LTS release 可以作为商用发行版的基础。


【更新时间如下】


openEuler Community Release 一年 2 个发布版本


发布时间暂定于 3 月份和 9 月份。


openEuler LTS Release 每两年发布一个版本


LTS 版本基于 03 版本还是 09 版本依据具体情况而定。


社区 Release 和 LTS Release 之间的关系和差异



1、社区主线欢迎任何新特性,有趣的 idea,实验性质的功能,对于这些特性,可以随着社区主线进行演进和孵化,只需要遵守社区技术委员会制订的流程就可以了。


2、把社区主干上的软件集合成可以下载,安装使用的发行版是社区发行版的作用,社区 Release 是提供给个人开发者,爱好者等使用,鼓励新技术的使用和集成。


3、而 LTS 版本的软件选择和集成是要经过严格流程的,通过更为详细的测试和质量加固,使其成为一个可以被商用合作伙伴真正做商用发布的 Release。


因此,如果在 openEuler 有更好的 idea 欢迎放在社区主线上,如果是相对成熟的功能和特性,可以集成到社区 Release 中,对于 LTS 则需要非常谨慎,任何往 LTS 版本中核入的特性必须是成熟稳定并且可商用的即社区主线、社区版本以及 LTS 版本之间的关系。


BUG/CVE 漏洞时的管理策略



1、主线上发现的任何 BUG、CVE 漏洞,需要回合到社区版或者 LTS 版本中。


2、openEuler 社区版上发现的任何问题,如果影响主线和 LTS 版本,也需要回合到主线和 LTS 版本上。


3、如果在 openEuler 的 LTS 版本上发现了相应的问题,也需要回合到主线上,或者回合到还在维护周期内的社区版本。


生命周期是一个困难的选择



生命周期是一个需要仔细权衡的选择,不同厂商,不同社区的维护周期各有不同。


一些商用企业选择长维护周期,长周期对于企业客户来讲相对比较有利,有利于业务的维护。但是如果维护周期过长,由于整个生态系统中软件的变化非常快,这将导致特性回合变得非常困难,反而会在一定程度上影响系统的质量和稳定性。


比较短的维护周期可以减少维护工作量,有利于版本快速演进,新特性的加入,但是会导致软件基线变化比较大,不利于硬件兼容性和软件兼容性的稳定。


经过综合的考虑,openEuler 的社区 release 的维护周期定为半年,LTS 版本的维护周期为四年,LTS 版本的四年维护周期兼顾了版本的稳定性和社区快速演进这两个因素。为商用客户,OSV 或基于 openEuler 发布商用的厂商提供稳定的版本基线。LTS 版本维护周期内可以享受到漏洞的补丁、漏洞的回合等特性。


社区版本和 LTS 版本对于新特性的合入原则



对于 LTS 版本,允许将 openEuler 或者上游社区的一些特性回合到 LTS 版本,但是回合有一个原则,回合的功能不能破坏 API 和 ABI。该原则是保证对于企业客户的接口稳定性,保持南向和北向的生态兼容性。


LTS 的关键特征就是要维护南向和北向的兼容性生态,因此保持稳定的 API 和 ABI 是 LTS 版本的重要特征。


第三方厂商如何基于 openEuler 做自己的发行版



构建 openEuler 社区目的是为了帮助第三方厂商更容易的构建商业操作系统和生态系统,OSV 厂商可以基于 openEuler 的 LTS 做商业 OS 发行版。OSV 也可以选择基于社区版本来构建,甚至在主线上拉出自己的分支构建也可以。但基于 LTS 版本会帮助 OSV 节省很多的工作量,我们希望能够和 OSV 共同构建 openEuler LTS,将 LTS 版本做成行业内稳固的底座。


对于 OSV 基于 openEuler LTS 做自己的发行版的两个基本的原则:


1、OSV 可以基于 LTS 添加自己的独特特性,构建差异化竞争力。这些差异化的竞争力可以存在于厂商自己的发行版本中。


2、openEuler 社区并不要求将 OSV 的发行版中的差异化竞争力回合到社区,但我们鼓励 OSV 把好的特性贡献到 LTS 社区,让 LTS 版本更稳定、具备更强大的能力。这是 openEuler 社区对于 OSV 和第三方厂商的倡议。


openEuler 社区全景图



在社区主线上中会有社区的版本,在某一个社区版本之上会构建 LTS 版本,对于任何 BUG 和 CVE 漏洞坚持主线,版本之间双向回合,特性可以在主线上开发,演进,待特性成熟以后落实到下一个版本周期中。


【重要信息】


一年两个社区 Release


两年一个 LTS 版本


社区版本的生命周期是半年


LTS 版本的生命周期是四年。


Making OS is a truly hard job!


欢迎更多的 OSV、第三方厂商投身到 openEuler 社区,共同把社区建设好。

openEuler LTS brief introduction


openEuler 计划支持多种体系架构,这次发布的 LTS 版本支持两种体系架构,X86 和 ARM。对于体系架构来讲,openEuler 社区是非常开放的,我们欢迎任何 ISA、任何的体系架构加入到社区中。可以透漏的一点是,很快会有一个全新的体系架构加入到 openEuler 的大家庭中。


openEuler 的 LTS 版本特性简介



对于 openEuler 来讲,整体是 4 层架构:


1、底层是芯片支持,目前是对鲲鹏和 X86 体系架构支持,后续还有更多的支持。


2、第二层面的是 OS 基础的支持,包括内核、基础库,这个层面需要做很多体系架构方面的优化和开发。


3、第三层是虚拟化层,这层对整个企业市场来讲非常重要,特别是云场景来讲非常重要,也就是通常说的 IaaS 底座。


4、最外层的容器层,是构成现在 SaaS 服务的基础。


由下至上,从芯片到内核到虚拟化到技术化到容器构成全四层的技术全栈,openEuler 会关注性能、可靠性和安全这三个方面。同时会重点对这三个方面进行优化和加强,这是整体的 LTS 版本的特点。

What we have done on openEuler LTS release


openEuler 的社区原则和 LTS 原则——来自于社区、回合到社区


华为公司过去十几年做了大量的开源工作,对于内核、虚拟化、容器、ARM 生态等方面做了非常多的贡献,例如内核每年的 patch 贡献量超过 3000,在全球排进了前五名。因此,对于 openEuler, 我们的原则非常简单,那就是 Upstream First。例如在内核中做一个特性,最终如何能合入到 openEuler 的版本中呢?


1、尽可能的先提交到上游内核社区中,被 kernel 社区所接纳,openEuler 社区从内核社区 pull 到 openEuler 中,这样,相关的特性就能融入到到下一个发布版本中。因此任何特性开发建议先到最原始社区中,通过原始社区进入到 openEuler 社区。


2、有一些特性可能未必在短期内被社区接受,或者接纳很慢。对于这些特性,openEuler 社区中会持开放态度做一些接纳,在 openEuler 作为特性提供给大家试用,也许这种特性在 openEuler 社区广泛使用后能加速被上游社区所接纳。


以上就是 openEuler 社区的基本开源策略。期望在国内形成这样一个氛围,鼓励参与社区,不只是 openEuler,同时参与到 openEuler 的上游社区,共建社区繁荣。


内核:Linux 世界的核心



内核是 Linux 中最重要的部件,没有之一。


openEuler 在内核上做了非常多的工作,这里只以鲲鹏 920 的优化做一个例子:


1、使能 ARM64 的 Ecosystem,如支持 NICSAS controller、ROCE 等设备。


2、安全方面的工作,比如 ARM64 下的 hot patch 是华为第一个在 RAM 生态中使能的。对于提升系统的可维护性、增强安全有非常大的作用,还有一些 RAS 的特性。


3、性能方面,无论是配套芯片还是应用程序,性能永远是追求的极致,内核在 Spinlock、I/O、TLBI、ktask 等都做了非常多的工作。


一个性能方面的例子:LTS 版本中使能了 Numa aware qspinlock,对一些 case 的性能提升可以达到 50%以上,且随着核数的增加效果会越来越明显。


虚拟化:云基础



虚拟化是云的基础底座,openEuler 希望能够成为最好的云的底座之一,特别是帮助鲲鹏成为优秀的虚拟化平台,虚拟化有三大基本件:KVM、Qemu、Libvirt,目前这三大件版本选择是 KVM 选择 4.09,Qemu 是 4.0.1,Libvirt 是 5.5.0,openEuler 在这三大件上除了质量增强、安全增强,也做了规格上增强,如:在鲲鹏芯片上 KVM 配合 Qemu 可以提供超大规格的虚拟机。


总体来讲,通过虚拟化团队的工作,现在鲲鹏芯片、鲲鹏服务器所拥有的虚拟化的能力完全不逊于其他任何的体系架构,以目前鲲鹏加上 openEuler 以及其他的软件可以构建完整的云基础平台。


容器:Cloud Native 的底座



容器是 Cloud Native 场景下最重要的基础部件,openEuler 支持诸如 docker 这样的主流容器引擎。但是工程师总是喜欢重新发明轮子,我们又造了一个新轮子。


全新容器引擎 iSula:轻、快、易、灵


:体现在体积、资源消耗等方面相对其他容器引擎小很多,甚至可以降低 50%、60%以上;


:并发启动多容器速度提升一倍以上;


:容器引擎符合 CRI, OCI 等标准,容易融合到现有系统中;


:iSula 架构设计具备扩展性,可扩展容器网络、容器存储等,模块化的插件式设计,轻松完成定制化开发。


为什么要造一个新的“轮子”,因为我们相信容器将会 run everywhere,新的 iSula 容器引擎目标是容器可适用于任何场景,期望打造一个从设备,到边缘计算节点,最终包含数据中心中有一个归一化的容器引擎方案。


当然,为什么再造一个“轮子”,从工程师的角度来说其实很简单,那就是:We Love To Do So,只有在不断迭代中才能使得相关的产业更进一步的快速发展。


A—Tune : 性能调优更简单



A-Tune 系统将使性能调优更简单,A-Tune 的目标只有两个:


1、当一个业务跑在复杂的 OS 之上,面临成千上万的参数,过往通过人的经验进行选择调整,既无法覆盖较大范围,也没有办法获得最优的效果,所以通过 AI 的引入,可以在众多参数中选择敏感参数集,通过 AI 训练可以找到对于特定应用的最佳参数组合,使得具体业务能够运行的更加高效,这是对于 A-Tune 来讲的第一个应用场景。


2、与之对应,反向还可以在已知的系统上抽取一些特征,和已经积累、训练好的模型进行匹配,如果训练参数集和业务特征匹配,将训练好的参数模型放到现有的环境中,有时会发生非常神奇的化学反应,产生和很好的效果。


安全:时刻牢记



安全是所有的厂商,特别是操作系统厂商,永远最关注的事情


1、openEuler LTS 会提供自底向上,包括硬件、内核、库、基础安全设施等比较完善的安全技术能力,这是基础的安全能力。


2、LTS 版本在 Release 之前有 7+1 的 Security Tools 进行漏洞扫描,7 是我们使用的 7 中知名的商业工具进行扫描,1 是华为自研的扫描工具,经过这些工具的扫描,能够确保在最大程度上发现现有版本的问题。


3、对于已发布版本,openEuler 社区定义了非常详细的安全漏洞的捕获、解决、发布机制,该机制在 openEuler 社区的网站可以看到,按照相应的流程,开发者发现任何问题都可以提报漏洞,按照流程及时修复并送达到客户手里。

What expect in the future


LTS 版本之后,未来还有什么


1、会有激动人心的新体系架构的支持,除计划中体系架构,欢迎其他体系架构融合到 openEuler 大家庭中,包含更多体系架构的支持。


2、安全是否会做的更容易、更可用?虽然 LTS 版本中做了非常多的安全基础设施,不可否认现在的系统中安全依然是一个问题,安全机制依然非常复杂,难以使用,能否在一定程度上解决这个问题,使得安全更加容易获得或使用,也是未来可以期待的新变化。


3、在社区中目前会尝试增强质量保障,不同开源软件的质量参差不齐,是否可以把测试、验证前推到上游社区,构建起更为强有力、追根溯源的质量保障呢?也是现在和未来要探索的事情。


4、Cloud Native:是否可以用 Cloud Native 的思路对传统的操作系统也做一些改造呢?相信未来 openEuler 的版本中可以看到新的变化。


5、未来体系架构以及芯片:核数越来越多,无论是鲲鹏芯片还是英特尔芯片会殊途同归,核数增加之后对系统架构影响非常大,操作系统当如何处理?是后续探索的核心。


6、操作系统的问题及维护尤为困难,是否有更为简单的办法处理?是否可以通过一些手段将操作系统的可用性和可维护性提升一个台阶呢?这也是我们将要做的事情。


问题的答案只有一个:Let’s Make A Try


The End:回归初心



回归到 openEuler 的初心,openEuler 想要做什么?


Linux 说过一句话“Linux Is Hard But Sexy”


做操作系统 Linux 是比较辛苦的,但是很有意思的事情


openEuler 的任务是


“Let Us Make Linux Easier And More Sexy Together”。


提问 &解答


Q: openEuler 和 Cent OS 是什么关系?外界传闻华为的 openEuler 是基于 Cent OS 开发的?


A:简单回答是:NO,但 Linux 操作系统发展二十多年,整体操作系统”长相”差不多,所以各个操作系统发行版比较类似,但业内人员如果仔细比较一下就可以发现 Cent OS 有着巨大差异。


一般来说有两种做操作系统的方法:


1、基于现有系统,比如 CentOS 做二次开发,二次构建把特性加上去;


2、从最原始的社区拿到源码,自行构建、自行打包、自行演进做操作系统。


第一种方式如同从喜马拉雅南坡登顶,而从原始社区拿来源码后自行构建体系,如同北坡登顶。南坡可以快速进入市场,兼容性比较好,这是优势,劣势是很难建立独立的体系,需要跟随对方。从北坡登顶,开始比较困难,但是把体系建立起来以后,后续演进更具有控制力,更有自由性和活力。这是和其他厂商不太一样的地方,


全世界发行版本非常多,但是商业上成功的只有四个体系,Redhat, Suse, Ubuntu, WRLinux,他们对应的开源社区是 fedora, openSuse, Debian, Yacto,我们希望 openEuler 能够成为和这四个体系并行的第五个体系。帮助更多的厂商实现商业成功。


Q:华为主推鲲鹏,openEuler 对 X86 的支持和优化是否会像支持鲲鹏那样完备?


A:YES and NO,YES 是我们会一如既往支持 X86 架构,甚至包含其它第三方体系架构。No 是体系架构的支持肯定需要芯片厂商的强力支持。由于众所周知的原因,我们对于 X86 的支持肯定会有一些局限,所以我们也欢迎 intel 公司能关注 openEuler 社区,在 openEuler 社区中将 X86 生态做到极致、做到完美。


Q:openEuler 对比类似 federa, Debian 等开源社区优势和竞争力在什么地方?


A:这几个社区运行时间比较长,非常成熟,openEuler 是非常年轻的社区,上线三个月,但是有一点 openEuler 是有明显优势的,对 ARM 体系的支持我们一定是行业内最好的。华为多年来和 ARM 公司一起主推 ARM 生态,在这方面华为是领先的。但是在其它方面,openEuler 中有非常多的空白,但这些空白对于开发者和 OSV 来说正好是非常大的机会,我们欢迎更多开发者参与其中,越早进入社区中优先权越大,希望集合更多的爱好者、厂商、OSV、ISV 共同把 openEuler 社区做好。


Q:openEuler 是否主要针对企业用户或者服务器场景,对个人 PC 用户并不友好


A:首先 OS 本身并不具备针对桌面或者服务器,通常讲的区分是以图形界面为代表的桌面环境更适合个人用户使用,而服务器版本对桌面环境要求没有那么高。另外就是个人软件的丰富度服务器和桌面有比较大的差异。目前 LTS 1.0 版本专注于服务器版本,先把底座做扎实稳定,也会提供简单的图形界面,可以用它作为桌面使用。


其次,在后面开发计划中确实安排了对 QT、GTK 等主流基础图形库的支持,后续也会支持 KDE, Gnome 等主流的桌面系统。未来整个 openEuler 会对界面丰富度做非常多的工作。而且我们很高兴的看到一些厂商已经主动将他们的桌面系统贡献到了 openEuler 社区,一个拥有漂亮界面的 openEuler 发行版是值得期待的。


精彩直播视频回看


2020-04-02 17:012063

评论

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

【Promise 源码学习】第三篇 - 实现一个简版 Promise

Brave

Promise 11月日更

7月份了,再不准备金九银十就晚了,阿里2021最新数据结构与算法面试题手册

Java 程序员 后端

AtomicBoolean介绍与使用

Java 程序员 后端

BATJ互联网月薪45K的Java岗面试题首次曝光,掌握这些Offer指定跑不了

Java 程序员 后端

AQS源码分析看这一篇就够了

Java 程序员 后端

Bootstrap框架快速上手

Java 程序员 后端

CentOS安装rar及用法

Java 程序员 后端

Chrome 灵魂插件!爱了爱了!

Java 程序员 后端

《Kubernetes in action 读书笔记》:Kurbernetes 架构设计

后台技术汇

Kubernetes 11月日更

4月面试5月成功入职阿里,工作之余整理复盘:面试经历+备战经验分享!

Java 程序员 后端

AQS-AbstractQueuedSynchronizer源码解析(下)

Java 程序员 后端

BIGO Java 三面 + HR 面面经(已意向)

Java 程序员 后端

BS-GX-018 基于SSM实现在校学生考试系统

Java 程序员 后端

CAT中实现异步请求的调用链查看

Java 程序员 后端

588页!三个通宵学完这份“宝典”,4面斩获字节跳动offer

Java 程序员 后端

ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?

Java 程序员 后端

模块三课后作业-详细架构设计文档-外包学生管理系统

断水风春

架构实战营

ConcurrentHashMap锁的前世今生,了解一下

Java 程序员 后端

Android C++系列:认识JNI

轻口味

c++ android jni 11月日更

as-if-serial规则和happens-before规则的区别

Java 程序员 后端

CentOS7系统中安装JDK8

Java 程序员 后端

3 条掏心掏肺的建议,新手学习编程必备,快上车!

Java 程序员 后端

容器 & 服务:Helm Charts配置文件分析

程序员架构进阶

容器 Helm 11月日更 chart

构建大型 Vue.js 应用程序文件结构

devpoint

Vue 11月日更

ApplicationContextAware使用理解

Java 程序员 后端

Chrome上的这些灵魂插件太猛了,碾压其他同款

Java 程序员 后端

Prometheus HTTP API 查询(四)Target 和查询结果格式

耳东@Erdong

Prometheus PromQL HTTP API 11月日更

4年Java程序员十面阿里终拿下offer,评级P6+年薪30-40w无股票

Java 程序员 后端

69-个经典-Spring-面试题和答案详解(下)

Java 程序员 后端

Alibaba内部Java面试手册,10W字全是精华

Java 程序员 后端

Centos7搭建maven私服nexus3

Java 程序员 后端

如何借助openEuler 20.03 LTS版本构建企业级服务器操作系统_技术管理_熊伟_InfoQ精选文章