设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

systemd和容器的姻缘

2015-9-29 22:18| 发布者: joejoe0332| 查看: 1091| 评论: 0|原作者: 金灵杰|来自: InfoQ

摘要: systemd是Linux平台下的一款系统和服务管理器,兼容SysV和LSB(Linux Standard Base)启动脚本。近日,CoreOS团队采访了systemd 项目的创始人 Lennart Poettering,探讨了systemd的历史,以及与容器结合、未来的规划 ...

  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,提供诸如分布式、网络感知高级等功能。


酷毙

雷人
1

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部