描述 : sysMaster 是在 openEuler 社区发起的创新项目,对 1 号进程进行重新设计和实现,旨在改进传统的 init 守护进程,逐步优化替代传统的 1 号进程 。 推荐人 :熊伟 @myeuler openEuler TC 成员,何晓文 @overweight openEuler SIG maintainer , 胡世元 @love_hangzhou openEuler dev-utils SIG maintainer 官网地址 : http://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 的对应组件,支持有节奏的分场景替换。
sysMaster 力求架构简单,通过可靠性框架提升了系统可靠性,通过 1+1+N 架构,提升系统整体架构的扩展性和适应性,从而降低开发和维护成本。同时我们聚焦最小功能,分场景、多方案、有节奏的达成既定目标。
整体策略 :聚焦功能最小系统,采用核心自研与非核心社区方案替代并行的策略,独立组件抽屉式替换的策略,实现 systemd 自研替代。
分场景 :结合不同的使用场景,将 systemd 功能拆分多层,按照场景由易到难的方式,逐步完成功能开发验证及替代。 多方案 :无社区替代方案的核心功能和组件,采用自研重写的替代,其他的采用无供应风险的社区软件替代。 有节奏 :一年一个核心竞争力,至 24 年完成 3 个核心竞争力的发掘,按照开发 - 落地 - 替代三条线开展工作。
根据服务器、嵌入式、云等使用场景,提炼了四大竞争力,在可靠性、性能、可维可测等方面发力,将 sysMaster 构筑成替代 systemd 的自主可控的竞争力根组件。
短期竞争力 : 极致的可靠性和系统启动速度
永不宕机 : 通过状态外置、 savepoint 等技术实现故障秒级自愈,保障 1 号进程持续在线,业务不受影响 快速启动 : 解耦去重、极简镜像,支撑服务器重启时间从 3-5min 优化到 1min
长期竞争力 :全场景应用、云平台运维效率提升
全场景应用 :支持云、边、端等场景,统一 init ,支持裸机、虚机、容器 容器型 OS : kernel+sysMaster= 容器 OS 底座,通过对接 k8s 、 openstack 等,支撑云场景下运维效率 X 倍提升
未来, sysMaster 将继续探索在多场景下的应用,并持续优化架构和性能以提高可扩展性和适应性。同时,我们还将开发新的功能和组件以满足容器化、虚拟化、边缘计算等场景的需求。让 sysMaster 成为一个强大的系统管理框架,为用户提供更好的使用体验和更高的效率。
今年 sysMaster 完成主体功能的开发,初步具备替代 systemd 能力,希望公司内各产品积极了解 sysMaster ,同时根据各场景的输入,能够全面的兼容 systemd ,也欢迎大家积极参与开源社区,共同贡献。
2. 主要特性
init : sysmaster-init 模块,已完成开发,新的 1 号进程,功能极简,代码千行,极致可靠。 core : sysmaster-core 模块,已完成核心功能开发,承担 systemd 原有核心功能,具备服务管理和永不宕机的能力。 exts/devmaster : sysmaster-exts 外围组件的设备管理模块,已完成功能开发,支持设备灵活热插拔能力。 exts/others :其他必要的 sysmaster-exts 模块,包括电源管理,串口管理等外围组件。
我们将在社区运作中催熟生态,先抽屉式替代一些组件,然后实现全面的自研替代。这将使我们能够更好地控制系统的关键技术,降低供应风险,并确保系统的可靠性和稳定性。当前已经完成服务管理( sysmaster )和设备管理( devmaster )两大核心组件的自研替代,其中设备管理模块可以做到抽屉式替换。当前 sysMaster 支持 busybox 、容器、虚机场景下,以 1 号进程来管理系统中的服务。
兼容busybox 运行 容器中管理sshd 等服务 虚拟机中以pid1 运行
3. 社区大事记
2022 HC 大会 sysMaster 首次对外发布 -- openEuler 22.9 全场景创新版本解读 2022 openEuler Summit 技术分论坛 -- sysMaster :重新定义服务管理,秒级启动、保障系统24 小时在线 2023 FOSSASIA Summit -- sysMaster 首次 亮相国际开源峰会 2023 开放原子全球开源峰会 -- sysMaster 亮相展台 2023 openEuler 公众号