管理虚拟机更新和分发 - 做错了吗?

enr*_*mel 6 vmware-player

我在一家软件公司工作。我的部门负责(除其他外)构建 VMWare 虚拟机并将其分发给我们的销售团队成员,然后他们使用 VMWare Player 启动它们,为客户运行他们的产品演示。

最近,我发现我们更新和分发这些虚拟机的方式是各种错误的。这是我们更新“演示 VM”的过程:

  1. 从中央服务器下载 VM 的新副本(~35 GB)
  2. 将其设置为持久模式,然后启动它并进行更改,例如将产品升级到最新版本和更新许可证
  3. 更改完成后,将其关闭并将其设置回非持久模式,然后将整个内容(~35 GB)上传回中央服务器,并使用新的文件夹名称并增加版本号
  4. 谁需要最新版本,然后从文件服务器下载它(35 GB * X)

这不仅会占用大量网络带宽,而且从网络下载 35 GB 的内容也很耗时,尤其是对于我们远程办公室中没有内网速度的人来说。

我的问题:是否有更好的方法来管理需要在用户机器上本地运行的虚拟机的更新和分发?

我开始质疑我们当前方法的原因是,当更新虚拟机时,只有一小部分文件(VMEM 和虚拟磁盘映像)发生变化,对吗?因此,与其复制整个 VM 文件夹,不如说应该有一种仅上传/下载增量的方法。类似于 Git 等版本控制系统的工作方式。我实际上尝试为此使用 Git,但事实证明 Git 在管理大文件方面很糟糕。所以我想我会在这里问。

Eva*_*son 5

Rsync 可以很好地解决这个问题。如果您想将差异分发到无法直接访问服务器的机器,您也可以尝试xdelta

触发更新以在 VM 内运行也是一种选择,但您必须小心,如果不耐烦的用户在更新时中断 VM,则他们不会损坏 VM。我个人会走修补 VM 磁盘文件的路线。