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

Haa*_*bda 5 virtual-machines

我有很多需要相同配置的机器。我的目标是从网络引导它们并加载虚拟机。如果我们所有的客户服务机器都有一个图像,那就太好了。这样,我可以加载虚拟映像,执行更新,并知道下次启动时他们将拥有所有更改。理想情况下,机器会将图像存储在本地,并且仅在发生更改时才下载新图像。

有了关于“桌面虚拟化”、“PXE 启动”和“虚拟机”的所有信息,我感到迷茫。我已经阅读了几个小时,感觉我只是触及了表面。

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

Rai*_*tor 5

您正在结合两件事:(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) 中,假设所有机器都相同,包括配置,您可以 nfs 挂载虚拟磁盘映像。编写一个脚本来检查是否有任何更改,例如现有映像是否与已挂载的 nfs 相同;如果它们不相同,请将此映像复制到引导分区并重新启动它。您需要在 initrd 中添加此脚本。你可以玩那个。

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

上面的论文为您提供了一些线索。您最好专注于整个启动过程的工作方式等。

如果您使用的是 ESXi,则有一种更好的方法可以实现您的目标:将 nfs 导出到 esxi 主机。将 vmdk 和 -flat.vmdk 文件保留在 nfs 服务器上,并更改 .vmx 文件中的 vmdk 位置。在下次启动期间,它会选取您的新映像。


Mas*_*imo 0

Microsoft 有一个产品可以做到这一点,它称为 Microsoft Enterprise Desktop Virtualization(又名 MED-V):

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