8

我正在努力决定何时使用 LXC 容器比使用完整的 VM 更好。

您是否有任何精确的用例可以以一种或另一种方式带来一些争论?

LXC 是否更面向“PaaS”,可以在没有硬件控制的情况下运行应用程序?我们是否总是需要在需要基础设施控制的“IaaS”角度使用虚拟机?

问候,

4

4 回答 4

10

LXC 就像一个 chroot 监狱。为了争论,您可以将其视为轻量级 VM(即使它根本不是 VM)。

如果您已经完成了编写一个旨在运行在临时基础架构上的应用程序的工作,那么 LXC 可以让您以更少的开销来完成它。

对我来说,LXC 最酷的地方就是围绕它成长的社区。考虑像docker这样的东西——一个 docker 镜像是相对可移植的。它提供了在物理硬件上或在桌面上运行的 VirtualBox VM 内或在 Amazon 或 Rackspace 提供的 VM 内配置相同容器的工具。这使我们更接近一次写入,随处运行的梦想。

于 2013-06-13T16:56:57.127 回答
6

我认为 IaaS 不需要虚拟机。使用 LXC,您可以定义 # of cpushare 和内存用户限制。

问题是虚拟机非常重,因此例如 PHP/MySQL/Apache,您将拥有 1 个虚拟机。由于 LXC 很轻,你可以有 3 个 LXC,所以它更适合扩展,(如果你需要对 mysql 进行分片,只需复制 mysql LXC)

于 2013-06-13T15:43:01.773 回答
2

LXC 的启动速度比 VM 快得多,每个容器使用的主机资源也比 VM 少,因此它们非常适合将大量隔离进程打包到一台主机和/或频繁启动它们的组合。

一个用例是在可重现的环境中运行单元测试(当与Docker提供的快照文件系统结合使用时)。您可以启动整个容器,运行测试,然后尽可能快地关闭它,就像运行测试一样快。LXC 的好处是测试的所有非内核依赖项都在容器内。它甚至可以是不同风格的 Linux(例如,主机可以是 Ubuntu,容器可以运行 Centos,尽管它们必须共享主机的内核)。

于 2013-06-13T23:56:02.473 回答
1

对我而言,lxc 的优势在于它可以帮助您拥有一个非常小的环境。因此,当您只有一个应用程序可以在其上运行时,它会使用完整的。如果您希望在您的环境中运行多个应用程序,则 VM 会更好。VM 更好的另一种情况是当您想要使用另一个内核而不是主机内核时。

对我来说 lxc 只是一个非常轻量级的 VM 系统。随着速度和尺寸更好。但约束不能是你所需要的。

于 2013-06-12T09:11:25.763 回答