我有一些服务器和 VPS 供世界各地的许多公司使用。我想在本地备份它们。我启用了一些针对远程主机的备份解决方案,但我想在家里的计算机上进行本地备份。
我的想法是:
创建一个virtualbox虚拟机,安装与服务器同版本的linux。
使用 rsync 将服务器备份到本地虚拟机。(例如 rsync -av --delete --progress --exclude '/dev/'--排除'/proc/' root@server_ip:// / )
每隔几天重复该命令更新文件。
如果发生硬盘故障或任何其他不良事件,请反转 rsync 命令并恢复文件并继续我的业务。
我尝试使用 2 个 openvz VPS,其中一个是另一个的备份。我还尝试将普通的 linux 服务器主机转移到 openvz 机器,效果很好。
这种方式对我来说看起来非常干净和简单,这就是我正在寻找的解决方案。但是,如果我要这样做,我需要确保它有效。
问题是,这样行得通吗?有人觉得这样有什么问题吗?你还有其他建议吗?
谢谢
答案1
您应该添加一些方法来轻松地重建磁盘结构(分区表、文件系统、挂载点)。
此外,rsync
如果文件长时间处于打开状态并不断更新,备份可能会严重失败。数据库服务器就是这种情况的典型例子 - 您无法使用 可靠地备份正在运行的数据库rsync
。
答案2
请记住,rsync 可能需要花费大量时间,并且由于您将在不同时间点复制文件,因此文件的状态可能不一致。在服务器中创建快照可能是一个好主意(使用 LVM,如http://tldp.org/HOWTO/LVM-HOWTO/snapshots_backup.html),然后从快照 rsync 到虚拟机。
答案3
如果你要定期备份一堆机器,我建议你使用巴库拉。它更适合这项任务,默认情况下处理在分区边界处停止,允许各种存储服务器、调度等。它还允许您忽略您知道无法正确备份的文件(例如您的大型实时数据库),并通过脚本创建文件(例如,大型数据库的转储脚本)。
我不确定您克隆到虚拟机的具体原因,除非您计划将这些映像作为权宜之计来运行。无论如何,通过适当的虚拟化设置,您在大多数情况下也应该能够启动这些机器映像,并且无论如何您都可以将还原写入您选择的文件系统目录。
答案4
您可能想要查看类似 BackupPC 的东西,它使用rsync
协议来识别和复制需要复制的更改。每个系统的第一次备份将需要完整复制所有正在备份的文件。之后只需要复制增量。它将复制额外的 1% 结构以进行验证更改。
它非常有效地存储跨系统或目录重复的文件。这可以大大减少备份所需的磁盘空间。
我正在使用它来备份我的 Linux 服务器以及 Windows 桌面。