哪一个在安全性和 CPU 方面更轻:LXC 与 UML

0xC*_*22L 8 linux lxc

我试图在“监禁”某些应用程序之间做出决定,我知道 KVM 与 LXC 的权衡以及我如何同时使用它们。

最近我再次遇到 UML(用户模式 ​​Linux),想知道它在安全性和资源消耗(或开销,如果你愿意)方面的比较。

我在哪里可以找到这样的比较,或者这里有人知道他们是如何比较的吗?

基本上:

  • 磁盘 I/O 和 CPU 开销是多少?
  • 分离有多严格,主机与来宾发生的事情的安全性如何?

tot*_*aam 9

  • 最佳磁盘 I/O:LXC > KVM > UML。不用说 LXC 的开销,KVM 添加了一个间接层,所以它会更慢(但你也可以将它与原始磁盘一起使用),UML 会慢得多。
  • 最少的 CPU 开销:LXC > KVM > UML。LXC 没有开销,KVM 开销小,UML 开销大。
  • 严格分离和安全:UML > KVM > LXC。与 krowe 的上述陈述相反,如果您希望安全高于一切,UML 是最佳选择。您可以在受限制的 chroot 环境中以完全没有特权的用户身份运行 UML 内核进程,并在上面进行任何您想要的强化。逃离 VM 需要首先找到内核错误,即便如此,您最多也只能获得主机上普通用户进程的特权。现在,如果您关心性能……KVM 是一个更好的选择。LXC 将为您提供最佳性能,但也是 3 种中最不安全的。

  • @AdamRyczkowski:这是一种误解。LXC *总是* 依赖于内核功能。没有纯用户模式或内核模式 LXC。不过,您的意思是**无特权的 LCX 容器**。是的,它们存在并且基于`userns`(用户名称空间),从而允许容器在*大部分*(例如,为主机上的来宾创建网络设备需要特权操作)无特权运行。不过,假设内核中存在未知问题,您的最终评估可能是正确的。 (2认同)