什么是 CGManager? | Linux 中国

2018 年 3 月 5 日 Linux中国 译者:geekpi
CGManager 是一个核心的特权守护进程,通过一个简单的 D-Bus API 管理你所有的 cgroup。它被设计用来处理嵌套的 LXC 容器以及接受无特权的请求,包括解析用户名称空间的 UID/GID。
-- Canonical Ltd.



致谢
编译自 | https://linuxcontainers.org/cgmanager/introduction/ 
 作者 | Canonical Ltd.
 译者 | geekpi 💎 💎 共计翻译:663 篇 贡献时间:1592 天

CGManager 是一个核心的特权守护进程,通过一个简单的 D-Bus API 管理你所有的 cgroup。它被设计用来处理嵌套的 LXC 容器以及接受无特权的请求,包括解析用户名称空间的 UID/GID。

组件

cgmanager

这个守护进程在宿主机上运行,将 cgroupfs 挂载到一个独立的挂载名称空间(所以它不能从宿主机上看到),绑定 /sys/fs/cgroup/cgmanager/sock 用于传入的 D-Bus 查询,并通常处理宿主机上直接运行的所有客户端。

cgmanager 既接受使用 D-Bus + SCM 凭证的身份验证请求,用于在命名空间之间转换 uid、gid 和 pid,也可以使用简单的 “unauthenticated”(只是初始的 ucred)D-Bus 来查询来自宿主机级别的查询。

cgproxy

你可能会在两种情况下看到这个守护进程运行。在宿主机上,如果你的内核老于 3.8(没有 pidns 连接支持)或处于容器中(只有 cgproxy 运行)。

cgproxy 本身并不做任何 cgroup 配置更改,而是如其名称所示,代理请求给主 cgmanager 进程。

这是必要的,所以一个进程可以直接使用 D-Bus(例如使用 dbus-send)与 /sys/fs/cgroup/cgmanager/sock 进行通信。

之后 cgproxy 将从该查询中得到 ucred,并对真正的 cgmanager 套接字进行身份验证的 SCM 查询,并通过 ucred 结构体传递参数,使它们能够正确地转换为 cgmanager 可以理解的宿主机命名空间 。

cgm

一个简单的命令行工具,与 D-Bus 服务通信,并允许你从命令行执行所有常见的 cgroup 操作。

通信协议

如上所述,cgmanager 和 cgproxy 使用 D-Bus。建议外部客户端(所以不要是 cgproxy)使用标准的 D-Bus API,不要试图实现 SCM creds 协议,因为它是不必要的,并且容易出错。

相反,只要简单假设与 /sys/fs/cgroup/cgmanager/sock 的通信总是正确的。

cgmanager API 仅在独立的 D-Bus 套接字上可用,cgmanager 本身不连接到系统总线,所以 cgmanager/cgproxy 不要求有运行中的 dbus 守护进程。

你可以在这里[1]阅读更多关于 D-Bus API。

许可证

CGManager 是免费软件,大部分代码是根据 GNU LGPLv2.1+ 许可条款发布的,一些二进制文件是在 GNU GPLv2 许可下发布的。

该项目的默认许可证是 GNU LGPLv2.1+

支持

CGManager 的稳定版本支持依赖于 Linux 发行版以及它们自己承诺推出稳定修复和安全更新。

你可以从 Canonical Ltd[2] 获得对 Ubuntu LTS 版本的 CGManager 的商业支持。


via: https://linuxcontainers.org/cgmanager/introduction/

作者:Canonical Ltd.[2] 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


登录查看更多
0

相关内容

【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
235+阅读 · 2020年5月21日
【ICMR2020】持续健康状态接口事件检索
专知会员服务
17+阅读 · 2020年4月18日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
一文看懂怎么用 Python 做数据分析
大数据技术
24+阅读 · 2019年5月5日
超级!超级!超级好用的视频标注工具
极市平台
8+阅读 · 2018年12月27日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
52+阅读 · 2018年12月20日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
Optimization for deep learning: theory and algorithms
Arxiv
105+阅读 · 2019年12月19日
Arxiv
4+阅读 · 2019年12月2日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
5+阅读 · 2018年6月12日
Arxiv
3+阅读 · 2018年6月1日
Arxiv
6+阅读 · 2018年1月11日
VIP会员
相关资讯
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
一文看懂怎么用 Python 做数据分析
大数据技术
24+阅读 · 2019年5月5日
超级!超级!超级好用的视频标注工具
极市平台
8+阅读 · 2018年12月27日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
52+阅读 · 2018年12月20日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
相关论文
Optimization for deep learning: theory and algorithms
Arxiv
105+阅读 · 2019年12月19日
Arxiv
4+阅读 · 2019年12月2日
Factor Graph Attention
Arxiv
6+阅读 · 2019年4月11日
Arxiv
5+阅读 · 2018年6月12日
Arxiv
3+阅读 · 2018年6月1日
Arxiv
6+阅读 · 2018年1月11日
Top
微信扫码咨询专知VIP会员