写点什么

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:002757

评论

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

语聊房 SDK,下一代场景化解决方案新范式

融云 RongCloud

Bazel与Gradle构建工具差异对比

轻口味

android 构建工具 10月月更

现成交易所系统软件开发案例

Transformer模型在语音识别领域最新进展,百度语音发布重大技术突破SMLTA2

科技热闻

Java自定义异步功能实践

FunTester

Java 线程池 接口测试 异步 FunTester

官方线索|脉脉1024程序员嘉年华

穿过生命散发芬芳

1024我在现场

Linux下进程崩溃定位

正向成长

OOM崩溃

百度吴甜:首席AI架构师培养计划持续为行业输送高端复合型AI人才

百度大脑

人工智能 百度

SQL实现连续登陆人数天数统计

大象灵感

sql 大数据 hive 数据仓库 数据分析

从语聊房 SDK 的诞生,看 PaaS 服务的演进过程

融云 RongCloud

区块链交易所系统软件开发资料(源码)

区块链交易所系统开发方案(案例)

2021云栖大会 | 传统行业如何上链?旺链科技与你面对面畅聊!

旺链科技

区块链 云栖大会

字节跳动技术官珍藏版:MySQL王者进阶手册!面面俱到,太全面了

Java MySQL 数据库 面试 后端

Kubernetes Service Proxy 无秘密

绅鱼片

Kubernetes 网络 iptables k8s网络 kube-proxy

WICC 话题剧透|Beeto 陈昊:中东爆款社交平台是怎样炼成的

融云 RongCloud

优化技术专题-性能优化系列-针对Java对象压缩及序列化技术的探索之路

码界西柚

序列化协议 序列化机制 10月月更

/var/lib/docker目录磁盘满了,更换默认目录

阿呆

Flink Could not find any factory for identifier 'XXX' 排查过程

大可大大大

区块链数字货币交易所系统软件开发详情(源码)

【服务器】服务器租用后如何高效管理,不出纰漏?

行云管家

服务器 IT运维 运维管理 服务器租用

自媒体团队会面临哪些瓶颈和困境

石头IT视角

如何选购四屏或多屏炒股电脑主板?

双赞工控

主板定制

iOS 布道者龙神:永远挑战难度值增加 30% 的事情

融云 RongCloud

CTF专题一2021网络WEB题目解析

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

博鳌科创论坛第二届大会区块链分论坛预告

Geek_6e23d8

区块链 博鳌亚洲论坛

常州一家等保测评公司在哪里?联系电话多少?

行云管家

网络安全 堡垒机 等级保护 等保测评 过等保

NB!阿里首次公布Java10W字面经,Github访问量破百万

Java 程序员 架构 面试 计算机

北京天源迪科携迪易采参加“第五届中央企业电商化采购发展高峰论坛”

科技热闻

架构实战营-模块一作业

御道而行

架构实战营

Android技术分享| 超简单,给 Android WebRTC增加美颜滤镜功能

anyRTC开发者

android 音视频 WebRTC 移动开发 美颜滤镜

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