VirtualBox VM 恢复:挽救数据的两种方法

日期: 2012-08-09 作者:Serdar Yegulalp翻译:李哲贤 来源:TechTarget中国 英文

近期,我恰巧在工作中遇到一台已经崩溃并且无法启动的VirtualBox VM。当类似的事情发生时,有一些VirtualBox灾难恢复办法供您选择。   Oracle VM VirtualBox 作为宿主机平台可支持服务器虚拟化或桌面虚拟化。我过去曾使用VirtualBox作为虚拟桌面平台,不幸的是数据存放在系统的虚拟机内而不是外部。

如果您用VirtualBox进行桌面虚拟化,需要了解这些挽救数据的VM恢复的方法。   VM恢复方法   当把关键数据放到虚拟机的VHD(virtual hard disk)上时,简直无法想象宕机后需要重复多少工作才能重建数据。最佳的办法是恢复VHD,取出数据及时制……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

近期,我恰巧在工作中遇到一台已经崩溃并且无法启动的VirtualBox VM。当类似的事情发生时,有一些VirtualBox灾难恢复办法供您选择。

  Oracle VM VirtualBox 作为宿主机平台可支持服务器虚拟化或桌面虚拟化。我过去曾使用VirtualBox作为虚拟桌面平台,不幸的是数据存放在系统的虚拟机内而不是外部。如果您用VirtualBox进行桌面虚拟化,需要了解这些挽救数据的VM恢复的方法。

  VM恢复方法

  当把关键数据放到虚拟机的VHD(virtual hard disk)上时,简直无法想象宕机后需要重复多少工作才能重建数据。最佳的办法是恢复VHD,取出数据及时制止损失。

  这种情况下有两种基本的VirtualBox VM恢复方法:

  1.借助某些恢复介质启动VM,访问VHD并把所需数据拷贝到其它VHD或通过网络传输到共享端。

  2.把VHD作为第二硬盘挂载到其它VM,启动并从中恢复数据。

  第一种方式更安全,因为VHD和VM的改变都是最少的。第二种也可行,但我更喜欢第一种,原因是它能降低错误率。

  问题总发生在细节上。当我启动VirtualBox VM恢复工作时,意识到很多细节跟最初设想不同。下面是一些您在使用这些灾难恢复方法时可能遇到的挑战。

  VHD的位置

  首先,您要掌握待处理磁盘镜像的类型和在哪台VM上。Oracle VM VirtualBox可以创建多种VHD镜像,它们之间的差别会对VM恢复造成影响。

  多数情况VHD是“Normal”状态,即每次只有一台虚拟机可以访问目标磁盘,而镜像原地址通常在某台虚拟机上。如果磁盘状态为“shareable”,可以多台机器同时使用,那么损坏可能是由相连的任意一台VM导致,故障诊断更为困难(“write-through”磁盘和“Normal”相似,唯一差别在不支持快照上)。

  在这些情况下,首先要关闭(不仅是挂起!)所有跟损坏磁盘相关的VM。然后,最好是内存最大的那台VirtualBox VM启动恢复。

  多台VM可以同时共享“multi-attach”磁盘,但是每台VM另有自己的差分镜像部分。这种方式在需要多台VM之间共享某个磁盘主镜像时非常有用。但也同时意味着VirtualBox灾难恢复必须在使用了问题数据的VM上执行,否则VirtualBox VM是看不到数据的。如果您不确定是哪台VM,则需要在每台机器上进行检查。

  关于恢复环境的一点注释:如果可能,最好在宿主机OS上挂载问题VHD默认为为只读状态(不幸的是Windows对此支持并不好)。

  一旦确认了需要恢复的VM和VHD对象,下一步就是准备数据恢复目标地。

  网络vs.本地磁盘

  显然,创建一个全新的空白VHD,把它挂载给VM,通过某种恢复介质启动并把所有数据拷贝出来是可行的。这种VirtualBox VM恢复方法简单:所有需要做的就是挂载和格式化新介质。但同时也带来额外的步骤:如果您需要的数据存在于宿主机而不是VHD上,那么之后还需要再拷贝出来。

  您可以借助连接到共享网络节省这一步,和宿主机建立共享区域,并把数据从共享区拷贝出来。不过这种方式也有一些注意点。

  首先,如果您使用的VirtualBox VM配置不能访问网络,或本地网络不能跟宿主机通讯,您需要更改配置。这仅需要更改VM而不是OS的硬件配置,因为我们在恢复过程中不会真的去启动OS。

  第二步,您需要确定恢复系统是否有网络连接。举个例子,如果虚拟机的适配器在不安装额外驱动的情况下无法识别的话,您可能需要改变网络适配器类型。

  最后但不是最重要的一点,网络的拷贝速度根据目标的不同可能会成为问题。如果你使用的网络连接是跟宿主机之间的专线,那么拷贝的数据量不是问题。但如果连接到高延迟和带宽紧张的实际网络时,数据拷贝会慢得多。(把大量数据拷贝到本地连接的VHD会变慢,尤其是当源和目标磁盘镜像在同一个网络系统中时。这是需要关注的另外一点。)

  完全跳过VirtualBox VM

  另外还有种方式就是完全跳过VirtualBox,直接把硬盘挂载到宿主机OS,并把所有文件拷贝出来。具体的方法据宿主机不同OS而异。例如在Linux中就有自带的名为libguestfs的工具。

  对于Windows,已经开始一个名为WinMount的计划。VDI格式的文件可以通过Explorer加载为另外一个驱动器盘符。通过7-Zip等归档工具,.VHD格式的文件可以为非压缩格式。该工具是免费和开源的。我试用这些工具的感觉不错。

  这种VirtualBox VM恢复方法完全去掉了中间媒介的影响,可以自行处理文件。但是也有一些注意点:

  • 有助于VM完全关机。如果虚拟机宕机时磁盘位于不一致状态,而您希望在同样的OS下启动该虚拟机的另一个实例(或许通过.ISO镜像),先执行磁盘检查和完全关机,然后尝试离线恢复。

  • 这些工具都是第三方的,所以在功能一致性上没有保障。它们在多数情况下可以工作,但是使用VirtualBox的优点之一就是它的虚拟机数据恢复(尤其是.VDI文件格式)更有保证,磁盘可以保证正确加载和成功读取。

  完成VirtualBox VM的恢复不是某人的乐趣,而在VirtualBox运行良好没有任何意外时,这也不是您的必备方法。但在虚拟机宕机之间,请先熟悉一下这些灾难恢复方法。

作者

Serdar Yegulalp
Serdar Yegulalp

Serdar Yegulalp从1994年到2001年为Windows杂志写作,覆盖了广泛的技术方面。他现在是《The Windows 2000 Power Users Newsletter》一书的出版者,辛勤钻研他擅长的Windows NT, Windows 2000 and Windows XP领域,并为TechTarget写专栏。

翻译

李哲贤
李哲贤

TT虚拟化特约作者

相关推荐