如何备份 VirtualBox 虚拟服务器?

如何备份 VirtualBox 虚拟服务器?

我想设置在 Linux 主机系统上的 VirtualBox 虚拟机中运行的服务器。

什么是备份这个虚拟服务器“整体”的有效方法,以便在发生任何主机或者客户系统故障,我可以只恢复备份的虚拟服务器吗?

请告诉我如何恢复备份。谢谢!

答案1

引用 John 的回答,“像对待物理机器一样对待虚拟机”。任何在运行时备份的软件/方法都可以。如果备份方法尚未包含虚拟机的配置文件 (.vbox),您可能还需要备份它。大多数裸机备份都是在标准系统未运行的情况下完成的。大多数增量/差异数据备份都可以在系统运行时执行。

请注意,“VBoxManage clonehd”(clonevdi 已弃用)将更改 UUID。许多当前 Linux 发行版都使用 UUID 进行安装,您需要修改 UUID 或 /etc/fstab 才能启动克隆的磁盘。

此外,clonehd 不会复制机器,只会复制磁盘。您可能有正确运行虚拟机所需的特定虚拟系统设置、多个 NIC、大内存设置等。

尝试使用多个磁盘将系统与数据分开,以减少克隆或备份的停机时间。如果虚拟服务器是 Web 服务器,请使用单独的磁盘作为 www-root,因为大多数日常更改都会在此进行。除非程序或配置文件更新,否则无需反复备份系统磁盘。如果需要,请不要忘记备份日志。

在初始虚拟安装和设置后,还应考虑使用 VirtuaBox 不可变磁盘。不可变系统磁盘可在多台虚拟机之间共享。它是只读的,只需备份一次,或者您觉得安全的保留次数,通常三到四份就足够了。只有差异磁盘需要定期备份。

我们的大多数虚拟服务器都通过源代码修订控制进行了预先备份。对虚拟机配置文件 (.vbox)、虚拟机等配置文件和虚拟数据的所有更改都通过外部备份的源代码控制发布。重建/恢复包括签出 vbox 机器文件、针对不可变文件启动虚拟机以及将差异磁盘从源代码控制重新加载到检查点或分支标记。这对于服务服务器非常有效。

虚拟客户端测试机(不同版本的 Windows)通常对于这种方法来说太麻烦,需要导出/导入、clonehd 或 clonezilla 类型的备份。

Clonezilla 裸机备份/恢复 - 启动虚拟机到 clonezilla iso 和额外附加的备份数据磁盘或使用共享文件夹作为备份目标。这将一次性备份和压缩。如果您在 clonehd 操作后也进行压缩,则 Clonehd 和导出在备份期间将需要最多三个副本的临时空间。备份或恢复后,删除 clonezilla iso 安装、额外的备份磁盘或共享文件夹并重新启动系统。恢复与备份的过程相同。

如果您使用除导出/导入之外的任何其他方法,您可能需要在虚拟机配置(.vbox)文件或虚拟 /etc/fstab 中摆弄 UUID(有时甚至使用 /etc/fstab 的导出/导入)以使一切在恢复/重建后正常工作。

出口再进口是愚蠢的方法。导出将复制机器设置和磁盘。这将花费很长时间,并且占用几乎两倍的虚拟机磁盘空间。导出或导入期间虚拟机不应处于运行状态。

如果您希望虚拟机的停机时间绝对最短,增量备份的数据传输最少,请考虑使用 openIndiana (Solaris) 或运行 ZFS 的变体作为虚拟主机系统。轻松快照、复制和重复数据删除。虚拟机的干净快照比虚拟机上的关机/重启序列花费的时间更少。如果运行 SQL 数据库,关机可确保数据库完整性,并强制锁定/备份期间不进行任何更改。关机/快照/重启序列完成后(通常不到几分钟),虚拟机即可运行/使用。然后使用 ZFS 同步将快照更改传输到另一台备份机器或外部磁盘。

答案2

将 HardDisks 目录中的 .vdi 文件复制到安全的地方。(您可以使用VBoxManage clonevdi...)。

答案3

您可以导出虚拟机,然后将其导入同一台或另一台主机,也可以使用常规备份工具,就像处理物理主机一样。在备份方面,没有必要将虚拟机与物理机区别对待。

相关内容