写点什么

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

评论

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

通过观测云快速了解真实用户体验

Yestodorrow

可观测性 用户增长 业务增长 真实用户体验

跬智信息(Kyligence)入选 IDC《中国数据智能市场生态图谱V4.0》

Kyligence

数据分析 指标平台

跨境电商项目还在冷启动?请收好这份“破冰”秘籍

YG科技

大规模语言LLaVA:多模态GPT-4智能助手,融合语言与视觉,满足用户复杂需求

汀丶人工智能

人工智能 计算机视觉 GPT 大语言模型

TiDB 7.4 发版:正式兼容 MySQL 8.0

编程猫

想做跨境电商不知道如何搭建网站?看这篇教程就够了

平平无奇爱好科技

消除隐患 防患未然|AIRIOT智慧消防管理解决方案

AIRIOT

低代码:时代的选择

树上有只程序猿

低代码 低代码开发平台

Disruptor在流程编排中的应用与探索

ZA技术社区

金融科技 众安保险 ZA技术社区 keji

阿里内推强推的并发编程学习笔记,原理+实战+面试题,面面俱到!

小小怪下士

Java 程序员 并发编程

网络安全(黑客)自学方向

网络安全学海

程序员 黑客 网络安全 信息安全 渗透测试

中小企业数字化既要效率又要效益,这款轻量云服务器打破悖论

YG科技

等不及了,2023云栖大会精彩剧透提前看!

阿里云CloudImagine

云计算 云栖大会

“创新启变 聚焦增长”极狐(GitLab)媒体沟通会,共话智能时代软件开发新生态

极客天地

文心4.0,启动大模型时代的飞轮效应

脑极体

AI

中小企业数字化人才困境重重,华为云耀云服务器L实例妙手回春

平平无奇爱好科技

语音识别技术:端到端的挑战与解决方案

数据堂

稳定币揭幕:了解发展策略

区块链软件开发推广运营

数字藏品开发 dapp开发 区块链开发 链游开发 NFT开发

软件测试/测试开发丨深入了解性能测试:方法、工具和最佳实践

测试人

软件测试 性能测试 测试开发

被誉为轻量云服务器“鼻祖”的腾讯云,遇到最硬核对手

平平无奇爱好科技

敏捷思维和免费敏捷管理工具

顿顿顿

敏捷项目管理 敏捷开发管理工具 scrum工具 scrum敏捷工具 敏捷开发工具

大模型背景下软件工程的机遇与挑战

CODING DevOps

9款好用的在线流程图软件推荐!

彭宏豪95

效率 流程图 在线工具 科技 流程图绘制

快收藏!中小电商企业必用的ERP软件ODooo“奶妈级”教程来了

平平无奇爱好科技

腾讯云发布新品数据编排平台(dop)-与大数据生态紧密结合,提供通用数据编排服务

腾讯云大数据

大数据

数字化转型与架构-架构设计篇|系统组件有哪些?

数字随行

数字化转型

使用指南|如何将 GreptimeDB 数据保存在阿里云 OSS

Greptime 格睿科技

数据库 阿里云 云原生 Greptime GreptimeDB

主打一个遥遥领先,这款轻量应用服务器真是太“硬”了

平平无奇爱好科技

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