在两台单独的计算机之间维护和同步VirtualBox VM


13

我有一个VirtualBox VM,其中包含我正在处理的项目。我希望能够在两台不同的计算机上使用此VM,因此我可以在当时的位置上对其进行处理。我已经看到了有关转移,克隆和备份VM的答案,但是对于拥有两个副本并使它们保持同步没有任何帮助。

在多台计算机上维护单个VM映像的最简单(最简单或最简单的步骤)或最佳(问题风险最低)的方法是什么?

理想情况下,我不希望通过USB驱动器运行VM,因为两台计算机中的一台具有很少的USB端口,但是如果那是最好的,那我就接受它(我不确定是否有从USB驱动器运行VM的任何问题)。但是,我打算使用USB驱动器在计算机之间传输任何文件。

Answers:


10

我认为您在这里有两个选择:第一个是(在两台计算机上的Virtualbox的安装中)设置VM存储在某种便携式或远程硬盘驱动器上的文件夹;如果要使用的计算机在网络上链接在一起,则可以使用共享文件夹,否则,我担心唯一的解决方案是USB笔式驱动器或外部硬盘驱动器。要设置文件夹,请转到File > Preferences > General > Default Machine Folder。USB密钥的速度可能会限制整体性能。

第二种解决方案也需要pendrive或类似的东西(但只是随身携带您的VM文件),它是每次需要携带时手动导出和导入所需的VM。您可以通过选择VM并使用File > Export Appliance和来完成此操作File > Import Appliance。通过导出,将创建.ova格式的文件,该文件是包含使用该VM所需的所有文件的存档,通过将其导入另一安装中,您将在第二台计算机上拥有相同的VM。通过这种方式,您可以使用Pendrive随身携带文件,这样在重新导入文件时就可以从您的计算机中存储和访问文件了,因此USB速度就无关紧要了。


5

面对完全相同的问题,我想我已经解决了。

假设您有两台计算机,A和B。在A中创建/准备您的vm。之后拍摄快照或创建链接的克隆(两者均可行,但进一步的步骤有所不同,将得到一个,您可以解决另一个问题)

现在,请确保已在B中全新安装了Virtualbox。使用USB将〜/ .VirtualBox和〜/ VirtualBox VM从A复制到B(考虑到它们位于较远的站点中)

现在,如果您选择快照方式,则同步〜/ VirtualBox VMs / YourVM / Snapshots文件夹,直到足够大为止。如果变得更大,则在A中创建另一个快照,然后将YourVM文件夹复制到B一次,仅同步Snapshots文件夹中的此新快照文件。

如果您拍摄快照或在A或B中建立链接克隆,则该行为将被破坏,请注意。

在5.0.20中测试


非常有趣的答案。您今天仍会这样做还是有更好的方法?
l --''''''---------''''''''''''

4

我知道这个线程已经使用一年了,但是它是Google在两个位置之间共享一个VM的最佳搜索结果。

VirtualBox允许您使用RDP远程连接到正在运行的VM。如果您不希望VM连续运行,请尝试某种方式远程启动它。

有一个“允许多个连接”选项,因此您甚至不必从一个位置断开连接,再与另一个位置连接。

如果您无法托管自己的虚拟机,则可以通过快速的Google搜索找到可以为您托管VirtulaBox映像的提供程序。

我从来没有尝试过所有这些...


4

我认为Sekhemty的答案是做您想要的唯一方法。

但是,为什么需要移动您的虚拟机?为什么不只是移动您的项目?在私有git中设置项目,然后根据需要进行推拉。

如果需要保持机器的一致性并且要进行大量更改,可以尝试的另一种方法是使用无业游民和厨师/木偶设置。这可以通过使用Chef(这是一个ruby gem)和puppet(我没有用过puppet)来告诉vagrant您想要VM包含和安装什么的方法。

它通过使用脚本,厨师或木偶来工作,并且vagrant在启动VM时会读取此脚本。如果要安装任何东西,只需将其添加到脚本中,如果尚未安装,则在“无所事事”时将其安装!我花了一些时间来适应它,足够陡峭的学习曲线,但是一旦习惯了它,它会非常有效,这意味着您只需要在脚本文件中移动而不是整个VM。

http://red-badger.com/blog/2013/02/21/automating-your-infrastructure-with-vagrant-chef-from-development-to-the-cloud/


2
这不仅仅是关于代码(确实进入存储库)和配置的问题;这是因为VM是我的开发环境。我开始使用VirtualBox,因此可以在运行Windows的计算机上的Ubuntu中工作。当移动环境比移动环境的副本不方便时,这将为我提供一致的开发环境。
rsgoheen 2013年

那么流浪汉和厨师/木偶似乎是最好的。这样,如果您需要在开发环境中进行某些更改,则无需导出和导入VM,只需将安装的内容添加到脚本中,vagrant就会在启动时将其构建到VM中。同样,对于拥有不同版本的开发实例也非常方便,因为vagrant可以在“ base-box(OS)”基础上工作,并且可以在脚本指示的内容之上进行构建,因此您可以拥有多个测试环境,但只能使用一个的空间。
boundless08年

2

您可以在两台计算机之间同步虚拟机映像。


2
更多细节将使这个问题更好。你能详细说明吗?
戴夫M

2

遵循KISS原则,在注册虚拟机并调整设置后,只需关闭两侧电源rsync*.vdi文件就可以通过。

rsync -aPh <path-to-vm>/<diskname>.vdi <remote>:<path-to-vm>/

当然,将无法“合并”冲突,因此必须对如何对VM进行更改以及如何反映这些更改加以约束。

同时,您可以将大多数个人数据存储在NAS上,以便始终保持最新状态并可以从所有计算机访问。此外,您可以挂载其他.vdi磁盘以包含交换分区或其他临时存储,以免增加系统.vdi的大小。

如果您使用的是Windows,则应为ssh和rsync程序安装cygwin(或msys2)。


1

根据您的用例,一种可能的解决方案是对cjpembo的答案进行修改。

如果两台单独的计算机都位于同一位置的同一LAN上,则可能可以在ESXi服务器或类似服务器上运行一个VM,而仅使用管理工具(甚至SSH)的远程控制台功能进行访问从其他两台计算机上下载。

显然,如果要与VM一起使用的计算机之一是可以移动的笔记本电脑,那么这可能不是解决方案,尤其是当您必须在“主机”和“来宾”之间共享大量数据时环境。

如果VM相对独立,那么VMware的远程控制台功能将非常有效,因此,除非您需要在VM中播放视频,否则即使在远程运行也可能效果不错。


0

我通过在USB C磁盘上使用外部ssd实现了此目的。VM将位于ssd磁盘中,并在两台笔记本电脑的我的virtualbox设置中引用。我选择了USB 3.1 Gen2 Type-C(10Gbps),540MB / s的型号,并且性能还不错。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.