什么是这个特殊用例最好的虚拟化解决scheme?

我做软件(主要是networking)开发,而且我单独工作,所以我必须应付很多系统pipe理员types的工作,以便设置不同的web /应用程序/数据库/源代码控制服务器堆栈,更不用说我自己的开发环境。

最近我一直在寻找一种方法来虚拟化这些不同的问题,使我的设置更易于pipe理。 理想情况下,我将login到一个瘦客户端(使用我的Xsession,emacs和ssh),使服务器无头运行,并像在现实世界中一样使用它们。 我的目标是最终在版本控制下得到这一切…

最重要的是我还有一些担忧:
性能,因为我没有杀手机器,每个服务器都有一个完全虚拟化的操作系统,可能会减慢它的爬行速度。
和便携性,即能够重新使用这些configuration尽可能小调整时,我把它们移动到VPS或其他本地盒子。

考虑到这一点,我已经基本上将其缩小到os级别的虚拟化。

OpenVZ似乎是要走的路,但后来我发现了LXC和Linux V-Server,现在我感到困惑。

所以无论如何,对于长时间的咆哮抱歉,我想问问你们,如果你有这些虚拟化解决scheme的经验,也许可以提供一些最适合我的需求的见解吗?

欢呼!

它们是相似的虚拟化forms – 仅在操作系统级别。 这比完全虚拟化有几个优点。

  • 小的开销 – 对于低功率的机器,我会build议使用任何一个。 我有半打的虚拟机在400MHz VIA Samuel 2系统上运行,在OpenVZ下只有256Mb的内存。 您将只使用与在单台计算机上运行应用程序相同数量的资源。 不同机器上的应用程序的多个实例实际上共享资源。
  • 文件访问 – 在主机节点与虚拟机之间以及虚拟机之间传输文件很简单,因为它们在主机上共享相同的文件系统。 所以,我可以直接从主机节点检查和操作虚拟机文件。 这对于开发目的来说非常方便。
  • 备份映像 – 由于文件系统是共享的,您可以在VM目录上运行rsync来备份任何机器。 您也可以通过简单复制目录来轻松复制一台机器。

OpenVZ和VServer的区别似乎只是一个类似的东西的不同口味。 您可以轻松地在两个系统之间移动您的虚拟机,详见其网站。 与其他两个更成熟的系统相比,LXC看起来更新。

对于类似的情况,我对KVM的运气非常好。 是的,这是一个完整的机器虚拟化解决scheme,但如果内核在KVM中处于空闲状态,则不会使用除RAM之外的任何资源。 (对于任何虚拟化解决scheme,您希望添加尽可能多的RAM)

请注意,Apache,Mysql或类似的无头Linux可以运行256 MB的RAM,只要加载是你和一个testing脚本,而不是一个完整的生产站点。