写点什么

systemd 和容器的姻缘

  • 2015-09-28
  • 本文字数:1300 字

    阅读完需:约 4 分钟

systemd 是 Linux 平台下的一款系统和服务管理器,兼容 SysV 和 LSB(Linux Standard Base)启动脚本。近日,CoreOS 团队采访了 systemd 项目的创始人 Lennart Poettering,探讨了 systemd 的历史,以及与容器结合、未来的规划等问题。目前,Arch Linux、CoreOS、Debian、Fedora、openSUSE、Ubuntu 等 Linux 发行版已经将 systemd 作为默认的服务管理器

systemd 历史

Lennart 描述,在创建 systemd 项目之前,他们曾经非常关注由 Canonical 公司(Ubuntu 发行版维护公司)创建的 Upstart 项目。Upstart 是严格事件驱动,代码比较简洁,当时已经被 Ubuntu 和 Fedora 等发行版采用。但是经过细致了解,Lennart 发现 Upstart 的基础设计是倒退的。他认为系统管理器应该计算到启动时的细节,而不是像 Upstart 那样只计算一个大概的工作,将细节留给开发者和系统管理员。因为这些区别,systemd 项目开始创建。

在 systemd 项目的创建之初,这些创建者们从系统管理员和其他系统启动器中汲取灵感。最初 systemd 被设计成仅仅是一个初始化(init)系统,即作为一个独立的启动进程,完成 Linux 用户空间启动的基础工作。然后,启动并不是 systemd 需要解决的唯一问题,后续,systemd 主要在 Linux 用户空间的创建和运行时维护上进行了大量工作。

目前,systemd 已经可以被看做是操作系统构建过程中需要的基础构建模块集,它除了是一个初始化系统之外,还包括了设备管理、登录管理、网络管理、日志模块等等。

systemd 和容器的关系

现代系统和服务管理中越来越多的应用到了容器。容器本身包含了应用需要的所有依赖,systemd 的作用,就是作为粘合剂,将容器和操作系统结合起来。

目前,在 systemd 中,一些命令已经能够直接感知到容器。这些命令的控制和信息获取,除了针对当前主机,也能够针对主机上的所有容器。例如journalctl命令,除了支持显示主机日志之外,还能显示主机上运行的容器输出的日志,并且可以将所有容器、主机的日志合并和一个日志流。

对于 systemd 来说,除了能够支持管理容器的运行,同时也能够运行在容器中。目前对 systemd 的大部分测试本身就是在容器中完成的,这是因为和物理机器相比,容器有着更快的启动速度,并且更容易进行测试。

systemd 现在也包含了一个命令systemd-nspawn用于管理容器。起初编写这个命令的目的是为了测试 systemd,但是现在它已经可以作为生产用途。事实上,CoreOS 的 rkt 容器工具,已经在使用这个命令作为底层容器后段。

更多 systemd 和容器、操作系统相关内容,可以观看 Lennart 在 CoreOS Fest 上的演讲: systemd at the Core of the OS

systemd 和其他容器工具的结合

目前 systemd 和 rkt 的结合已经基本上完成,rkt 使用 systemd-nspawn 作为它的容器后端。对于 systemd 的开发者来说,他们更加希望 systemd 能够专注于单机的管理,而上层的工具,如 rkt,可以基于 systemd,提供诸如分布式、网络感知高级等功能。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-09-28 19:002973

评论

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

报名开启!KunlunBase今年首场线下MeetUP,期待与您的见面!

KunlunBase昆仑数据库

Meetup kunlunbase 内核技术

【云原生】k8s 环境快速部署(一小时以内部署完)

Java你猿哥

Java 学习 k8s Spring Boot ssm

图片无损放大:Topaz Gigapixel AI 激活版

真大的脸盆

Mac Mac 软件 图片无损放大 图片编辑 图片放大

2023年浸没液冷智算产业发展高峰论坛:OPPO发布两项白皮书

安第斯智能云

创新 OPPO 论坛 高新技术

请求响应--MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 订阅 企业号 3 月 PK 榜

DSC:数仓SQL脚本迁移的神奇工具

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

2023主流系统 固资管理助力转型升级一步到位

加入高科技仿生人

低代码 企业数字化转型 资产管理

国产操作系统应用开发的趋势与挑战

没有用户名丶

从企业数据产品的演进,看指标平台发展趋势

Kyligence

数据分析 指标平台

2023 MacBook Pro 与2021 Macbook Pro有哪些差别

互联网搬砖工作者

MacBook M1芯片 MacBook Pro M2芯片

Sugar BI 增强分析能力全场景解析

Baidu AICLOUD

BI

2023年3月中国数据库排行榜:开源OTO揽获前三,传统达梦、GBase触机便发

墨天轮

数据库 opengauss TiDB oceanbase 国产数据库

实践Pytorch中的模型剪枝方法

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

Spring Boot 集成 Liquibase,数据库也能做版本控制!

Java你猿哥

Java spring Spring Boot java 编程

MySQL创建用户与授权

源字节1号

软件开发 前端开发 后端开发 小程序开发

利用 ModelScope 社区开源模型,实现低资源场景下的零样本文本分类

阿里技术

深度学习 自然语言模型

CTO问我如何规避MyBatis使用过程中带来的全表更新风险

Java永远的神

Java 程序员 面试 后端 mybatis

量化交易(机器人)开发系统现货合约策略

薇電13242772558

量化策略

功能强大的数据库管理工具:DBeaverEE 激活版

真大的脸盆

Mac 数据库管理工具 数据库管理 Mac 软件 数据库分析

关于服务器数据迁移,介绍在服务器数据迁移计划中的7个步骤

镭速

Spring源码解析-Spring 事务

Java你猿哥

Java spring Spring Boot ssm spring 源码

家电类投诉高居榜首,拿什么拯救“投诉了个寂寞”的消费者?

Openlab_cosmoplat

工业互联网 开源社区 家电

Spring源码解析-Spring AOP

Java你猿哥

Java 源码 云原生 Spring Boot ssm

业务系统故障率居高不下:有哪些非常有效的治理大招?

TakinTalks稳定性社区

Refit — 让Http请求变得更简单

青柚1943

微服务 REST API NET6 Refit

低代码平台的流程引擎设计指南

Baidu AICLOUD

低代码 爱速搭

虎牙SRE谈可观测:如何做到比用户和老板更早发现业务异常?

TakinTalks稳定性社区

经验总结!朋友的阿里面经分享(内附题目+解析)

Java你猿哥

Java 校招 春招 阿里面经 Java八股文

跟清华大佬用18个要点带你一步步学习springboot2微服务项目实战

Java你猿哥

Spring Boot 面经 校招 春招 java

Tapdata Cloud 基础课:新功能详解之「授权系统自动分析」,一键定位任务报错原因,快速获取修复建议

tapdata

大数据

systemd和容器的姻缘_语言 & 开发_金灵杰_InfoQ精选文章