* 描述:sysMaster是在openEuler社区发起的创新项目,对1号进程进行重新设计和实现,旨在改进传统的init守护进程,逐步优化替代传统的1号进程。 * 推荐人:熊伟 @myeuler openEuler TC成员,何晓文@overweight openEuler SIG maintainer,胡世元 @love_hangzhou openEuler dev-utils SIG maintainer * 官网地址:http://sysmaster.onlinehttp://sysmaster.online/ * 社区地址:https://gitee.com/openeuler/sysmaster
openEuler 优秀项目衡量标准
* 推荐奖项openEuler 年度优秀项目 * 开源开放 项目采用木兰开源协议,代码托管在openEuler * 行业影响 当前项目部分场景功能已在产品侧商用,后续继续完善功能与愿景,致力于替代容器、虚机、服务器及边缘设备上现有1号进程。 * 技术创新 项目采用rust语言开发,支持进程、容器和虚拟机的统一管理, 并引入了故障监测和自愈技术,从而解决 Linux 系统初始化和服务管理问题,其适用于服务器、云计算和嵌入式等多个场景。 * 社区活跃 社区开发者30+,来源广泛,包括高校、公司、个人开发者等,月均代码提交30+,讨论充分,评审意见详实。 * 高质量开发和运营 代码符合规范,代码质量高,文档详尽,托管在官网。PR 提交完整,代码检视流程完整,检视方面和内容详细。对用户反馈问题响应及时,每月2次社区例会。
1. 软件介绍
在当今数字化世界中,操作系统扮演着至关重要的角色,而1号进程则位于其核心,负责系统初始化和运行时服务管理。近年来,systemd已成为1号进程事实上的标准。然而1号进程面临着一系列严峻的挑战,有必要深入探讨这些挑战并寻找解决之道。
* 挑战1:可靠性差 1号进程处于系统的关键位置,这意味着如果它自身发生故障,整个操作系统可能会崩溃,必须通过重启来修复。 * 挑战2:复杂性高 引入了大量新概念和工具,导致系统管理变得复杂。需要简化系统管理,提高操作系统的可维护性。 * 挑战3:兼容性差 频繁的接口变更使得它不够向后兼容,需要考虑如何平衡创新和兼容性,以确保系统的平稳升级和迁移。 * 挑战4:适应性差 1号进程在云计算、边缘计算和嵌入式系统中的支持相对较弱,这限制了系统在不同环境中的适应性。 * 挑战5:供应风险 1号进程属于操作系统关键组件,需要相应的消减措施来解决供应风险。
综上所述,1号进程面临的挑战是多方面的,sysMaster便是在这种背景下诞生的一号进程项目。它是openEuler社区发起并创建的开源软件项目,支持进程、容器和虚拟机的统一管理, 并引入了故障监测和自愈技术,从而解决 Linux 系统初始化和服务管理问题,其适用于服务器、云计算和嵌入式等多个场景。它的实现思路是将传统 1 号进程的功能解耦分层,结合使用场景,拆分出 1+1+N 的架构。 如下面 sysMaster 系统架构图所示,sysMaster(大写)是品牌,sysmaster(小写)是软件模块,主要包含三个方面 :
* sysmaster-init:新的1号进程,功能极简,代码千行,极致可靠; * sysmaster-core:承担systemd原有核心功能,引入可靠性框架、插件机制,使其具备崩溃快速自愈、热升级、灵活组装能力; * sysmaster-exts:使原本耦合的各组件功能独立,支持抽屉式替代systemd的对应组件,支持有节奏的分场景替换。
[cid:image001.png@01D9F9CA.AD6CA9B0]
sysMaster 力求架构简单,通过可靠性框架提升了系统可靠性,通过1+1+N架构,提升系统整体架构的扩展性和适应性,从而降低开发和维护成本。同时我们聚焦最小功能,分场景、多方案、有节奏的达成既定目标。
整体策略:聚焦功能最小系统,采用核心自研与非核心社区方案替代并行的策略,独立组件抽屉式替换的策略,实现systemd自研替代。
* 分场景:结合不同的使用场景,将systemd功能拆分多层,按照场景由易到难的方式,逐步完成功能开发验证及替代。 * 多方案:无社区替代方案的核心功能和组件,采用自研重写的替代,其他的采用无供应风险的社区软件替代。 * 有节奏:一年一个核心竞争力,至24年完成3个核心竞争力的发掘,按照开发-落地-替代三条线开展工作。
根据服务器、嵌入式、云等使用场景,提炼了四大竞争力,在可靠性、性能、可维可测等方面发力,将sysMaster构筑成替代systemd的自主可控的竞争力根组件。
[cid:image002.png@01D9F9CA.AD6CA9B0]
短期竞争力: 极致的可靠性和系统启动速度
* 永不宕机: 通过状态外置、savepoint等技术实现故障秒级自愈,保障1号进程持续在线,业务不受影响 * 快速启动: 解耦去重、极简镜像,支撑服务器重启时间从3-5min优化到1min
长期竞争力:全场景应用、云平台运维效率提升
* 全场景应用:支持云、边、端等场景,统一init,支持裸机、虚机、容器 * 容器型OS:kernel+sysMaster=容器OS底座,通过对接k8s、openstack等,支撑云场景下运维效率X倍提升
未来,sysMaster 将继续探索在多场景下的应用,并持续优化架构和性能以提高可扩展性和适应性。同时,我们还将开发新的功能和组件以满足容器化、虚拟化、边缘计算等场景的需求。让 sysMaster 成为一个强大的系统管理框架,为用户提供更好的使用体验和更高的效率。
今年sysMaster完成主体功能的开发,初步具备替代systemd能力,希望公司内各产品积极了解sysMaster,同时根据各场景的输入,能够全面的兼容systemd,也欢迎大家积极参与开源社区,共同贡献。
2. 主要特性
* inithttp://sysmaster.online/man/init/:sysmaster-init模块,已完成开发,新的1号进程,功能极简,代码千行,极致可靠。 * corehttp://sysmaster.online/design/00-sysmaster_architecture/:sysmaster-core模块,已完成核心功能开发,承担systemd原有核心功能,具备服务管理和永不宕机的能力。 * exts/devmasterhttp://sysmaster.online/design/extends/02-devmaster-public-article/:sysmaster-exts外围组件的设备管理模块,已完成功能开发,支持设备灵活热插拔能力。 * exts/othershttps://gitee.com/openeuler/sysmaster/tree/master/exts:其他必要的sysmaster-exts模块,包括电源管理,串口管理等外围组件。
我们将在社区运作中催熟生态,先抽屉式替代一些组件,然后实现全面的自研替代。这将使我们能够更好地控制系统的关键技术,降低供应风险,并确保系统的可靠性和稳定性。当前已经完成服务管理(sysmaster)和设备管理(devmaster)两大核心组件的自研替代,其中设备管理模块可以做到抽屉式替换。当前sysMaster支持busybox、容器、虚机场景下,以1号进程来管理系统中的服务。
* 兼容busybox运行http://sysmaster.online/use/01-run%20sysmaster%20with%20busybox/ * 容器中管理sshd等服务http://sysmaster.online/use/01-run%20sysmaster%20with%20container/#sshd * 虚拟机中以pid1运行http://sysmaster.online/use/01-run%20sysmaster%20with%20vm/#pid1
3. 社区大事记
* 2022 HC大会 sysMaster首次对外发布 -- openEuler 22.9 全场景创新版本解读https://live.huawei.com/huaweiconnect/meeting/cn/12050.html * 2022 openEuler Summit 技术分论坛 -- sysMaster:重新定义服务管理,秒级启动、保障系统24小时在线https://www.openeuler.org/zh/interaction/summit-list/summit2022/ * 2023 FOSSASIA Summit -- sysMaster首次亮相国际开源峰会https://eventyay.com/e/7cfe0771/schedule?search=sysMaster * 2023 开放原子全球开源峰会 -- sysMaster亮相展台https://gongyi.cctv.com/special/opensource/index.shtml * 2023 openEuler公众号https://mp.weixin.qq.com/s/DaKM7f6tEAGNkBGeZwfzIA