如何从我的networking启动虚拟机映像?

我有很多需要相同configuration的机器。 我的目标是从networking启动它们并加载虚拟机。 为我们的所有客户服务机器提供一张图像将是一件非常美妙的事情。 这样,我可以加载虚拟镜像,执行更新,并知道下一次启动时,他们将有所有的变化。 理想情况下,机器将本地存储的图像,只有下载一个新的图像,如果有变化。

有了“桌面虚拟化”,“PXE启动”和“虚拟机”的所有信息,我感到迷茫。 我一直在阅读几个小时,觉得我只是刚刚刮起了表面。

我想用开源或免费软件来做到这一点。 有什么build议么?

您将两件事情结合在一起:(1)HiPC集群中常见的无盘启动,其中编译器,库等工具存储在群集文件系统(如Lustre或NFS)上; (2)虚拟磁盘映像(vmdk或vdi,或其他)。

在情况(1)中,您需要一个tftp服务器和一个dhcp服务器,以及一个修改后的initrd映像,用于定制驱动程序,脚本等。

http://www.pixelchaos.net/2009/02/15/diskless-booting-with-pxe-and-nfs/

在情况(2)中,由于所有的机器都是相同的,包括configuration,你可以nfs挂载虚拟磁盘镜像。 编写一个脚本,检查是否现有的图像是相同的nfs挂载的任何变化; 如果它们不相同,请将此映像复制到启动分区并重新启动。 你需要在initrd中添加这个脚本。 你可以玩。

http://www-conf.slac.stanford.edu/afsbestpractices/Slides/afsboot.pdf

上面的文件给你一些线索。 你最好关注整个启动过程是如何工作的

如果您使用的是ESXi,则有更好的方法来实现您想要的function:将nfs导出到esxi主机。 将vmdk和-flat.vmdk文件保留在nfs服务器上,并在.vmx文件中更改vmdk位置。 在下次启动时,它会启动新的映像。

首先让我们定义一些你搞砸的术语。

PXE引导:

这是一个实用程序,取代BIOS和它的networking能力。 如从服务器下载内核映像并执行它的无盘计算机。 内核挂载一个远程分区作为根文件系统。

虚拟机:

虚拟机是由软件运行的机器。 如果我在一个特定的操作系统上工作,那么我可以运行一个虚拟机启动另一个操作系统,而无需重启 有一些专门用于虚拟化的操作系统。 虚拟机不是你的问题的答案。

好吧,现在我将解释我的build议,我没有使用它,我认为这不是免费的软件,但你应该尝试find一个替代品。 Northon Ghost是在主要操作系统之前启动的PXE,用于检查磁盘映像是否与服务器上的映像相同。 如果我来这样的电脑,并清除操作系统,并重新启动…操作系统将被恢复服务器,而不是数据。

我不认为你可以用自由软件来做这件事,避免几个小时的阅读。 事实上,我不认为你可以很容易地做到“shiny付费”软件。 理解所有的来龙去脉是很困难和耗时的,因为configuration所有的来龙去脉非常困难和耗时。

你正在寻找像netboot.me我想。 让这样的事情在实验室的几台机器上工作并不困难。 你会发现使它在一个复杂的路由局域网上工作更复杂 – 我们使用苹果的这种变化来运行一个安装程序来将我们的标准OSX桌面映像安装到mac工作站上。

顺便说一下,桌面虚拟化与您实际描述自己想要做的完全不同。 这可能是解决你正在考虑的问题的一个有效的方法,但是当你考虑这种处理事情的方式的时候,我会尽量不去考虑它 – 你只会让问题更难理解比它需要。

前段时间我也有同样的问题,我成功地使用了pxe。

你在找什么是gPXE (免费)。 设置起来有点麻烦,但是您可以从ftp服务器或iSCSI启动。 如果你从本地局域网启动,你也可以使用以太网 (AOE)。 如果将PXE应用于NIC,PXE可以从任何有关软盘大小的可启动驱动器启动,也可以从启动ROM启动。

你可以从图像开始,或通过tftp或ISCSI或其他方式将图像加载到ramdisk,然后从那里运行图像。 或者你给每个虚拟机它是自己的目标,离开它的方式。

微软有一个这样做的产品,它被称为微软企业桌面虚拟化(又名MED-V):

http://www.microsoft.com/windows/enterprise/products/mdop/med-v.aspx