同步操作将从 openEuler/sysmaster 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
hide |
---|
navigationtoc |
sysMaster is developed by openEuler after summarizing the problems and characteristics of Linux system initialization and service management in different scenarios, such as embedded, server, and cloud. sysMaster provides unified management for system initialization and services (processes, containers, and VMs) in embedded, server, and cloud scenarios.
As we all know, process 1 is the first userspace process started by the kernel in all Unix systems. It is the prerequisite for stable OS running. It is the representative of OS initialization programs (some tool sets actually used in initialization). In addition, process 1 needs to run in the background to reap orphan processes, to ensure that the system works properly. The initialization systems that you are familiar with include sysvinit, Upstart of Debian and Ubuntu, and systemd. The systems have their own characteristics. For details, see the following table.
Initialization Software | Description | Start Management | Process Recycling | Service Management | Parallel Startup | Device Management | Resource Control | Log Management |
---|---|---|---|---|---|---|---|---|
sysvinit | Initialization process tool that was used in earlier versions but now gradually fades out of the stage | ✓ | ✓ | |||||
upstart | Init daemon used by Debian and Ubuntu | ✓ | ✓ | ✓ | ✓ | |||
systemd | Improves the system startup speed. This software is a major innovation compared with the traditional System V and has been used by most Linux distributions. | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
systemd is a huge improvement over sysvinit, especially in terms of the startup speed. systemd provides more and more functions, which however complicates the system architecture and implementation. Some scenarios do not require so many functions, and these functions cannot be flexibly combined. Besides, systemd cannot support embedded devices and some IoT devices well.
According to the statistics, the number of maintenance problems in each systemd version is increasing in recent years. In addition, due to the particularity of process 1, these problems may cause system-level breakdown.
In cloud scenarios, the objects to be managed are changed from processes to VMs and containers. For example, OpenStack, Kubernetes, and agents (kubelet and nova) on nodes are used for management. The agents are managed by systemd on the nodes, and systemd is used to provide some basic capabilities, such as log output.
systemd is used to manage the life cycle of some key services, such as Ngnix, on a node (VM or host). These services are distributed. If a fault occurs, the service handles the fault by itself, unlike container instances and VM instances that can be orchestrated in a unified manner through platforms similar to Kubernetes and OpenStack.
OS initialization and service management are critical functions. As scenarios and external forms change, a unified system initialization and service management framework is expected to eliminate existing problems and adapt to traditional and cloud scenarios. For the initialization and service management of the Linux system, our objectives are to:
For running instances (such as containers, VMs, and processes) on nodes in cloud scenarios, our objectives are to:
sysMaster uses the 1+1+N architecture with multi-level splitting to ensure that each component focuses on its own responsibilities, reduce the complexity of a single component, and ensure the simplicity of the component architecture. This improves the scalability and adaptability of the overall system architecture and reduces the development and maintenance costs. sysMaster has the following features:
Based on the characteristics of existing O&M scenarios, sysMaster works with the container engine (iSulad) and QEMU to provide unified management interfaces for container instances and virtual instances, and some key application instances managed by sysMaster are transferred to Kubernetes and OpenStack for unified management.
The source repository is managed using workspaces. Each directory is a package, and each package contains a crate (.lib or .bin format). The public lib crate directory is prefixed with lib and created using cargo new --lib libtests. The bin crate directory of the daemon type ends with d.
/ (Root directory)
|...coms (Plugin)
| |...service (unit type crate)
| |...socket (unit type crate)
| |...target (unit type crate)
|...libs (External interface)
| |...libtests (test lib crate)
| |...cgroup (cgroup lib crate)
| |...cmdproto(cmd proto lib crate)
|...exts (sysMaster-extends component)
| |...devmaster (daemon)
| |...random-seed (bin)
|...core (sysMaster-core component)
| |...sysmaster (bin)
| |...sysmaster (internal lib)
|...tools
| |...musl_build
| |...run_with_sd
|...docs
|...requirements.sh (Installation dependencies)
Example:
- lib crate: libs/event, libs/basic
- bin crate: extends/init, sysmaster
- daemon crate: extends/udevd, extends/logind
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。