我正在寻找一种方法来热备份我的虚拟机(外部,通过 USB 或 LAN),同时虚拟机仍处于活动状态并正在运行。我面临许多挑战:
- 处理各种各样的 GUEST OS,包括 Windows 2000 - 2008 R2、Centos、SUSE、RedHat、Ubuntu 等。
- 处理多个物理主机
- 处理大文件(显然)——数十至数百 GB 的文件
- 机器需要保持活跃/运行备份过程中。
理想情况下,这应该类似于 RAID,其中数据是冗余的,但其中一个“驱动器”位于主机外部。可能吗?
目前,每台主机都有内部 RAID,但如果由于没有外部备份而导致整台机器被毁,这还不够。此外,由于每台主机可能具有不同的配置(CPU/RAM、主板等),因此这成为一个问题。
经过大量研究(尽管我对 DFS/存储领域还比较陌生),似乎我正在考虑创建某种集群/分布式文件系统环境?
任何指点都会非常有帮助。
编辑:我故意没有提到主机或 VM 平台,因为我愿意接受能够满足所述需求的正确解决方案。我有使用 Linux 和 Windows 以及多个 VM 平台的经验。目前不太关心成本。试图了解有哪些可用的解决方案。
答案1
您面临几个障碍:
确保备份一致
在文件系统层面,这很容易。我所做的是将所有虚拟机存储在 LVM 卷上(在 Linux 上),并在备份期间创建相关卷的快照并备份该快照(在虚拟化主机上临时安装文件系统、复制文件等)。我正在使用迪尔维什使用一些自定义脚本进行备份。
在应用程序层面,如果没有相关应用程序的配合,就不可能保证数据的完整性。如果您的虚拟机内正在运行数据库,则需要指示该数据库将数据刷新到磁盘、锁定表、创建 LVM 快照,然后解锁数据库。备份期间无需保持锁定,因为您正在备份快照,这是原子性的。显然,此步骤不能一概而论,您需要仔细评估每个虚拟机内正在运行的内容。这个问题是最严重的问题,不幸的是,集群、分布式文件系统等在这里都无法帮助您。
管理存储
如果要将所有机器备份到一个地方,那么备份在网络流量方面将非常昂贵。我在每个虚拟化主机中使用本地连接的 eSATA 硬盘(我只有 2 个)。我将一组磁盘放在异地,其他磁盘连接到主机,并定期轮换它们。
答案2
所有主要的 VM 供应商都提供在 VM 运行时备份的解决方案。
例如,如果您运行 vSphere 并使用 VMWare 的 VDR(甚至 Veeam),虚拟机管理程序将使文件系统静止,同时保持 VM 运行。您可能会注意到 VM 上有些迟缓,但它的服务不会在备份期间停止。显然,您需要遵循推荐的硬件指南以确保完全正常运行时间。
如果您使用 VMWare 解决方案,则可以使用 iSCSI 目标来备份数据。因此,例如,您可以购买便宜的 netgear NAS(约 700 美元)并将机器备份到该 NAS 上,然后将其带离现场。您还可以使用供应商现在销售的实时备份软件。基本上,它会将所有更改镜像到外部设备,然后仅发送更改的增量。
有些公司(比如我的公司)会通过 VPN 将数据备份到外部网站。我们还没有添加任何实时备份,但我们正在与供应商合作解决这一问题。我们不是那种喜欢将数据发送到云端。
显然,企业中有一些在虚拟机上运行的关键任务系统不能宕机,需要需要备份。每个供应商都会有解决方案。